某些服务器中出现了一个奇怪的无法解决的Google Checkout问题

时间:2012-03-09 18:30:25

标签: magento google-checkout

我有一个运行在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模块存在一个错误。

如果您之前遇到此问题并已解决,请分享。谢谢!

1 个答案:

答案 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的确切回复。使用它来调试可能出错的地方(可能在响应中嵌入了另一条错误消息)。

请记住在完成后删除代码!