如何使用Python签署对Amazon MWS的请求

时间:2020-02-14 22:33:17

标签: python amazon-mws

我需要向MWS提交供稿。我尝试如下进行操作:

xml="""
<xml-feed>
"""
m = hashlib.md5()
m.update(bytes(xml, 'UTF-8'))
md=m.digest()
md=base64.b64encode(md).strip()

l=[
"AWSAccessKeyId=############",
"Action=SubmitFeed",
"FeedType=_POST_PRODUCT_DATA_",
"MWSAuthToken=amzn############################",  
"MarketplaceId=A1PA6795UKMFR9",
"SellerId=A###########",
"SignatureMethod=HmacSHA256",
"SignatureVersion=2",
"Timestamp="+str(datetime.today()-timedelta(hours=1)).replace(" ","T")[:19].replace(':',r'%3A')+"Z",
"Version=2009-01-01"
,"ContentMD5Value="+str(md)[2:-3]+'%3D%3D'
]

sts="""POST
mws-eu.amazonservices.com
/Feeds/2009-01-01
"""

string=""
for i in l:
    string+=i+"&"
    sts+=i+"&"

string=string[:-1]
sts=sts[:-1]

signature = hmac.new(key=b"#####secret##key####",
                    msg=bytes(sts, 'UTF-8'),
                    digestmod=hashlib.sha256).digest()

signature = base64.b64encode(signature).strip()
r=requests.post("https://mws-eu.amazonservices.com/Feeds/2009-01-01?"+string+"&Signature="+(str(signature))[2:-2]+"%3D"
                ,data=xml)

但是Amazon向我返回了一个错误: 我们计算出的请求签名与您提供的签名不匹配。

非常感谢您的建议,以及如何修复程序。有趣的是,如果我对GetCompetitivePricingForASIN进行同样的操作,它将起作用。

0 个答案:

没有答案
相关问题