我试图通过eBay API找到自己的方式,我发现它很混乱。就像API用大量数据响应我的请求,除了一半是空的或者没有设置。我对返回的TransactionType
个对象有这个问题。
我实际上想要找到两件事,即PayPal交易ID以及订单是否实际付清。让我们跳过第二个问题(如果需要的话,它可能会得到它自己的问题)。
所以我的问题是,可以使用eBay API从eBay交易中实际提取PayPal交易ID吗?如果是,我该怎么做?
根据我的调查结果,这个ID应该出现在TransactionType.ExternalTransaction
中,但是对于我的测试竞价(当我"购买"它使用另一个沙盒帐户并成功"付费&#时结束) 34;因为它使用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调用所下订单的所有信息(可能还有一种方法可以使用最少的金额获取我需要的所有信息批量电话)。
答案 0 :(得分:3)
GetItemTransactions会为您提供所需的信息。我曾经多次使用它来获取交易的PayPal交易ID而没有任何问题。具体而言,Transaction.ExternalTransaction.ExternalTransactionID。