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. NSURLSession的使用(1)

    一.创建一个Session,并且对其进行初始化 包含三种创建方式:   1.+ (NSURLSession *)sharedSession  单例模式 2.+ (NSURLSession *)sess ...

  2. (转)DockPanel的一点点改进

    1.当双击Tab时,原先是直接把当前Tab所表示的这个窗体,从主窗体的框架上分离现来,成为一个浮动的窗体.这不是我想要的,我把它改成了双击关闭.在DockPaneStripBase的WndProc方法 ...

  3. urllib2.urlopen超时

    urllib2.urlopen设置超时,可以解决read方法阻塞的问题 urllib2.urlopen(‘xxx’,timeout=30)

  4. poj 1286 Necklace of Beads

    这是做的第一道群论题,自然要很水又很裸.注意用long long. 就是用到了两个定理 burnside :不等价方案数=每个置换的不动置换方案数的和 / 置换个数 polya: 一个置换的不动置换方 ...

  5. Windows内存原理与内存管理

    WIndows为每个进程分配了4GB的虚拟地址空间,让每个进程都认为自己拥有4GB的内存空间,4GB怎么来的? 32位 CPU可以取地址的空间为2的32次方,就是4GB(正如16位CPU有20根寻址线 ...

  6. Mysql 数据库安装配置

    MySQL的多种安装方法 在当今的互联网企业,Mysql数据服务几乎都是运行在LINUX系统操作系统上,当然你也可以在WINDOWS.UNIX等商业操作系统上运行. 但是一般企业都会采用LNMP.LA ...

  7. 实验一:点亮led

    一.先看原理图:

  8. 使用JPA TOOLS从数据库生成Entity文件

    数据库设计好后,需要生成对应的Entity文件,这是一项不怎么需要动脑筋的工作,最好的方法是交给工具完成,手工操作很容易写错或者遗漏.这里选择的工具就是JPA TOOLS. (1)先选中工程,查看右键 ...

  9. 谷歌浏览器支持小于12px的字体

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  10. 如何使用C#操作快捷方式(获取快捷方式属性、创建快捷方式)

    近来项目中有需要用到一个技术:使用C#操控快捷方式,包含创建和读取等.现整理一下实现方式,分享给大家. 第一步  创建一个项目 无需废话,跳过. 第二步  引用COM组件 右键“引用”,“添加引用”, ...