【问题标题】:GetOrder not returning buyer info on Amazon Orders APIGetOrder 未在 Amazon Orders API 上返回买家信息
【发布时间】:2015-10-26 16:00:32
【问题描述】:

我不确定我是否在这里遗漏了什么,所以让我带你了解一下我的逻辑流程:

  1. 调用 GetOrderList,返回给定时间范围内的订单,状态为未发货,由枚举“OrderStatusEnum.Unshipped”表示。

  2. 调用 GetOrders,传递来自上述操作的 orderID 列表。

根据文档:

http://docs.developer.amazonservices.com/en_US/orders/2013-09-01/Orders_Datatypes.html

我应该取回买家信息 - 更具体地说,是亚马逊为客户生成的电子邮件地址。但是 Order 数据类型(在两个调用之间共享)没有此数据的属性。见下文:

我是否遗漏了什么,或者这是 C# 客户端库的问题?

这是我编写的调用 GetOrders 的方法:

public List<Order> GetOrders( List<Order> orderList )
    {
        var orders = new List<Order>();

        if ( orderList.Count <= 50 )
        {
            var request = new GetOrderRequest
            {
                SellerId = this.Context.MerchantID,
                AmazonOrderId = new OrderIdList { Id = orderList.Select( ol => ol.AmazonOrderId ).ToList() }
            };

            var response = GetService().GetOrder( request );
            orders.AddRange( response.GetOrderResult.Orders.Order );
        }
        else
        {
            var orderIds = orderList.Select( ol => ol.AmazonOrderId ).ToList();
            var pages = orderIds.Count/50;

            if ( orderIds.Count%50 > 0 )
                pages++;

            for ( var i = 0; i < pages; i++ )
            {
                var request = new GetOrderRequest
                {
                    SellerId = this.Context.MerchantID,
                    AmazonOrderId = new OrderIdList { Id = orderIds.Skip( i * 50 ).Take( 50 ).ToList() }
                };

                var response = GetService().GetOrder( request );
                orders.AddRange( response.GetOrderResult.Orders.Order );
            }

        }

        return orders;

    }

调用GetService():

public MarketplaceWebServiceOrders.MarketplaceWebServiceOrders GetService()
    {
        var config = new MarketplaceWebServiceOrdersConfig
        {
            ServiceURL = this.ServiceUrl + ConfigurationManager.AppSettings["Environment.OrdersEndpoint"]
        };

        var service = new MarketplaceWebServiceOrdersClient(
            this.ApplicationName, 
            this.ApplicationVersion, 
            this.Context.AccessKeyID, 
            this.Context.SecretAccessKey, 
            config
        );

        return service;
    }

【问题讨论】:

  • 我已将其缩小到客户端库的潜在问题,因为通过暂存器发出请求时存在我正在寻找的数据。

标签: c# amazon-web-services amazon-mws


【解决方案1】:

我设法通过从提供的源文件构建来解决这个问题。看起来提供的 dll 不是正确的版本,或者是从不同的来源构建的。

在构建我自己的 dll 并让我的代码使用它之后,我得到了我期望的数据。

【讨论】:

  • 你好,有没有可以获取订单信息的api,比如tracking number,carrier info等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 1970-01-01
  • 2017-03-17
  • 2015-02-21
  • 2014-06-05
相关资源
最近更新 更多