【问题标题】:Google checkout integration with magento谷歌结帐与 magento 的集成
【发布时间】:2012-09-08 04:45:51
【问题描述】:

我正在尝试将 Google Checkout 添加到我的 magento 1.7.0.0 商店。我已经追踪了这个问题,并且在发布到谷歌服务器时似乎失败了,因为当我尝试阅读响应时它是错误的。

我得到的错误是:Google Checkout:来自 Google Checkout 服务器的响应无效

我正在使用 magento 1.7、带有沙盒凭据的谷歌沙盒、经过验证的银行帐户、未经检查的数字签名购物车,但我在我的开发机器上使用自签名证书和 API 版本 2.2。

问题发生在 app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Abstract.php 第 174、175 行

$http = new Varien_Http_Adapter_Curl();
$http->write('POST', $url, '1.1', $headers, $xml);
$response = $http->read();

【问题讨论】:

  • 尝试在前端关闭 SSL 仍然有同样的问题。已删除缓存/会话以进行良好的衡量。

标签: magento google-checkout magento-1.7


【解决方案1】:

不是PHP 开发者~

这是一个沙盒server to server(购物车)POST吗?检查:

注意 - 取消选中“数字购物车”仅意味着您的帐户将接受 HTML API 购物车 POST,但这并不意味着您可以在没有数字签名的情况下发送 XML如果直接 FORM发布到谷歌 - 回复:在 XML API 中,你 have 2 options to send XML data:

  1. 直接HTML FORM POST 到 Google(必须包括签名),或者;
  2. 服务器到服务器 POST 到 Google(必须使用基本身份验证凭据)

您还可以查看您的沙盒集成控制台以获取详细的错误消息:

Tools -> Integration Console

第...

【讨论】:

  • 我正在做一个服务器到服务器的帖子。我正在使用沙盒凭据并发布到沙盒 url。如果我的 ssl 证书是自签名的,这有关系吗?
  • @Nate - 在 sandbox 中,不需要 SSL....Integration Console 中的任何内容?如果 IG 中没有任何内容,从个人经验来看,它几乎总是在沙盒中使用 Production Merchant ID/Key 的问题(它们不可互换)。你POSTing 的网址是什么(以及你发布的是什么 xml)?
  • 我的集成控制台中没有任何内容,但我肯定使用了正确的凭据。我从 23 开始出现此错误“您必须对 API 调用使用 HTTP 基本身份验证(用户名 = 卖家 ID,密码 = 商家密钥)”,但从那时起我一直试图检查。
  • @Nate You must use HTTP Basic Authentication for API calls 可能是问题所在。如上所述,您的 HTTP 请求标头必须包含基本身份验证凭据(在您的情况下为 sandbox mid/key)-as described here(与上述相同)。
  • 是的,它是这样发送的:$http->write('POST', $url, '1.1', $headers, $xml);
【解决方案2】:

作为本地环境存在问题。问题要么是 Google 无法通信,要么是我的 tld 以 .dev 结尾。 Google 可能因此拒绝了该请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多