我的模块需要知道何时发生了成功结算。所以,按照我在各个地方阅读的内容,我会听取checkout_onepage_controller_success_action和checkout_multipage_controller_success_action的事件。没问题,当我在我的开发网站上使用虚拟信用卡付款时,上述事件之一被解雇了。但我想知道如果我用PayPal支付会发生什么,所以我说了一个PayPal开发沙箱来测试它。检查http流量,我看到在下订单时已向PayPal发送了notify_url。这很有希望 - 当PayPal调用paypal / ipn动作时,PayPal模块将会完成'收到状态,触发结账_xxx_controller_success_action - 对吗?错。
我的模块依赖于知道订单何时成功下单,所以我正在寻找有关解决此问题的最佳方法的建议。
我只是在这里添加一些关于我的环境的信息,以防它相关。 我在笔记本电脑上运行Magento 1.4.2.0。使用PayPal Standard时,会向PayPal发送notify_url,该PayPal会覆盖PayPal帐户中的任何设置。我正在使用笔记本电脑进行测试,因此无法从PayPal沙箱访问传递给PayPal的通知URL。所以我将notify_url更改为指向刚刚打印出收到的通知的可访问JSP。然后我将该参数字符串提供给我在我的机器上运行的一个小程序,该程序将其发布到原始的notify_url(... / index.php / paypal / ipn)。
谢谢。
答案 0 :(得分:1)
这是一篇旧帖子,但仍然是一个相关的问题。我们成功使用了事件checkout_onepage_controller_success_action(由Magento核心GoogleAnalytics扩展程序使用)来观察成功的PayPal Express订单(以及结账单页订单)。事件sales_order_payment_pay没有为新订单开火。
答案 1 :(得分:0)
我遇到了同样的麻烦 - 尝试使用sales_order_payment_pay
事件 - 它对我很有用