Я пытаюсь найти свой путь через API eBay, и я нахожу его довольно запутанным. Подобно API отвечает на мои запросы с большим количеством данных, кроме половины из них является нулевым или иным образом не установлен. У меня возникла проблема с возвращаемыми объектами TransactionType
.Могу ли я получить идентификатор транзакции PayPal для заказа eBay с использованием eBay API?
Есть две вещи, которые я на самом деле хочу найти, идентификатор транзакции PayPal и если на самом деле был оплачен заказ. Давайте пропустим второй (он, вероятно, получит собственный вопрос, если потребуется).
Итак, мой вопрос: Может ли транзакционный идентификатор PayPal быть фактически извлечен из транзакции eBay с использованием eBay API? Если да, как мне это сделать?
На основании моих выводов этот идентификатор должен появиться в 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' с' DetailLevel' 'ReturnAll' дал мне то, что я хотел. Странно, что я не мог получить эту информацию в составе «GetOrdersCall». На этой странице https://ebay.custhelp.com/app/answers/detail/a_id/1550/~/linking-ebay-and-paypal-transactions упоминаются внешние транзакции, пропавшие по какой-либо причине, поэтому, возможно, это связано с этим. – jahu