什么是捕获订单的正确的magento观察员事件?

Ox3*_*Ox3 5 php observers magento magento-1.9

我只是在订单付款后才尝试向第三方发送订单,现在已将其设置为"处理"状态.什么是最好的观察者用来设置它适用于所有支付类型?

看完几个来源之后,似乎:

sales_order_invoice_pay
Run Code Online (Sandbox Code Playgroud)

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

另一种选择是:

'sales_order_payment_pay'
Run Code Online (Sandbox Code Playgroud)

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

此方法仅使用其他付款方式调用吗?(贝宝/ authorize.net)

更新:

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

sales_order_invoice_register
Run Code Online (Sandbox Code Playgroud)

在线方法paypal/authorize.net付款后是否自动创建和发送发票?在沙箱/测试模式下使用它们时仍然如此吗?

更新2:

经过大量测试后,似乎这'sales_order_invoice_pay'是用于实现我所需要的正确方法.

Raj*_*omy 5

怎么样checkout_onepage_controller_success_action.如果您的订单付款成功,则可以使用此选项.还有另一个事件sales_order_payment_capture.它也可能在你的情况下使用.我以前没用过它.

检查此链接

编辑

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

有关更多参考,请查看此 链接

  • 该列表很可能未完成.这是定义该事件的文件https://github.com/speedupmate/Magento-CE-Mirror/blob/master/app/code/core/Mage/Sales/Model/Order/Invoice.php.看看`pay()`方法.同时检查您的系统并确保代码看起来相同. (2认同)