2015-09-23 3 views
1

Я пытаюсь создать возмещение за транзакцию, которая произошла в течение повторяющегося соглашения о выставлении счетов с использованием AJAX, но я продолжаю получать ошибки, такие как ошибки 404, 501 и 500. Все мои другие обращения API к песочнице Paypal возвращаются успешно. Я получаю идентификатор транзакции из запроса получения, который возвращает массив транзакций (/v1/payments/billing-agreements/<Agreement-Id>/transactions?start_date=yyyy-mm-dd&end_date=yyyy-mm-dd). Кто-нибудь из вас знает, если это проблема с моим вызовом API или если Paypal не разрешает возвраты при повторном выставлении счетов? Также, если есть способ просто вернуть деньги клиенту, используя API RESTful от Paypal, который также будет обратной связью.Возврат транзакции с оплатой счетов Paypal

Заранее благодарен!

+0

У нас точно такая же проблема. Кажется, что операции с обычной продажей могут быть возвращены, но мы получаем ошибку, пытающуюся вернуть транзакцию соглашения о подписке. – delatbabel

ответ

0

Вы должны использовать идентификатор транзакции, а не идентификатор соглашения. Это связано с тем, что Call API возврата для транзакции - это не полное соглашение о выставлении счетов. Пока сделка была в течение последних 60 дней, вы сможете ее вернуть.

Ниже код непосредственно из PayPal Developer Rest API Refund Section:

curl -v https://api.sandbox.paypal.com/v1/payments/sale/<Transaction-Id>/refund \ 
-H 'Content-Type:application/json' \ 
-H 'Authorization: Bearer <Access-Token>' \ 
-d '{ 
    "amount": 
    { 
    "total": "2.34", 
    "currency": "USD" 
    } 
}' 
+0

Я использую идентификатор транзакции, который я получаю при поиске транзакций соглашения. Я получаю идентификатор прямо из ключа транзакции. Ответ, который я получаю, - это 404 с именем ошибки: «INVALID_RESOURCE_ID». Спасибо за помощь, кстати! –

+0

Можете ли вы предоставить код запроса? Я хочу убедиться, что вы используете правильную конечную точку. Обычно, когда вы получаете эту ошибку, в запросе есть что-то отсутствует или неверный идентификатор транзакции или идентификатор оплаты. –

+0

Вот запрос: 'POST/v1/платежи/продажа/0G416629682867447/возврат HTTP/1.1 Ведущий: api.sandbox.paypal.com Авторизация: Bearer Content-Type: применение/JSON Cache -Управление: нет кэша { "сумма": { "всего": "2,34", "валюта": "USD" } } ' Он работает, когда я использую идентификатор транзакции из одноразовая сделка однако. –

0

Когда вы делаете вызов поиска операции API, это будет возвращать несколько различных полей с TRANSACTION_ID. У вас будут такие, когда соглашение будет согласовано или изменено. Обычно они будут иметь «I-» в начале. Они не подлежат возврату. Но они также предоставят статус «завершен», предназначенный для фактических платежей. Это те, которые могут быть возвращены.

Если вы возвращаете «I-», вы получите ошибку INVALID RESOURCE ID.

+0

Ты совершенно прав. Я использовал идентификаторы транзакций со статусом. Я попытался использовать идентификаторы транзакций из одноразовых транзакций и тех, кто работает, но в любое время, когда я пытаюсь использовать повторяющийся идентификатор транзакции биллинга, я получаю ответ '' INVALID_RESOURCE_ID '' –

+0

Мне интересно, просто ли это проблема с песочницей. –

+0

В целях тестирования вы можете попробовать использовать API/v1/payments/capture//refund API? Для повторяющихся платежей, например, это не продажа или авторизация ... она перечисляет ее как тип повторяющихся платежей или я не вижу способа возврата. –

Смежные вопросы