上周末的某个时候,我们的 Opencart 安装版本 1.5.1.3 开始处理通过 PayPal Website Payment Pro 进行的 CC 付款的重复订单。它以相同的顺序发生,有时它会处理两次。有时 3 次。通过 Paypal Web 标准模块进行的付款工作正常。
我查看了错误日志,大约在这开始发生的同时,我们开始收到这些 php 通知。
2013-04-23 3:44:01 - PHP 通知:未定义索引:/var/www/vhosts/xxxxxxxxx.com/httpdocs/system/library/customer.php(170) 中的 customer_id:eval()'d 代码第 4 行 2013-04-23 3:44:01 - PHP 通知:未定义索引:/var/www/vhosts/xxxxxxxxx.com/httpdocs/system/library/customer.php(170) 中的 payment_address_id:eval()'d第 4 行的代码
我不知道它们是否相关,但它们同时开始出现。我回到日志中,并没有在其他任何地方看到这些。奇怪的是,到目前为止,购物车一直运行良好,突然弹出。
我从 PayPal 请求了新的 API 凭证,并在 Opencart 中重新安装了 Web Payment Pro 模块。最初这似乎有所帮助,但我们昨天仍有订单以相同的顺序重复出现。我们从一些客户那里得到了一些反馈,似乎人们在提交订单时已经挂断了“请稍候……”部分。我们最初会不时得到这个,但突然之间它变得更加频繁。该页面提交订单,但从不返回成功页面。阻止客户再次按下按钮会有所帮助,因此我们编写了一个脚本来阻止用户再次按下提交订单按钮。
不幸的是,它仍然没有解决问题的根源,因为网站和支付处理器之间的通信在某个地方被挂断了。我猜贝宝对他们进行了一些更改以导致此问题,但是任何我可以寻求纠正的建议将不胜感激。谢谢。