CC处理后Magento长时间延迟保存命令

时间:2013-03-23 17:56:30

标签: magento magento-1.6

客户的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秒!

有些事情显然不是问题:

  • 它不会一直发生。也许10个订单。
  • 这不是订单的大小(60秒订单有5行 项目)。
  • 这不是订单本身。在离开Authorize.net之前,订单(和项目)会被保存,同样的声明只需要几分之一秒。
  • 发生减速时,Magento Exception或System日志中没有任何内容。

我无法对此行为提出任何解释。其他人有什么想法吗?

0 个答案:

没有答案