• 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 赋值。

  • 相关阅读:
    git学习(一)
    访问注解(annotation)的几种常见方法
    对于元数据的理解
    常用注解介绍
    深入理解Java的接口和抽象类
    POI依据类型设置导出格式
    java泛型
    java 向上转型和向下转型
    cell设置背景颜色为啥不起作用
    Java反射获取对象VO的属性值(通过Getter方法)
  • 原文地址:https://www.cnblogs.com/ChineseMoonGod/p/5159812.html
Copyright © 2020-2023  润新知