- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前在尝试向 Amazon Marketplace WebService 提交请求时遇到以下错误:
The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details. 62baed22-cc14-49bd-bf34-c1eb10bc4019
代码:
import sys, os, base64, datetime, hashlib, hmac, urllib
from time import gmtime, strftime
from requests import request
import urllib.parse
import urllib.request
import dateutil.parser
def get_timestamp():
time = strftime("%Y-%m-%dT%H:%M:%SZ", gmtime())
return dateutil.parser.parse(time)
def calc_signature(method, domain, URI, request_description, key):
sig_data = method + '\n' + \
domain.lower() + '\n' + \
URI + '\n' + \
request_description
hmac_obj = hmac.new(key.encode(), sig_data.encode(), hashlib.sha256)
digest = hmac_obj.digest()
return urllib.parse.quote(base64.b64encode(digest), safe='-_+=/.~')
SECRET_KEY = 'XXXXXXXX'
AWS_ACCESS_KEY = 'XXXXXXXX'
SELLER_ID = 'XXXXXXXX'
MARKETPLACE_ID = 'XXXXXXXX'
MWS_AUTH_TOKEN = 'XXXXXXXXXXX'
Action = 'GetLowestPricedOffersForASIN'
SignatureMethod = 'HmacSHA256'
SignatureVersion = '2'
Timestamp = get_timestamp()
Version = '2011-10-01'
CreatedAfter = '2011-10-01T23:00:57Z'
URI = '/Products/2011-10-01'
domain = 'mws.amazonservices.com'
proto = 'https://'
method = 'POST'
ASIN = 'B004KZQVF4'
itemcondition = 'New'
payload = {
'AWSAccessKeyId': AWS_ACCESS_KEY,
'Action': Action,
'SellerId': SELLER_ID,
'MWSAuthToken': MWS_AUTH_TOKEN,
'SignatureVersion': SignatureVersion,
'Timestamp': '2016-01-08T05%3A32%3A48Z',
'Version': Version,
'SignatureMethod': SignatureMethod,
'CreatedAfter': CreatedAfter,
'MarketplaceId.Id.1': MARKETPLACE_ID,
'ASIN': ASIN,
'ItemCondition': itemcondition
}
request_description = '&'.join(['%s=%s' % (k, urllib.parse.quote(payload[k], safe='-_+=/.~').encode('utf-8')) for k in sorted(payload)])
sig = calc_signature(method, domain, URI, request_description, SECRET_KEY)
url = '%s%s?%s&Signature=%s' % \
(proto+domain, URI, request_description, urllib.parse.quote(sig))
headers = {
'Host': domain,
'Content-Type': 'text/xml',
'x-amazon-user-agent': 'python-requests/1.2.0 (Language=Python)'
}
response = request(method, url, headers=headers)
URL 输出:
https://mws.amazonservices.com/Products/2011-10-01?ASIN=XXXXXXX&AWSAccessKeyId=XXXXXXX&Action=GetLowestPricedOffersForASIN&CreatedAfter=2014-08-26T23%3A00%3A57Z&ItemCondition=New&MWSAuthToken=XXXXXXX&MarketplaceId.Id.1=XXXXXXX&SellerId=XXXXXXX&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-01-13T21%3A08%3A57Z&Version=2013-09-01&Signature=hwooJu0FeDs3j26mEUN8of5buSI/QsgY54kVCUsAirw%3D
显然签名的生成方式有问题,但我无法缩小确切原因的范围。
最佳答案
嗯,我想通了。只需将方法从“POST”更改为“GET”。
与此抗争了好几天——我想事情就是这么简单!
关于python - 亚马逊 MWS 错误 SignatureDoesNotMatch(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777296/
我正在努力解决以下问题: 我想从 _GET_MERCHANT_LISTINGS_DATA_ 报告中导入商户事件列表,到目前为止还没有发生什么戏剧性的事情。但根据商家的区域设置,报告列标题会有所不同。
我尝试获取每个订单的返回商品,但不幸的是它似乎没有从 Amazon Web Services 提供此类信息。 public GetOrderResponse InvokeGet
我要为客户开发 MWS 应用程序,问题是我需要的帐户似乎已付款。 我只需要创建卖家帐户和我的客户即可为我添加权限。但是,到目前为止,我找不到使用免费帐户执行此操作的方法。 MWS 登录说我的帐户是个人
我已经查看了我能找到的所有报告文档和各种 MWS 操作,但我终其一生都找不到任何方法来检索我们当前所用 SKU 的当前设定的销售价格、销售开始日期和销售结束日期卖。 澄清一下:我试图检索销售价格,而不
我正在尝试取消亚马逊上的订单,最初遇到了一些格式问题,现在所有格式问题都已删除,但提要结果一直显示一个或多个项目无效。我正在使用正确的 xml 格式来取消订单以及正确的亚马逊订单 ID 和亚马逊订单商
对于某些 skus,我必须设置特定的运输成本(或限制运输)。 我使用以下代码/XML: 我用 MWS Scratchpad ( https://mws.amazonservices.de/scratc
我正在尝试使用 PHP 中的 MWS API 将多个跟踪号上传到亚马逊订单,但不知道对此的 XML 请求是什么。这是我正在使用的 XML,它最终会上传最后一个跟踪号。 $feed =
我需要编写一个 Excel 宏来获取我客户的订单和库存详细信息(使用亚马逊 MWS)。 但是我的客户需要我的开发者 ID 才能授予我访问他的帐户的权限。 我搜索了很多,但没有找到任何可以注册为开发人员
我想获取每种产品的“入库数量”、“可配送数量”和 session 。谁能帮我找出我应该使用哪个 MWS API 调用来获取这些数据? 最佳答案 选项 #1: 使用 Fulfillment Invent
我正在使用 Amazon MWS 的客户端库来检索有竞争力的价格信息等。但我希望能够删除产品,或通过 api 从我的库存中删除它们。我无法在文档中或通过谷歌找到如何做到这一点。 在此处未提及 http
如何在亚马逊 MWS 的 Orders API 中获取已发货的 MFN 账户的运营商名称?是否可以使用 Order API 来做到这一点? 最佳答案 我认为目前没有任何 API 可以通过 MWS 检索
我正在使用 amazon mws feed api 来更新我网站上的订单状态。 当我调用 SubmitFeed Api 时,它已成功提交。但是,当我调用 GetFeedSubmissionResult
我们已经与亚马逊的 API 集成 http://docs.developer.amazonservices.com/en_US/orders/2013-09-01/结果看起来很棒,但它没有向我们显示亚
我正在使用 amazon mws feed api 来更新我网站上的订单状态。 当我调用 SubmitFeed Api 时,它已成功提交。但是,当我调用 GetFeedSubmissionResult
我正在尝试更新亚马逊上的产品列表。我正在使用 Feed API 来执行此操作。我所做的是 - 每半小时我会在我们的网站上编译列表订单,并通过 API 调用发送更新请求。但是我说遇到了这个问题。我的一些
我有一个 ASIN 列表,需要获取相应的 EAN/UPC 值。 我知道这可以使用 AWSECommerceService 和 ItemLookup 调用实现。但是,我的应用程序已经使用 MWS,我想避
亚马逊提供了一批文档,描述了我们可以通过 MWS 发送的提要的格式,但是,我们还需要知道他们的响应会发生什么,可能报告什么状态代码或报告错误时 XML 的结构是什么等... 我可以从哪里获得信息? 最
背景:现代化客户卖家帐户,需要以编程方式获取其当前列表的所有列表信息。 进展:使用报告 API ('_GET_MERCHANT_LISTINGS_DATA_') 获取所有列表 sku(以及一些所需的信
如何通过 MWS 得知或Product Advertising API如果某个项目被标记为“附加项目”。 例如以下 ASIN:B0002ARYES 最佳答案 Keepa.com API 提供以下信息:
只是试图找出更新亚马逊市场商店的产品价格是多么容易(或者可能是困难)。 经过一番搜索,我找到了关于 "Amazon Marketplace Web Service (Amazon MWS)" 的文档.
我是一名优秀的程序员,十分优秀!