捕捉已支付订单的正确magento观察者事件是什么?


What's the right magento observer event to capture order paid?

我正试图将订单发送给第三方之后,只有在订单已经支付并且现在已设置为'处理'状态之后。什么是最好的观察者来设置它,使其适用于所有支付类型?

在阅读了几个来源之后,似乎是:

sales_order_invoice_pay

应该适用于所有付款方式,但似乎已在Magento 1.9上删除:http://rabee.me/codes/magento/cheatsheet/1.9/(此列表不完整,请检查下面的更新)

另一个选项是:

'sales_order_payment_pay'

但是当我测试它设置支付方式为"支票/汇票"时,它不会在我使用订单>发票>提交发票后端生成发票后被触发

这个方法是否只能与其他支付方法一起调用?(贝宝/authorize.net)

更新:

阅读后:这另一个问题似乎是保证我在付款(在线或离线)后导出订单的唯一方法是在创建发票时捕获,并且对于Magento 1.9正确的观察者是:

sales_order_invoice_register

发票是自动创建和发送后,在线支付方式paypal/authorize.net?当在沙盒/测试模式下使用它们时,这仍然是正确的吗?

更新2:

经过多次测试,似乎'sales_order_invoice_pay'是用来实现我需要的正确方法。

checkout_onepage_controller_success_action呢?这可以使用,如果您的订单付款是成功的。存在另一个事件sales_order_payment_capture。它也可以用在你的情况下。我以前没有用过它。

查看此链接

编辑

根据讨论,sales_order_invoice_pay似乎是捕获订单支付的完美观察者,并且该事件在Magento 1.9中仍然可用。(弃用)

更多参考,请查看链接