0

我正在将IXCBA的 Inline Checkout by Amazon 插件用于 Magento 商店。我使用 SSL 与 Amazon 建立了安全的加密连接。每次我尝试购买时,我都会遇到同样的错误:

<pre>Simple XMLElement Object
(
Error => SimpleXMLElement Object
Type = > Sender
Code = > SignatureDoesNotMatch
Message = > The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
)

RequestID => id-name
)
<pre/>

我检查了 AWS 密钥和其他数据并更换了无数次,但都没有运气。我还向扩展作者寻求帮助,并在亚马逊卖家中心发布了一个问题,但还没有给出如何解决问题的线索。

亚马逊推荐一些脚本,包括 JavaScript 来检查签名问题。

我正在考虑使用这个 JavaScript:

function getSignatureKey(key, dateStamp, regionName, serviceName) {

   var kDate= Crypto.HMAC(Crypto.SHA256, dateStamp, "AWS4" + key, { asBytes: true})
   var kRegion= Crypto.HMAC(Crypto.SHA256, regionName, kDate, { asBytes: true });
   var kService=Crypto.HMAC(Crypto.SHA256, serviceName, kRegion, { asBytes: true });
   var kSigning= Crypto.HMAC(Crypto.SHA256, "aws4_request", kService, { asBytes: true });

   return kSigning;
}

因为我至少对使用 jQuery 之类的库的 JavaScript 有一些基本的了解。

但我现在想知道我需要替换哪些数据来进行测试。我还想知道我是否可以只使用 Firebug JScript 控制台来运行测试,或者我是否需要以不同的方式进行测试。后者我可以通过测试弄清楚,但对于前者我可以使用一些帮助。

更新

我在 FF Scratchpad 中运行了脚本,发现密钥丢失了,所以我添加了 AWS 访问密钥 ID 并再次运行它,但什么也没发生。我没有错误也没有输出。

更新二

替换访问密钥密钥和商家 ID 时出现另一个错误:

重要讯息

We're sorry, but there's a problem processing the order from this website.
Please contact the seller for help on placing this order.

也许卖方中心的配置不正确?链接是https://payments-sandbox.amazon.com/gp/cba/v2/widgets ...也许是错误的版本?

数据库中的更改似乎确实有所帮助,所以也许我在后端输入的数据没有被 IXCBA 正确存储。

更新三

毕竟后端的代码还可以。更改它之后,代码都被破坏了,所以我不得不再次从 Magento 后端进行操作。但后来我得到了同样的 XML 错误。亚马逊提到了这一点:

现在看起来真的很奇怪。要完成订单,您的网站必须进行几个 API 调用。2个基本的是setPurchaseItems将订单数据放入订单,完成PurchaseContract处理订单。在您的情况下, completePurchaseContract 返回签名错误,但 setPurchaseItems 工作正常。

在这种情况下,只要您确保在您的 magento 后端中,merchantID、Access Key 和 secret key 字段没有前导/尾随空格,您就必须获得插件提供商 magiex 的支持才能查看。我们无权访问代码,因此无法真正帮助您修复它。

所以我再次联系了MageIx。在我试图弄清楚事情的同时等待回应。

4

1 回答 1

0

最后出现了三个问题。一,安装不知何故没有正确完成。我不得不把它重做。二、AWS Merchant ID、key和secret key没有正确添加。我调整的。第三,有一个服务器标记问题导致购物车的自签名问题。MageIx 开发人员制作了一个自定义扩展来规避时间戳问题。输入密钥和重新安装的其他问题并不难解决。CBA现在工作

注意 现在唯一的问题是亚马逊的 Inline Checkout 似乎不适用于 FBA。但在亚马逊,一半的开发人员说有,而其他人说没有。但这是另一个线程的问题。

于 2013-09-25T05:36:13.697 回答