【问题标题】:Magento PayPal module eventsMagento PayPal 模块事件
【发布时间】:2012-01-07 21:28:33
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 具体说明您使用的付款方式
  • 我的例子是指 Magento v1.5.1.0 的标准 PayPal 模块
  • 尝试绑定到订单对象相关事件而不是控制器事件,并将所有事件注销到在您的流程中触发的文本文件,然后您可以选择合适的内容
  • 你有一个有用的事件的具体例子吗?在使用我上面提到的那个之前,我也尝试过“sales_order_place_after”和“sales_order_save_after”,但是只要客户点击结帐页面上的“Place your order”链接,它们都会执行代码。我需要一个在 PayPal 交易成功完成时触发我的代码的事件。
  • 查看是否被解雇:sales_order_invoice_pay sales_order_payment_capture

标签: events magento module paypal observer-pattern


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-18
    • 2019-02-19
    • 2011-05-15
    • 2011-10-14
    • 1970-01-01
    • 2014-08-25
    • 2012-01-01
    • 2012-05-03
    相关资源
    最近更新 更多