签名不匹配:: IXCBA 内联结账 通过亚马逊马格嫩托扩展

Signature does not match:: IXCBA Inline Checkout By Amazon Magnento Extension

本文关键字:亚马逊 马格嫩 扩展 联结 不匹配 IXCBA      更新时间:2023-09-26

我正在使用IXCBA的Inline Checkout by Amazon插件用于Magento商店。我有一个使用 SSL 的安全加密连接到亚马逊。每次我尝试购买时,我都会收到相同的错误:

<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 将订单数据放入订单中,以及完成购买合同以处理订单。在您的情况下,签名错误由完整的购买合同返回,但设置购买项目工作正常。

在这种情况下,只要您确定商家 ID、访问密钥并且密钥字段中没有前导/尾随空格Magento后端,您将不得不获得Magiex的支持插件提供商来看看。因此,我们无法访问代码不能真正帮助你修复它。

于是我又联系了MageIx。等待回应,同时我试图弄清楚事情。

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

现在唯一的问题是亚马逊的内联结账似乎不适用于FBA。但在亚马逊,一半的开发人员说它有,其他人说它没有。但这是另一个线程的问题。