Events Magento PayPal模块事件

Events Magento PayPal模块事件,events,magento,module,paypal,observer-pattern,Events,Magento,Module,Paypal,Observer Pattern,我最近设置了一些自动脚本,通过使用观察者和Magento事件来帮助我管理Magento商店的传入订单。我的问题是,根据所选的付款类型,何时在系统中下订单并保存订单 例如:如果有人只是选择预付款,订单会立即保存,客户会自动转发到成功页面-因此目前为止没有问题 如果客户通过贝宝付款,整个情况就完全不同了。在重定向到PayPal、登录帐户并确认付款后,客户不会被重定向到Magento商店。他可以点击一个链接返回那里,这也会将他转发到成功页面,但肯定不是每个人都会这样做,问题是我使用的观察者事件仅在用户

我最近设置了一些自动脚本,通过使用观察者和Magento事件来帮助我管理Magento商店的传入订单。我的问题是,根据所选的付款类型,何时在系统中下订单并保存订单

例如:如果有人只是选择预付款,订单会立即保存,客户会自动转发到成功页面-因此目前为止没有问题

如果客户通过贝宝付款,整个情况就完全不同了。在重定向到PayPal、登录帐户并确认付款后,客户不会被重定向到Magento商店。他可以点击一个链接返回那里,这也会将他转发到成功页面,但肯定不是每个人都会这样做,问题是我使用的观察者事件仅在用户登陆该页面时执行代码。(我正在处理的事件是“checkout\u Onepage\u Controller\u Success\u Action”)

因此,我需要知道Magento从何处获得信息,PayPal付款是否成功,是否已被取消或其他。我查看了/app/code/core/Mage/PayPal/controllers/下的一些PayPal控制器文件,唯一接近可能的解决方案是StandardController.php中的函数successAction()。但是,此功能似乎也只有在客户选择返回Magento商店时才会触发,因此对我没有帮助


有人对这个问题有经验吗?

我找到了解决这个问题的方法: 显然,Magento中没有与PayPal上收到的付款对应的事件。一个可能的解决方案可能是提供一个IPN URL,在确认付款后立即触发脚本,但我设法将客户重定向到我的商店,因此我不必这样做


在PayPal帐户的“网站设置”下的配置文件设置中,有一个名为“自动重定向”的选项。如果启用此选项并输入URL,则客户将自动转发到该URL。起初我认为这对我没有帮助,因为正如我所说的,有多个网络商店参与其中,它们都有各自的返回URL,您不能指定多个。但是,如果在联系PayPal时传递了返回URL,它将覆盖配置文件设置中指定的URL,并且由于Magento模块默认会这样做,因此我只需在文本字段中输入一个随机URL并启用该选项,现在,当客户下订单并通过PayPal付款时,他们会被重定向回我的店铺。

指定您使用的paymennt方法。我的示例引用了Magento v1.5.1.0的标准PayPal模块,尝试绑定到与订单对象相关的事件,而不是控制器事件,并请将所有事件注销到一个文本文件中在您的流程中触发,然后您可以选择适当的事件您有一个有用事件的特定示例吗?在使用我上面提到的方法之前,我还尝试了“销售订单之后”和“销售订单之后保存”,但当客户点击结帐页面上的“下订单”链接时,它们都会执行代码。我需要一个事件,该事件将在PayPal交易成功完成时触发我的代码。请查看是否触发这些事件:销售\订单\发票\付款销售\订单\付款\捕获