跑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