Amzon MWS API開發之訂單接口


       Amazon訂單接口是Amazon MWS 開發接口中的一大塊,我們可以通過接口調用來獲得訂單數據。

   在調用接口之前,首先我們要獲得相關店鋪商家的店鋪密鑰等信息。如下:

      在此我將所有信息定義在一個類中,采用序列化的方式,方便存取值。

  

 1     /// <summary>
 2     /// 賬戶信息
 3     /// </summary>
 4     [Serializable]
 5     public class AccountConfig : BaseConfig<AccountConfig>
 6     {
 7         /// <summary>
 8         /// 應用程序名稱
 9         /// </summary>
10         public string AppName { get; set; }
11 
12         /// <summary>
13         /// 應用程序版本
14         /// </summary>
15         public string AppVersion { get; set; }
16 
17         /// <summary>
18         /// 賬戶KeyId
19         /// </summary>
20         public string AccessKeyId { get; set; }
21 
22         /// <summary>
23         /// 密鑰Id
24         /// </summary>
25         public string SecretAccessKey { get; set; }
26 
27         /// <summary>
28         /// 商城Id
29         /// </summary>
30         public string MerchantId { get; set; }
31 
32         /// <summary>
33         /// 商城唯一標識Id
34         /// </summary>
35         public string MarketplaceId { get; set; }
36 
37         /// <summary>
38         /// 服務端URL
39         /// </summary>
40         public string ServiceUrl { get; set; }
41     }
View Code

 

  然后我們回到文檔中,我們會發現,請求參數中,有兩個參數是必填的:CreatedAfter、MarketplaceId。調用接口的方法很簡單,無非是構造完整的對象,其實主要還是保持必填參數的完整性,這次我們拿ListOrder 接口來舉例:

  

 1    /// <summary>
 2         /// 獲得賬戶信息
 3         /// </summary>
 4         protected AccountConfig Account
 5         {
 6             get
 7             {
 8                 return AccountConfig.Instance;
 9             }
10         }
11 
12         private MarketplaceWebServiceOrdersConfig GetConfig()
13         {
14             var config = new MarketplaceWebServiceOrdersConfig();
15             config.ServiceURL = Account.ServiceUrl;
16             return config;
17         }
18 
19         private MarketplaceWebServiceOrdersClient GetClient()
20         {
21             var config = this.GetConfig();
22             var client = new MarketplaceWebServiceOrdersClient(Account.AppName,
23               Account.AppVersion, Account.AccessKeyId, Account.SecretAccessKey, config);
24             return client;
25         }
26 
27         #region 獲得訂單列表(OrderList)
28 
29 
30         private List<Order> GetNextOrderList(ref string nextToken)
31         {
32             var client = this.GetClient();
33             var request = new ListOrdersByNextTokenRequest();
34             request.SellerId = Account.MerchantId;
35             request.NextToken = nextToken;
36 
37             var response = client.ListOrdersByNextToken(request);
38             var result = response.ListOrdersByNextTokenResult;
39             nextToken = result.NextToken;
40             List<Order> orderList = result.Orders.Order;
41 
42             return orderList;
43         }
44 
45         /// <summary>
46         /// 獲得訂單列表(指定Request模式)
47         /// </summary>
48         /// <param name="request">ListOrdersRequest</param>
49         /// <returns></returns>
50         public List<Order> GetOrderList(DateTime createdAfter, DateTime createdBefore)
51         {
52             var request = new ListOrdersRequest();
53             request.CreatedAfter = AmazonHelper.ConvertToISO8601(createdAfter);
54             request.CreatedBefore = AmazonHelper.ConvertToISO8601(createdBefore);
55             request.MarketplaceId = new MarketplaceIdList();
56             request.MarketplaceId.Id = new List<string> { Account.MarketplaceId };
57             request.SellerId = Account.MerchantId;
58 
59             var client = GetClient();
60             var response = client.ListOrders(request);
61             var result = response.ListOrdersResult;
62             var orderList = result.Orders.Order;
63             string nextToken = result.NextToken;
64 
65             while (!string.IsNullOrEmpty(nextToken))
66             {
67                 List<Order> tempList = GetNextOrderList(ref nextToken);
68                 orderList = orderList.Concat(tempList).ToList();
69             }
70 
71             return orderList;
72         }
73         #endregion
View Code

      

    切記,在調用中不要忽視了在請求參數中給 SellerId 賦值。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM