我可以使用eBay API获取eBay订单的PayPal交易ID吗?
我试图通过eBay API找到自己的方式,我发现它很混乱。就像API响应我的请求与大量的数据,除了一半是空的或否则没有设置。我遇到了返回的TransactionType
对象的问题。我可以使用eBay API获取eBay订单的PayPal交易ID吗?
我实际上想要查找两件事情,PayPal交易ID以及订单是否实际支付。让我们跳过第二个(如果需要,它可能会得到它自己的问题)。
所以我的问题是,可以使用eBay API实际从eBay交易中提取PayPal交易ID吗?如果是,我该怎么做?
根据我的发现,这个ID应该出现在TransactionType.ExternalTransaction
,但对于我的测试拍卖(当我使用另一个沙箱帐户“购买”它并使用PayPal沙箱成功“支付”时结束),那里没有任何东西。
我见过this post,但即使加上DetailLevelCodeType.ReturnAll
到DetailLevelList
后,没有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放在有关订单的所有信息(有可能是仍然有办法让我需要使用少量的所有信息批量呼叫)。
GetItemTransactions会给你你需要的。我过去曾多次使用它来获取PayPal交易ID,没有任何问题。具体来说,Transaction.ExternalTransaction.ExternalTransactionID。
非常感谢。 'GetItemTransactions'请求和'DetailLevel''ReturnAll'给了我想要的东西。很奇怪,我无法将这些信息作为“GetOrdersCall”的一部分。这个页面https://ebay.custhelp.com/app/answers/detail/a_id/1550/~/linking-ebay-and-paypal-transactions提到外部交易由于某种原因失踪,所以也许它与此有关。 – jahu 2014-09-26 14:05:23