首页 > 代码库 > Amazon MWS 上传数据 (一) 设置服务

Amazon MWS 上传数据 (一) 设置服务

Amazon 上传数据的流程为: 

  1. 通过 SubmitFeed 操作、加密标头和所有必需的元数据(包括 FeedType 的值在内),来提交 XML 或文本型数据文件。正如亚马逊 MWS的所有提交内容一样,您还必须包括验证信息。SubmitFeed 操作可返回 FeedSubmissionId 的值,您可以使用该值,通过 GetFeedSubmissionList 操作,对上传数据状态进行定期检查。
  2. 如果亚马逊 MWS仍在处理请求,则 GetFeedSubmissionList 操作的 FeedProcessingStatusList 参数可返回状态为 _IN_PROGRESS_。如果处理已完成,则所返回状态为 _DONE_
  3. 上传数据处理完毕后,您可以通过 GetFeedSubmissionResult 操作,来接收处理报告,该处理报告会指明上传数据中的哪些记录已成功处理,而哪些记录已生成错误。请注意,您必须创建提交 GetFeedSubmissionResult 操作时亚马逊 MWS用来写入报告的流。将亚马逊 MWS上传数据 API 部分客户端库代码用于 GetFeedSubmissionResult 操作,以创建流。
  4. 对处理报告加以分析,更正文件或传送中的错误,然后通过 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规定的。