2014-09-26 82 views
1

我試圖通過eBay API找到自己的方式,我發現它很混亂。就像API響應我的請求與大量的數據,除了一半是空的或否則沒有設置。我遇到了返回的TransactionType對象的問題。我可以使用eBay API獲取eBay訂單的PayPal交易ID嗎?

我實際上想要查找兩件事情,PayPal交易ID以及訂單是否實際支付。讓我們跳過第二個(如果需要,它可能會得到它自己的問題)。

所以我的問題是,可以使用eBay API實際從eBay交易中提取PayPal交易ID嗎?如果是,我該怎麼做?

根據我的發現,這個ID應該出現在TransactionType.ExternalTransaction,但對於我的測試拍賣(當我使用另一個沙箱帳戶「購買」它並使用PayPal沙箱成功「支付」時結束),那裏沒有任何東西。

我見過this post,但即使加上DetailLevelCodeType.ReturnAllDetailLevelList後,沒有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交易(設置DetailLevelReturnAll似乎是必要的),我可以實際上獲得有關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放在有關訂單的所有信息(有可能是仍然有辦法讓我需要使用少量的所有信息批量呼叫)。

回答

3

GetItemTransactions會給你你需要的。我過去曾多次使用它來獲取PayPal交易ID,沒有任何問題。具體來說,Transaction.ExternalTransaction.ExternalTransactionID

+1

非常感謝。 '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