Amazon mws签名不匹配

2024-05-19 09:47:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python请求连接到我的amazonmws帐户。我定义了用于测试的参数,并从查询字符串计算了一个签名。在

我的代码:

cur_date = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')
secret_key = 'my_secret_key'

sign_str = 'POST' + '\n' + 'mws.amazonservices.in' + '\n' + '/Orders/2013-09-01' + '\n' + 'AWSAccessKeyId=access_key&Action=ListOrders&LastUpdatedAfter=2015-10-31T18:30:00Z&MarketplaceId.Id.1=A21TJRUUN4KGV&SellerId=seller_id&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=%s&Version=2013-09-01' %cur_date

# I am using below method to generate a signature. I read about this in various threads and questions.

sign = base64.b64encode(hmac.new(str(secret_key), sign_str, hashlib.sha256).digest())

payload = {'AWSAccessKeyId':'access_key',
    'Action':'ListOrders',
    'MarketplaceId.Id.1':'A21TJRUUN4KGV',
    'SellerId':'seller_id',
    'Timestamp':cur_date,
    'SignatureMethod':'HmacSHA256',
    'Signature':sign,
    'SignatureVersion':2,
    'Version':'2013-09-01',
    'LastUpdatedAfter':'2015-10-31T18:30:00Z'}

url = 'https://mws.amazonservices.in/Orders/2013-09-01'
headers = {'Content-Type':'text/xml'}
resp = requests.post(url, headers=headers, params = payload)

我的回答是:

^{pr2}$

我知道问题在于如何生成签名。 我在MWS SCRATCHPAD上测试了我的证书,它们工作得很好。在

生成签名的正确方法是什么?在


Tags: keyinamazonsecretdateaccessserviceaction

热门问题