我最近将我的Magento live网站从1.6.2.0升级到1.7.0.0。 从升级开始,我现在在PayPal标准付款方面遇到问题。 当客户使用PayPal付款时,PayPal上的付款顺利进行,但Magento订单状态未更新并保持“待定”状态。
我已经检查过报告此问题的各种网站,但我仍然无法解决问题。
我有payment_paypal_standard.log报告此: ” .... [postback_result] => [例外] => PayPal IPN回发失败。有关详细信息,请参阅paypal_unknown_ipn.log。“
但是我没有创建paypal_unknown_ipn.log,所以我无法获得有关错误的更多信息。
调查更多,我发现可能的问题是返回的PayPal回发字符串没有被正确解密,但我还没有找到一个真正的解决方案来帮助我解决问题。
有没有办法很快找到解决方案? 提前谢谢大家。
答案 0 :(得分:3)
请参阅http://doghouse.agency/article/debugging-paypal-ipn-postback-failures-magento
基本上,CURL有时会决定在回发请求标头中添加“Expect:100”字段,以检查是否允许发送此请求。这会导致CURL响应字符串与Magento(最多1.7)预期的不同
更改
$response = preg_split('/^\r?$/m', $response, 2);
$response = trim($response[1]);
到
$response = preg_split('/^\r?$/m', $response);
$response = trim(end($response));
它应该解决这个具体问题。当然,您可能遇到了不同的问题,即CURL错误。在这种情况下,请记录CURL错误号。请参阅此页面以获取CURL错误号列表:http://curl.haxx.se/libcurl/c/libcurl-errors.html
答案 1 :(得分:0)
我有同样的问题,但是手动修补
http://www.magentocommerce.com/bug-tracking/issue/?issue=13515#30
请参阅我的评论#30。
希望这会有所帮助。 欢呼声