zoukankan      html  css  js  c++  java
  • Amzon MWS API开发之订单接口

         Amazon订单接口是Amazon MWS 开发接口中的一大块,我们可以通过接口调用来获得订单数据。

       在调用接口之前,首先我们要获得相关店铺商家的店铺密钥等信息。如下:

          在此我将所有信息定义在一个类中,采用序列化的方式,方便存取值。

    /// <summary>
        /// 账户信息
        /// </summary>
        [Serializable]
        public class AccountConfig : BaseConfig<AccountConfig>
        {
            /// <summary>
            /// 应用程序名称
            /// </summary>
            public string AppName { get; set; }
    
            /// <summary>
            /// 应用程序版本
            /// </summary>
            public string AppVersion { get; set; }
    
            /// <summary>
            /// 账户KeyId
            /// </summary>
            public string AccessKeyId { get; set; }
    
            /// <summary>
            /// 密钥Id
            /// </summary>
            public string SecretAccessKey { get; set; }
    
            /// <summary>
            /// 商城Id
            /// </summary>
            public string MerchantId { get; set; }
    
            /// <summary>
            /// 商城唯一标识Id
            /// </summary>
            public string MarketplaceId { get; set; }
    
            /// <summary>
            /// 服务端URL
            /// </summary>
            public string ServiceUrl { get; set; }
        }

    然后我们回到文档中,我们会发现,请求参数中,有两个参数是必填的:CreatedAfter、MarketplaceId。调用接口的方法很简单,无非是构造完整的对象,其实主要还是保持必填参数的完整性,这次我们拿ListOrder 接口来举例:

      

    /// <summary>
            /// 获得账户信息
            /// </summary>
            protected AccountConfig Account
            {
                get
                {
                    return AccountConfig.Instance;
                }
            }
    
            private MarketplaceWebServiceOrdersConfig GetConfig()
            {
                var config = new MarketplaceWebServiceOrdersConfig();
                config.ServiceURL = Account.ServiceUrl;
                return config;
            }
    
            private MarketplaceWebServiceOrdersClient GetClient()
            {
                var config = this.GetConfig();
                var client = new MarketplaceWebServiceOrdersClient(Account.AppName,
                  Account.AppVersion, Account.AccessKeyId, Account.SecretAccessKey, config);
                return client;
            }
    
            #region 获得订单列表(OrderList)
    
    
            private List<Order> GetNextOrderList(ref string nextToken)
            {
                var client = this.GetClient();
                var request = new ListOrdersByNextTokenRequest();
                request.SellerId = Account.MerchantId;
                request.NextToken = nextToken;
    
                var response = client.ListOrdersByNextToken(request);
                var result = response.ListOrdersByNextTokenResult;
                nextToken = result.NextToken;
                List<Order> orderList = result.Orders.Order;
    
                return orderList;
            }
    
            /// <summary>
            /// 获得订单列表(指定Request模式)
            /// </summary>
            /// <param name="request">ListOrdersRequest</param>
            /// <returns></returns>
            public List<Order> GetOrderList(DateTime createdAfter, DateTime createdBefore)
            {
                var request = new ListOrdersRequest();
                request.CreatedAfter = AmazonHelper.ConvertToISO8601(createdAfter);
                request.CreatedBefore = AmazonHelper.ConvertToISO8601(createdBefore);
                request.MarketplaceId = new MarketplaceIdList();
                request.MarketplaceId.Id = new List<string> { Account.MarketplaceId };
                request.SellerId = Account.MerchantId;
    
                var client = GetClient();
                var response = client.ListOrders(request);
                var result = response.ListOrdersResult;
                var orderList = result.Orders.Order;
                string nextToken = result.NextToken;
    
                while (!string.IsNullOrEmpty(nextToken))
                {
                    List<Order> tempList = GetNextOrderList(ref nextToken);
                    orderList = orderList.Concat(tempList).ToList();
                }
    
                return orderList;
            }
            #endregion

        切记,在调用中不要忽视了在请求参数中给 SellerId 赋值。

  • 相关阅读:
    VS2008编写MFC程序--使用opencv2.4()
    November 02nd, 2017 Week 44th Thursday
    November 01st, 2017 Week 44th Wednesday
    October 31st, 2017 Week 44th Tuesday
    October 30th, 2017 Week 44th Monday
    October 29th, 2017 Week 44th Sunday
    October 28th, 2017 Week 43rd Saturday
    October 27th, 2017 Week 43rd Friday
    October 26th, 2017 Week 43rd Thursday
    October 25th, 2017 Week 43rd Wednesday
  • 原文地址:https://www.cnblogs.com/ChineseMoonGod/p/5159812.html
Copyright © 2011-2022 走看看