【发布时间】:2015-05-20 05:20:15
【问题描述】:
我正在使用 Magento 1.8.1 版本,我想设置 Paypal IPN 来更新我的订单状态,但是当我从 PayPal 运行 IPN 模拟器测试时,它不起作用引发 HTTP 错误,请参阅http://puu.sh/hTQaP/af2473710b.png。
请告诉我如何解决这个问题。
【问题讨论】:
标签: magento paypal-ipn paypal-sandbox
我正在使用 Magento 1.8.1 版本,我想设置 Paypal IPN 来更新我的订单状态,但是当我从 PayPal 运行 IPN 模拟器测试时,它不起作用引发 HTTP 错误,请参阅http://puu.sh/hTQaP/af2473710b.png。
请告诉我如何解决这个问题。
【问题讨论】:
标签: magento paypal-ipn paypal-sandbox
经过深入研究,我终于找到了解决方案。这是由于请求中的“USER Agent”HTTP 标头所致。您可以在 Ipn.php 文件上更新它。只需在 app/code/core/Mage/Paypal/Model/Ipn.php 上的此函数中替换以下行(不要应用于核心文件。将其添加到本地目录)
protected function _postBack(Zend_Http_Client_Adapter_Interface $httpAdapter)
在第 143 行(在 magento 1.8.1 中)
$httpAdapter->write(Zend_Http_Client::POST, $this->_config->getPaypalUrl(), '1.1', array(
'Connection: close',
), $sReq);
替换为
$httpAdapter->write(Zend_Http_Client::POST, $this->_config->getPaypalUrl(), '1.1', array(
'Connection: Close', 'User-Agent: your_company_name'
), $sReq);
【讨论】: