[英]Can I get PayPal transaction id for an eBay order using eBay API?
我试图通过eBay API找到自己的方式,我发现它很混乱。 就像API用大量数据响应我的请求,除了一半是空的或者没有设置。 我遇到了返回的TransactionType
对象的这个问题。
我实际上想要找到两件事,即PayPal交易ID以及订单是否实际支付。 让我们跳过第二个(如果需要,它可能会得到它自己的问题)。
所以我的问题是, PayPal交易ID是否可以使用eBay API实际从eBay交易中提取? 如果是的话,我该怎么做?
根据我的发现,这个id应该出现在TransactionType.ExternalTransaction
,但是对于我的测试拍卖(当我用另一个沙盒帐户“购买”它并使用PayPal沙箱成功“支付”它时结束),那里什么都没有。
我已经看过这篇文章 ,但即使将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 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.