调用Amazon MWS Orders.ListOrders接口提示访问被拒绝如何解决
亚马逊MWS Orders.ListOrders接口AccessDenied错误解决方案
- 权限配置校验
- 登录亚马逊卖家后台,进入「用户权限」管理页,确认当前使用的开发者账号已勾选订单类接口的访问权限。
- 若为第三方开发者调用,需确认对应卖家已完成开发者ID授权,且授权时勾选了订单查看/管理的权限范围,未授权对应权限的令牌无法调用订单接口。
- 请求参数校验
- 确认请求携带的
SellerId、MWSAuthToken与目标站点匹配,不同站点的令牌、卖家ID不通用,填错会直接触发权限错误。 - 校验请求签名计算逻辑:参数需按ASCII码排序后拼接签名,签名算法用HMAC-SHA256,使用对应开发者账号的Secret Key进行加密。可先将相同参数填入MWS Scratchpad发起请求验证参数有效性,再对比PHP代码生成的请求参数与Scratchpad生成的参数差异。
- 确认请求的端点域名和站点匹配:北美站用
mws.amazonservices.com,欧洲站用mws-eu.amazonservices.com,日本站用mws.amazonservices.co.jp,选错端点也会返回权限错误。
- 确认请求携带的
- 账号资格校验
- 确认卖家账号未处于审核、受限状态,账号异常时亚马逊会限制接口访问权限。
- 2023年之后新注册的亚马逊卖家账号已不再支持旧版MWS接口调用,需切换到新版SP-API的订单接口获取数据。
- PHP代码示例参考(参数校验部分)
// 必填参数校验,缺失任意参数都会触发权限或参数错误 $requestParams = [ 'Action' => 'ListOrders', 'Version' => '2013-09-01', 'SellerId' => 'YOUR_SELLER_ID', 'MWSAuthToken' => 'YOUR_MWS_AUTH_TOKEN', 'MarketplaceId.Id.1' => 'YOUR_TARGET_MARKETPLACE_ID', 'CreatedAfter' => '2024-01-01T00:00:00Z', // 按ISO8601格式传入时间 'SignatureMethod' => 'HmacSHA256', 'SignatureVersion' => '2' ];
内容的提问来源于stack exchange,提问作者Axx
相关产品推荐
相关产品推荐

