跑MWS接口,报错:
Caught Exception: Access denied Response Status Code: 401 Error Code: AccessDenied Error Type: Sender Request ID: c5a634e6-0e1b-42d9-ba6b-de5e0f16b94c XML: <ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><Error><Type>Sender</Type><Code>AccessDenied</Code><Message>Access denied</Message></Error><RequestID>c5a634e6-0e1b-42d9-ba6b-de5e0f16b94c</RequestID></ErrorResponse>ResponseHeaderMetadata: null
问了下度娘,说是web service远程调用时IIS的配置必须为“允许匿名访问”才行。怎么配置呢?此电脑 -> 计算机 -> 管理 -> 服务和应用程序 -> Internet Informatica Services(IIS) -> 双击右边弹出窗口中IIS下的“身份验证” -> 右击“匿名身份验证” -> 启用。
如果还没有打开IIS的话,这样打开:控制面板 -> 程序和功能 -> 启用或关闭Windows功能 -> Internet Informatica Services -> Web管理工具 -> 勾上“IIS管理控制台”。
我打开自己电脑上的IIS配置一看,匿名身份验证已经勾选了,排除配置问题。然后继续排查,发现我在设置参数时,把MarketplaceId放到merchantId去请求了。其实merchantId就是sellerId,改过来再去请求就正常返回了:
GetReportCount Action Response ============================================================================= GetReportCountResponse GetReportCountResult Count 1724 ResponseMetadata RequestId c9537c0e-8789-4dd0-9dd5-ecc08b85d8c0 requestId : c9537c0e-8789-4dd0-9dd5-ecc08b85d8c0 responseContext : acyGtvqxlRDN1124g2ngAMFQESRJvItIl1W0Bm0I3aCeZFMQ3FPGlNZxT5wlBV0iltkOK6zQ5xM= timestamp : 2018-07-05T11:34:01.270Z