【发布时间】:2014-11-21 10:37:52
【问题描述】:
我试图通过 eBay API 找到自己的方式,但我发现它很混乱。就像 API 用大量数据响应我的请求一样,除了其中一半为空或未设置。我在返回的 TransactionType 对象上遇到了这个问题。
我实际上想要找到两件事,PayPal 交易 ID 和订单是否实际付款。让我们跳过第二个(如果需要,它可能会得到它自己的问题)。
所以我的问题是,是否可以使用 eBay API 从 eBay 交易中实际提取 PayPal 交易 ID? 如果可以,我该怎么做?
根据我的发现,这个 id 应该出现在 TransactionType.ExternalTransaction,但是对于我的测试拍卖(当我使用另一个沙盒帐户“购买”它并使用 PayPal 沙盒成功“支付”它时结束),什么都没有在那里。
我见过this post,但即使在DetailLevelList 中添加DetailLevelCodeType.ReturnAll 后,订单中的交易也没有ExternalTransaction。
var apiCall = new GetOrdersCall(apiContext);
apiCall.NumberOfDays = 1;
apiCall.DetailLevelList = new DetailLevelCodeTypeCollection()
{
DetailLevelCodeType.ReturnAll
};
apiCall.Execute();
注意,当我访问订单中的交易时,我使用SomeOrder.TransactionArray.Cast<eBay.Service.Core.Soap.TransactionType>()
看来,如果我使用GetItemTransactionsCall 明确请求交易(似乎需要将DetailLevel 设置为ReturnAll),我实际上可以获得有关PayPal 交易的信息。
var apiCall = new GetItemTransactionsCall(apiContext);
apiCall.DetailLevelList = new DetailLevelCodeTypeCollection()
{
DetailLevelCodeType.ReturnAll
};
apiCall.ItemID = "someItemId";
apiCall.Execute();
var trans = apiCall.TransactionList.Cast<TransactionType>().ToList();
var extTrans = trans.First().ExternalTransaction.Cast<ExternalTransactionType>().ToList();
var payPalId = extTrans.First().ExternalTransactionID;
我只是有点失望,因为我无法提取有关使用一次 API 调用下达的订单的所有信息(可能仍然有一种方法可以使用最少的批量调用来获取我需要的所有信息) .
【问题讨论】: