Непонятная проблема Google Checkout возникает на определенном сервере - PullRequest
2 голосов
/ 09 марта 2012

У меня есть сайт, работающий в учетной записи общего хостинга Hostgator с Google Checkout (GC), работающий начиная с версии 1.2 - когда сайт впервые начал работать, GC работает "из коробки".

Недавно я переместил сайт на VPS-сервер, и GC перестал работать с этой ошибкой: Google Checkout: неверный ответ от сервера Google Checkout

Я подумал, что это не может быть проблемой с интеграцией Google Checkout в Magento, но новый 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

Похоже, что некоторые люди уже сталкивались с такой же ошибкой, но никто не может найти причину, и я начинаю думать, что это ошибка в модуле Google Checkout Magento.

Если у вас была эта проблема раньше и она была решена, пожалуйста, поделитесь. Спасибо!

1 Ответ

1 голос
/ 12 марта 2012

У этого человека , похоже, была похожая проблема, и это было связано с проблемой их установки 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.Используйте это для отладки того, что может идти не так (возможно, в ответ встроено другое сообщение об ошибке).

Просто не забудьте удалить код, когда закончите!

...