最近有几位客户反映,通过支付宝外卡付款的单,订单状态没有更新,订单邮件也收不到。

收到反馈后,比较着急,因为订单的重要性不言自喻。那么是什么原因导致的呢? 第一反应:alipay的通知接口做了改动了。 准备着手测试下支付流程,这时候,有客户告知邮件可以收到,但是有延迟。那接口改动的理由就站不住脚了,最有可能的原因是alipay的通知延迟了。

Magento支付宝外卡3.5及之前版本中,支付成功后,订单状态的更新,及客户订单邮件的发送,是依赖alipay的通知机制的,没有考虑到alipay通知延迟的特殊情况。

因此在3.6版本中做了改进:支付宝支付成功,紧接着跳回购物网站,数据安全校验通过后,此时也立即更新订单状态为processing,然后发送订单邮件。 如果在非正常情况下,客户没有返回购物网站(客户关掉浏览器,网络错误等),那么这时候,再利用alipay的通知机制,更新订单状态。

综合这两种方式(alipay return, alipay notify)协同处理,最大限度的确保了订单状态的无延迟更新。