客户的Magento(1.6.2)商店使用Authorize.net SIM进行CC处理。当客户在Authorize.net站点上完成CC处理时,Authorize.net会向Magento发送一个带有交易信息的中继响应。然后,自定义Magento代码会使用付款信息更新订单。
Authorize.net有一个响应超时(大约10秒)。如果Magento没有按时完成处理,Authorize.net会放弃并向客户和商店管理员发送一封电子邮件,说明收费已获得批准,但网站没有回应。
通常,Magento能够在Authrize.net的超时窗口内完成处理。然而,偶尔,Authorize.net确实会超时。
我将记录添加到Magento的各个地方,以找出发生延迟的位置。事实证明它位于\ app \ code \ core \ Mage \ Sales \ Model \ Order.php :: _ afterSave()。
具体来说,就是代码行:
$this->_items->save();
Magento保存订单商品。
这一句话最多可能需要60秒!
有些事情显然不是问题:
我无法对此行为提出任何解释。其他人有什么想法吗?