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

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

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

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

有没有人对这个问题有一些经验?

最佳答案

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

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

10-06 12:43
查看更多