MWS是商城网络服务的缩写,具体介绍看这里http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_IfNew.html。MWS就是一组API,提供给开发者调用,实现卖家的数据上传、获取报告、库存、订单等。上面的贴出来的链接里有关于MWS开发者的详细说明,建议先好好通读下“程序员开发指南”,先了解下需要怎么去拼接请求地址和必传参数,否则会走很多弯路。
在构造一个请求MWS的url之前,你必须得有一个卖家ID(merchantId),如果你自己就是卖家,那么就拿你的卖家ID去注册一个开发者账号,亚马逊会给你一个开发者ID、一个访问秘钥ID(accessKeyId)和一个访问秘钥(secretAccessKey),我们只需要用到3个信息:merchantId、accessKeyId和secretAccessKey。如果卖家是你的朋友,那么同上,由他去注册开发者账号,把这3个信息给你即可。如果是第三方开发者(他已经自己注册了开发者账号),那么卖家需要拿第三方开发者的账号进行授权,授权他能访问卖家账号,这种情况需要把授权令牌(sellerDevAuthToken)拼接到请求地址中。最后作为开发者,你还得知道卖家的MWS究竟是在哪个国家开的,是在美国,欧洲,还是中国?每个地方对应不同的链接地址。
亚马逊 MWS 文档 » 程序开发员指南 » 亚马逊 MWS Scratchpad(测试工具),点开之后有不同国家MWS对应测试链接,可以要求把对应的参数输进去,看下API返回信息对不对。假设我的店开在中国区,那么就到https://developer.amazonservices.com.cn/这里去点开“导航 -> 亚马逊 MWS Scratchpad(测试工具)”。如果是国外的MWS会慢一些,毕竟传输路径比较长嘛。假如我现在是在北美注册的卖家账号,那么点开https://developer.amazonservices.com(等待n秒) -> Amazon MWS Scratchpad -> SellerId填merchantId、AWSAccessKeyId填accessKeyId、Secret Key填secretAccessKey -> 最后选对应API操作后,点击提交即可。
如果你想下载客户端代码,直接点开“API与文档 -> 报告(随便点开一个接口即可)-> Java客户端(选择你想要的语言)-> download”。下好了代码直接就拿来主义好了,改改上面的请求字段就可以跑起来了,看一下获取报告条数的API:
/******************************************************************************* * Copyright 2009 Amazon Services.* Licensed under the Apache License, Version 2.0 (the "License"); * * You may not use this file except in compliance with the License. * You may obtain a copy of the License at: http://aws.amazon.com/apache2.0* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License.* ***************************************************************************** ** Marketplace Web Service Java Library* API Version: 2009-01-01* Generated: Wed Feb 18 13:28:48 PST 2009 * */package com.amazonaws.mws.samples;import java.util.List;
import java.util.ArrayList;
import com.amazonaws.mws.*;
import com.amazonaws.mws.model.*;
import com.amazonaws.mws.mock.MarketplaceWebServiceMock;/**** Get Report Count Samples***/
public class GetReportCountSample {/*** Just add a few required parameters, and try the service* Get Report Count functionality** @param args unused*/public static void main(String... args) {/************************************************************************* Access Key ID and Secret Access Key ID, obtained from:* http://aws.amazon.com***********************************************************************/final String accessKeyId = "WWWWWWLLLLLLFFFFFFFF";final String secretAccessKey = "WWWWWWLLLLLLFFFFFFFFWWWWWWLLLLLLFFFFFFFF";final String appName = "AmazonJavascriptScratchpad";final String appVersion = "1.0";MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();/************************************************************************* Uncomment to set the appropriate MWS endpoint.************************************************************************/// USconfig.setServiceURL("https://mws.amazonservices.com/");// UK// config.setServiceURL("https://mws.amazonservices.co.uk/");// Germany// config.setServiceURL("https://mws.amazonservices.de/");// France// config.setServiceURL("https://mws.amazonservices.fr/");// Italy// config.setServiceURL("https://mws.amazonservices.it/");// Japan// config.setServiceURL("https://mws.amazonservices.jp/");// China// config.setServiceURL("https://mws.amazonservices.com.cn/");// Canada// config.setServiceURL("https://mws.amazonservices.ca/");// India// config.setServiceURL("https://mws.amazonservices.in/");/************************************************************************* The argument (35) set below is the number of threads client should* spawn for processing.***********************************************************************/config.setMaxAsyncThreads(35);/************************************************************************* You can also try advanced configuration options. Available options are:** - Signature Version* - Proxy Host and Proxy Port* - User Agent String to be sent to Marketplace Web Service************************************************************************//************************************************************************* Instantiate Http Client Implementation of Marketplace Web Service ***********************************************************************/MarketplaceWebService service = new MarketplaceWebServiceClient(accessKeyId, secretAccessKey, appName, appVersion, config);/************************************************************************* Uncomment to try out Mock Service that simulates Marketplace Web Service * responses without calling Marketplace Web Service service.** Responses are loaded from local XML files. You can tweak XML files to* experiment with various outputs during development** XML files available under com/amazonaws/mws/mock tree************************************************************************/// MarketplaceWebService service = new MarketplaceWebServiceMock();/************************************************************************* Setup request parameters and uncomment invoke to try out * sample for Get Report Count ***********************************************************************//************************************************************************* Marketplace and Merchant IDs are required parameters for all * Marketplace Web Service calls.***********************************************************************/final String merchantId = "WWWWLLLLLFFFFF";final String sellerDevAuthToken = "
跑完控制台输出成功日志:
GetReportCount Action Response
=============================================================================GetReportCountResponseGetReportCountResultCount1593ResponseMetadataRequestIdae847abb-6335-4ec3-904c-b3fdbd999979requestId : ae847abb-6335-4ec3-904c-b3fdbd999979
responseContext : bu7253H8xUoTt/yMP7gsP5osYa5dLIQ0Av+i7ENQwKBd14/ZhdEIw6yQW+2kan0HwujlUmeuaR8=
timestamp : 2018-07-16T07:57:35.453Z