Amazon 上傳數據的流程為:
- 通過 SubmitFeed 操作、加密標頭和所有必需的元數據(包括 FeedType 的值在內),來提交 XML 或文本型數據文件。正如亞馬遜 MWS的所有提交內容一樣,您還必須包括驗證信息。SubmitFeed 操作可返回 FeedSubmissionId 的值,您可以使用該值,通過 GetFeedSubmissionList 操作,對上傳數據狀態進行定期檢查。
- 如果亞馬遜 MWS仍在處理請求,則 GetFeedSubmissionList 操作的 FeedProcessingStatusList 參數可返回狀態為 _IN_PROGRESS_。如果處理已完成,則所返回狀態為 _DONE_。
- 上傳數據處理完畢后,您可以通過 GetFeedSubmissionResult 操作,來接收處理報告,該處理報告會指明上傳數據中的哪些記錄已成功處理,而哪些記錄已生成錯誤。請注意,您必須創建提交 GetFeedSubmissionResult 操作時亞馬遜 MWS用來寫入報告的流。將亞馬遜 MWS上傳數據 API 部分客戶端庫代碼用於 GetFeedSubmissionResult 操作,以創建流。
- 對處理報告加以分析,更正文件或傳送中的錯誤,然后通過 SubmitFeed 操作重新提交上傳數據。不斷重復此過程,直到處理報告中不再有錯誤。當處理報告無任何錯誤時,傳送即完成。
上面這段話債至Amazon 官方介紹,詳見 http://docs.developer.amazonservices.com/zh_CN/feeds/index.html
主要就是三個步驟,首先上傳數據,其次查詢上傳操作的工作狀態,最后處理上傳操作返回的報告。
上面三個步驟需要的工作流程均為:設置服務--->構造請求--->提交請求,其中服務的設置是一樣的,請求是各有不同。
現在首先說一下設置服務,在開始寫程序之前,我們需要得到我們將要引用的類庫MarketplaceWebService,這個類庫可以在官方的Demo https://developer.amazonservices.com.cn/doc/bde/feeds/v20090901/cSharp.html 中得到。將這個類庫引用到我們的程序中
設置服務的代碼示例如下:
1 #region 設置服務信息 2 /// <summary> 3 /// 設置服務 4 /// </summary> 5 /// <returns>返回服務對象</returns> 6 private MarketplaceWebServiceClient GetService() 7 { 8 String accessKeyId = "***********"; 9 String secretAccessKey = "************"; 10 11 const string applicationName = "AllureCSharpScratchpad"; 12 const string applicationVersion = "1.0"; 13 14 MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig(); 15 config.ServiceURL = "https://mws.amazonservices.com"; 16 17 MarketplaceWebServiceClient service = new MarketplaceWebServiceClient(accessKeyId, secretAccessKey, applicationName, applicationVersion, config); 18 19 return service; 20 } 21 #endregion
其中accessKeyId和secretAccessKey由商家提供,這樣 Amazon 的服務就設置好了。至於為什么要這么寫呢,這是Amazon規定的。