Amazon MWS - Don't understand how to generate HMAC
目前,我在为亚马逊MWS生成HMAC方面有些挣扎。
我以为我知道它是如何工作的。
使用Scratchpad我产生了一个请求。 Scratchpad显示要签名的字符串,以及SHA 256 HMAC和Base64 HMAC。
要签名的字符串由4行组成,如文档中所述。
HMAC有几个Onlineconverter。我试过了:
https://www.freeformatter.com/hmac-generator.html
https://codebeautify.org/hmac-generator
当我将字符串转换为由Scratchpad生成的符号(4行)时,我得到了另一个SHA 256 HMAC,然后由Scratchpad生成了。
另外,还有一些Base64的Onlineconverter。我试过了:
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/zh_CN/dev_guide/DG_QueryString.html
http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_SigningQueryRequest.html
https://mws.amazonservices.com/scratchpad/index.html
回答我自己的问题。
使用Onlineconverter生成SHA256:
我想问题是LF。 Onlineconverter可能有问题。 也许他们使用CRLF。 最好不要尝试使用Onlineconverters检查SHA256。
使用Onlineconverter生成base64:
SHA256 Scratchpad显示的不是您用base64转换的值。 您必须转换SHA256的十六进制值。
查询以GET签名:
如果要使用GET,则要签名的查询必须看起来像要签名的POST查询。 还有四行。 仅将POST与GET交换。