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

Amzon MWS API开发之订单接口的更多相关文章

  1. Amzon MWS API开发之 上传数据

    亚马逊上传数据,现有能操作的功能有很多:库存数量.跟踪号.价格.商品....... 我们可以设置FeedType值,根据需要,再上传对应的xml文件即可. 下面可以看看FeedType类型 这次我们拿 ...

  2. Amzon MWS API开发之 请求报告

    时间一晃而过又过了两周,博客园更新的速度确实有点慢,今天我要分享的是对请求报告的调用. 在文档中,相信大家也看了下面这个流程图吧? 相关流程,在文档中也有细说,我就不一一去Copy了:http://d ...

  3. 淘宝API开发系列---阿里.聚石塔.开放平台的使用

    好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此 ...

  4. ebay的api开发技术说明,有点乱

    使用eBay API的基本步骤引入 开始eBay API,例如,以下基本步骤需要: 1.    注册开发者账号: https://developer.ebay.com/join/Default.asp ...

  5. mpvue 开发小程序接口数据统一管理

    mpvue项目里做API与数据分离统一管理 小程序里请求数据接口使用wx:request,因为考虑项目比较大,最好把wx:request封装起来,统一使用管理 utils.js 配置开发环境和线上环境 ...

  6. day114:MoFang:基于支付宝沙箱测试环境完成创建充值订单接口&服务端处理支付结果的同步通知和异步通知

    目录 1.基于支付宝提供的沙箱测试环境开发支付接口 1.后端提供创建充值订单接口 2.前端调用AlipayPlus发起支付 3.注意:自定义APPLoader完成接下来的开发 4.下载支付宝沙箱钱包A ...

  7. 天气预报API开发

    天气预报API开发 一.        寻觅篇 最近想要跟着视频练习一下利用API开发一个天气预报系统,就在网上找了一下可以用的API,结果好多都已经失效了... 1.       百度车联网天气预报 ...

  8. API 开发实践

    整个2015年,如果要给自己打上一个标签的话,那应该就是 API. 在各个不同的系统中定制各种 API 框架. 在做商城对接各种电商 ERP 的 API 开发中,我采用的是兼容SHOPEX 的 API ...

  9. Rest API 开发 学习笔记(转)

    Rest API 开发 学习笔记 概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着 ...

随机推荐

  1. UIView-4-EventForViews(在view上加入button时候的事件处理)

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  2. System.Windows.Forms.Timer反编译学习

    using System; using System.ComponentModel; using System.Globalization; using System.Runtime; using S ...

  3. 【墙裂推荐】大学生如何学习WEB开发

    每天网络上有上万条Web招聘职位,招聘要求很简单: 会JavaScript,会CSS,能开发网页,能设计网页. 但我们真正面试时才发现:都是些很小很小的知识点! 我们没有实践过,没有碰到过,头脑一片茫 ...

  4. oracle手动启动服务

    开始-控制面板->管理工具->服务->右键属性 oracle服务设定都是手动启动的,开机时只需要启动3个服务就好了: OracleOraDb11g_home1ClrAgent Ora ...

  5. 打开shpfile,mdb,sde工作空间

    打开shapefile工作空间: ESRI.ArcGIS.Geodatabase.IWorkspaceFactory wsf = new ESRI.ArcGIS.DataSourcesFile.Sha ...

  6. linux下golang的配置

    linux下golang的配置 之前开发golang一直在windows下,今天在linux下试了一下 ,遇到一些梗,比如go 找不到 sync包.花了一小时全部解决,把过程记录一下. 安装 go 我 ...

  7. Android 布局 中实现适应屏幕大小及组件滚动

    要实现如图的布局: 这是在eclipse可视化窗口中的截图,但实际运行在Android设备上可能出现的问题有: (1):当编辑图1中的最后一个EditText时,输入法的编辑界面会把底部的Button ...

  8. ajax返回的json内容进行排序

    关键方法:sort()用于对数组的元素进行排序. return a.num-b.num是升序: return b.num-a.num;是降序 writeln在输出后面加\n,在文档里是换行,在html ...

  9. 简单的异步任务工具——rq 的使用教程

    rq是一个简单的,轻量级的异步任务工具. 如果在网站中用户发起一个用时很久(大于2分钟)的请求,如果用同步的方式,服务器就会返回超时. 这时候就需要用异步请求,用户发起请求后,服务端把作业扔给另一个进 ...

  10. javascript insertBefore 和 appendChild

    js的appendChild()方法 :在一个元素内部追加一个子节点. js的insertBefore()方法:在一个元素内部指定的子节点之前插入子节点. 很明显,appendChild()方法只需要 ...