从亚马逊获得合理的答案我遇到了问题。问题只出在GetMyFeesEstimate
上。像GetMyPriceForASIN
这样的其他东西也适用。我正在尝试使用VBA / Excel获得响应。
亚马逊的示例代码:
https://mws.amazonservices.de/Products/2011-10-01?
FeesEstimateRequestList.FeesEstimateRequest.1.MarketplaceId=A1PA6795UKMFR9
&FeesEstimateRequestList.FeesEstimateRequest.1.IdType=ASIN
&FeesEstimateRequestList.FeesEstimateRequest.1.IdValue=3828934897
&FeesEstimateRequestList.FeesEstimateRequest.1.IsAmazonFulfilled=true
&FeesEstimateRequestList.FeesEstimateRequest.1.Identifier=request1
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.ListingPrice.CurrencyCode=EUR
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.ListingPrice.Amount=30.00
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.Shipping.CurrencyCode=EUR
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.Shipping.Amount=3.99
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.Points.PointsNumber=0
&AWSAccessKeyId=XXXXXXXXXXXXX
&Action=GetMyFeesEstimate
&SellerId=XXXXXXXXXXXXXX
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2018-01-07T10%3A26%3A27Z&Version=2011-10-01&Signature=bJJJorhyeKwejuddJs6Z%2BVYZZmKtm0CG2GAXTrShyZM%3D
如果我尝试将此签名请求与我的数据一起使用,则会出现以下错误:
我们计算的请求签名与您提供的签名不匹配。检查您的AWS Secret Access Key和签名方法。有关详细信息,请参阅服务文档
有人可以帮我弄这个吗?
Here是亚马逊的文档。
您尚未显示有关如何签署请求的代码。
既然您已经成功使用了一个API,那么在签名字符串和POST请求时,您是否可以检查您使用的十进制值是否完全相同?有时excel将30.0之类的值存储为0.3E02或类似的东西,这会导致签名字符串与您的发布请求不同。
我使用Amazon Scratchpad创建了一个POST,并获得了签名字符串的指导。请转到https://mws.amazonservices.com/scratchpad/index.html在左侧输入详细信息并单击提交后,您可以看到请求详细信息和签名字符串。如果您完全按照指定的那样创建请求并在那里完全按照指定签名,那么您就不应该有唱歌问题。
以下是您的请求示例:
POST / Products / 2011-10-01?AWSAccessKeyId =
与行动= GetMyFeesEstimate
&SellerId = XXXXXXXXXXXXXX
&SignatureVersion = 2
&时间戳= 2018-06-12T04%3A19%3A55Z
&版本= 2011-10-01
&Signature = VZhLVLVN7FMOD8spST8d51BOOKTBYY9FADZHLOKzhNK%ZD
&是SignatureMethod = HmacSHA256
&FeesEstimateRequestList.FeesEstimateRequest.1.MarketplaceId = A1PA6795UKMFR9
&FeesEstimateRequestList.FeesEstimateRequest.1.IdType = ASIN
&FeesEstimateRequestList.FeesEstimateRequest.1.IdValue = 3828934897
&FeesEstimateRequestList.FeesEstimateRequest.1.IsAmazonFulfilled =真
&FeesEstimateRequestList.FeesEstimateRequest.1.Identifier = request1
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.ListingPrice.Amount = 30.00
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.ListingPrice.CurrencyCode = EUR
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.Shipping.Amount = 3.99
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.Shipping.CurrencyCode = EUR
&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.Points.PointsNumber = 0 HTTP / 1.1
主持人:mws.amazonservices.com
x-amazon-user-agent:AmazonJavascriptScratchpad / 1.0(语言= Javascript)
内容类型:text / xml
这是要签名的字符串。请注意,您必须将CHR(10)换成新行。不要将VBCRLF放入字符串中。
POST mws.amazonservices.com / Products / 2011-10-01 AWSAccessKeyId =&Action = GetMyFeesEstimate&FeesEstimateRequestList.FeesEstimateRequest.1.IdType = ASIN&FeesEstimateRequestList.FeesEstimateRequest.1.IdValue = 3828934897&FeesEstimateRequestList.FeesEstimateRequest.1.Identifier = request1&FeesEstimateRequestList.FeesEstimateRequest.1.IsAmazonFulfilled =真FeesEstimateRequestList.FeesEstimateRequest.1.MarketplaceId = A1PA6795UKMFR9&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.ListingPrice.Amount = 30.00&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.ListingPrice.CurrencyCode = EUR&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.Points.PointsNumber = 0&FeesEstimateRequestList.FeesEstimateRequest.1 .PriceToEstimateFees.Shipping.Amount = 3.99&FeesEstimateRequestList.FeesEstimateRequest.1.PriceToEstimateFees.Shipping.CurrencyCode = EUR&SellerId = XXXXXXXXXXXXXX&是SignatureMethod = HmacSHA256&SignatureVersion = 2&时间戳= 2018-06-12T04%3A19%3A55Z&版本= 2011-10-0 1