Amazon MWS - 不明白如何生成 HMAC

Amazon MWS - Don't understand how to generate HMAC

目前我正在努力为亚马逊 MWS 生成 HMAC。

我以为我明白它是如何工作的。

我用 Scratchpad 生成了一个请求。 Scratchpad 显示要签名的字符串以及 SHA 256 HMAC 和 Base64 HMAC。 要签名的字符串由 4 行组成,如文档中所述。

有几个 HMAC 在线转换器。我试过了:

https://www.freeformatter.com/hmac-generator.html

https://codebeautify.org/hmac-generator

当我将字符串转换为 Scratchpad 生成的符号时(4 行),我得到另一个 SHA 256 HMAC,然后 Scratchpad 生成。

另外还有几个 Base64 在线转换器。我试过了:

https://www.freeformatter.com/base64-encoder.html

https://www.base64encode.org

当我转换 Scratchpad 生成的 SHA 256 HMAC 时,我得到了另一个 Base64-String 然后 Scrathpad 生成。

这让我很困惑。我不明白什么?

另外一点:

后来我想我想使用 GET 而不是 POST。我做对了吗,为 GET 签名的字符串也必须在 4 行中,而不是在一行中,因为它会在以后执行?这就是我对文档的理解。

我使用了这些链接: http://docs.developer.amazonservices.com/en_US/dev_guide/DG_QueryString.html http://docs.developer.amazonservices.com/en_US/dev_guide/DG_SigningQueryRequest.html https://mws.amazonservices.com/scratchpad/index.html

回答我自己的问题。


使用在线转换器生成 SHA256:

我想问题出在 LF 上。 Onlineconverter 可能有问题。也许他们使用 CRLF。最好不要尝试使用 Onlineconverters 检查您的 SHA256。


使用在线转换器生成 base64:

SHA256 Scratchpad 显示的不是您使用 base64 转换的值。您必须转换 SHA256 的十六进制值。


使用 GET 签名的查询:

如果您想使用 GET,要签名的查询必须类似于要为 POST 签名的查询。亦为四行。仅将 POST 与 GET 交换。