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
  • 相关阅读:
    LeetCode "Palindrome Partition II"
    LeetCode "Longest Substring Without Repeating Characters"
    LeetCode "Wildcard Matching"
    LeetCode "Best Time to Buy and Sell Stock II"
    LeetCodeEPI "Best Time to Buy and Sell Stock"
    LeetCode "Substring with Concatenation of All Words"
    LeetCode "Word Break II"
    LeetCode "Word Break"
    Some thoughts..
    LeetCode "Longest Valid Parentheses"
  • 原文地址:https://www.cnblogs.com/wuxun1997/p/9318231.html
Copyright © 2011-2022 走看看