Magento 支付工作流程和事件订单已支付

标签 magento events workflow payment

对于我的一个 Magento 模块,我需要捕捉“任何订单都定义为已付款”的事件。
所以我发现关联的事件是sales_order_payment_pay。好的似乎完全符合我的需求。

我是 Magento 开发人员,而不是商人,目前,我从未将 Magento 实例上线并投入生产。所以支付工作流程对我来说很黑暗。我曾经在测试期间选择“支票/汇票”作为付款方式。

问题是:我需要捕捉这个事件(sales_order_payment_pay),但似乎我无法触发它,也永远不会进入我的观察者函数。
我目前有 2 种付款方式,支票/汇票和信用卡。
对于第一个,商家需要在后端验证付款,我红色的是他创建发票的那一刻。所以我尝试了它,但该事件从未被触发。
对于第二个,它更难:因为我处于开发模式,我不知道如何通过信用卡验证付款。我在网上找到了一个允许在 Magento 中进行测试的万事达卡号码,但在后端,支付的总金额仍然为零。所以在提交订单后,没有触发任何事件(似乎很合乎逻辑),当我创建发票时,仍然没有触发任何事件。

您能帮我多了解一下付款流程并了解任何已付款的订单吗?我找不到任何有关它的信息或文档。

PS:我的模块的目的是捕捉事件下订单或支付的付款,并生成一个用于数据导出的 XML 文件。第一个下订单的已经开发出来了。

最佳答案

这个话题似乎有点棘手,所以我将分享我对支付方式和订单生命周期的看法。

Alan Storm's vision

首先,我邀请您查看最著名的 Magento 博主之一 Alan Storm 的主题。

以下是我认为它的工作方式:

案例 1:通过在线支付(Paypal、信用卡等)订购,接受付款

客户验证的订单 -> Magento 创建的订单 -> 状态pending_payment
客户在线支付的订单->付款服务验证的付款->付款正常-> Magento创建的发票->状态pending_payment(不确定这一点)。
商家发货的订单 -> Magento 创建的 shippig 优惠券 -> 状态完成

案例 2:通过在线支付(Paypal、信用卡等)订购,付款被拒绝

客户验证的订单 -> Magento 创建的订单 -> 状态pending_payment
客户在线支付的订单 -> 支付服务拒绝支付 -> Magento 取消订单 -> 状态已取消

案例3:离线支付订单(支票/汇票,销售优惠券等......)。发货前商家发票

客户验证的订单 -> Magento 创建的订单 -> 待处理状态
客户离线支付的订单 -> 商家收到的付款 -> 商家开具发票的订单 -> Magento 创建的发票 -> 状态处理
商家发货的订单 -> Magento 创建的运费优惠券 -> 状态完成

案例4:离线支付订单(支票/汇票,销售优惠券等......)。商船开票前

客户验证的订单 -> Magento 创建的订单 -> 待处理状态
客户离线支付的订单 -> 商家发货的订单 -> Magento 创建的运费券 -> 状态处理
由商家开具发票的订单 -> Magento 创建的发票 -> 状态处理

希望这个话题对将来的人有所帮助。
让我知道您之后是否需要更多信息。

关于Magento 支付工作流程和事件订单已支付,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17587916/

相关文章:

c# - Pow(x,y) 函数的工作流程是什么?

php - 使用简单项目的 SKU/ID 以编程方式在 Magento 中添加 bundle 产品

facebook - 更新谷歌搜索的主页/着陆页

jquery - 使用 jQuery 在 Google map 上进行空闲事件

vb.net - vb.net datagridview 中的长按事件是什么

c++ - 如何通知我窗口已激活?

magento - 如何在 magento 1.7 中的欢迎消息旁边添加登录链接

mysql - 从 Magento 1.9 数据库获取客户姓名、电子邮件和电话号码

workflow - 通过工作流基础4.0中的代码注册自定义跟踪参与者

unit-testing - 对 TFS 2010 流程工作流进行单元测试