zoukankan      html  css  js  c++  java
  • 亚马逊MWS开发套路演示

      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.
             ************************************************************************/
            // US
             config.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 = "<Merchant Developer MWS Auth Token>";
    
            GetReportCountRequest request = new GetReportCountRequest();
            request.setMerchant( merchantId );
            //request.setMWSAuthToken(sellerDevAuthToken);
    
            // @TODO: set request parameters here
    
             invokeGetReportCount(service, request);
    
        }
    
    
    
        /**
         * Get Report Count  request sample
         * returns a count of reports matching your criteria;
         * by default, the number of reports generated in the last 90 days,
         * regardless of acknowledgement status
         *   
         * @param service instance of MarketplaceWebService service
         * @param request Action to invoke
         */
        public static void invokeGetReportCount(MarketplaceWebService service, GetReportCountRequest request) {
            try {
    
                GetReportCountResponse response = service.getReportCount(request);
    
    
                System.out.println ("GetReportCount Action Response");
                System.out.println ("=============================================================================");
                System.out.println ();
    
                System.out.print("    GetReportCountResponse");
                System.out.println();
                if (response.isSetGetReportCountResult()) {
                    System.out.print("        GetReportCountResult");
                    System.out.println();
                    GetReportCountResult  getReportCountResult = response.getGetReportCountResult();
                    if (getReportCountResult.isSetCount()) {
                        System.out.print("            Count");
                        System.out.println();
                        System.out.print("                " + getReportCountResult.getCount());
                        System.out.println();
                    }
                } 
                if (response.isSetResponseMetadata()) {
                    System.out.print("        ResponseMetadata");
                    System.out.println();
                    ResponseMetadata  responseMetadata = response.getResponseMetadata();
                    if (responseMetadata.isSetRequestId()) {
                        System.out.print("            RequestId");
                        System.out.println();
                        System.out.print("                " + responseMetadata.getRequestId());
                        System.out.println();
                    }
                } 
                System.out.println();
                System.out.println(response.getResponseHeaderMetadata());
                System.out.println();
    
    
            } catch (MarketplaceWebServiceException ex) {
    
                System.out.println("Caught Exception: " + ex.getMessage());
                System.out.println("Response Status Code: " + ex.getStatusCode());
                System.out.println("Error Code: " + ex.getErrorCode());
                System.out.println("Error Type: " + ex.getErrorType());
                System.out.println("Request ID: " + ex.getRequestId());
                System.out.print("XML: " + ex.getXML());
                System.out.println("ResponseHeaderMetadata: " + ex.getResponseHeaderMetadata());
            }
        }
    
    }

      跑完控制台输出成功日志:

    GetReportCount Action Response
    =============================================================================
    
        GetReportCountResponse
            GetReportCountResult
                Count
                    1593
            ResponseMetadata
                RequestId
                    ae847abb-6335-4ec3-904c-b3fdbd999979
    
    requestId : ae847abb-6335-4ec3-904c-b3fdbd999979
    responseContext : bu7253H8xUoTt/yMP7gsP5osYa5dLIQ0Av+i7ENQwKBd14/ZhdEIw6yQW+2kan0HwujlUmeuaR8=
    timestamp : 2018-07-16T07:57:35.453Z
  • 相关阅读:
    随机数生成程序代码( 伪随机<stdlib.h> )
    C++的学习 (此博客将一直补充更新下去,C++语法方面的内容不开新随笔了, *【语法学习】)
    sdut oj 1510 Contest02-4 Spiral
    POJ 2017 Speed Limit (直叙式的简单模拟 编程题目 动态属性很少,难度小)
    JavaWeb-入门第一课-1.静态web动态web 2.web服务器 3.下载和安装Tomcat-web服务器
    java小知识,驼峰规则
    亚马逊 协同过滤算法 Collaborative filtering
    第一个JSP程序
    物理学步入禅境:缘起性空
    人既然知道努力就可以进步,为什么还是会不努力?
  • 原文地址:https://www.cnblogs.com/wuxun1997/p/9318231.html
Copyright © 2011-2022 走看看