我有一个运行在Hostgator共享托管帐户中的网站,自从v1.2开始运行Google Checkout(GC) - 当该网站首次上线时,GC即可开箱即用。
最近我将网站移动到VPS服务器并且GC停止使用此错误: Google Checkout:来自Google Checkout服务器的响应无效
我认为这不是Magento的Google Checkout集成的问题,而是新的VPS服务器或可能需要进一步测试的SSL证书,因此我将网站移回共享服务器(GC再次开始工作!),然后使用有效的SSL证书,一个有效的GC帐户设置一个测试站点。
3周过去了GC仍无法在VPS服务器上运行;我已经尝试/搜索/测试了所有可能性以及Hostgator支持的帮助,我们已经用尽所有选项,我们认为它与SSL证书设置和服务器配置无关。
从上面的错误和“var / log / payment_googlecheckout”中的日志我认为它无法重定向到checkout.google.com/schema/2
<order-processing-support>
<request-initial-auth-details>true</request-initial-auth-details>
</order-processing-support>
</checkout-shopping-cart>
[dir] => out
似乎很多人之前都遇到过同样的错误,但似乎没有人能找到原因,我开始认为Magento的Google Checkout模块存在一个错误。
如果您之前遇到此问题并已解决,请分享。谢谢!
答案 0 :(得分:1)
This person似乎遇到了类似的问题,原因是他们的cURL安装存在问题。您是否将共享主机版本与VPS进行了比较?我要比较一下:PHP版本,PHP扩展版本,php.ini
设置以及cURL本身的版本。
如果这些都没有带来任何结果,请打开app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Abstract.php
并修改_call()
方法,如下所示:
// app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Abstract.php
public function _call($xml)
{
// ... snip ...
$result = @simplexml_load_string($response);
if (!$result) {
// Add this...
Mage::log(var_export($response, true), null, 'google_checkout_debug.log', true);
// ... end
$result = simplexml_load_string('<error><error-message>Invalid response from Google Checkout server</error-message></error>');
}
有了这个,您将获得Google发送给var/log/google_checkout_debug.log
的确切回复。使用它来调试可能出错的地方(可能在响应中嵌入了另一条错误消息)。
请记住在完成后删除代码!