Возврат средств пользователям с помощью API PayPal Rest

Я разрабатываю веб-приложение, в котором я разрешаю пользователям покупать билеты на мероприятие. Я использовал Paypal Rest API для отправки денег и покупки билетов. Все работает нормально. Теперь я пытаюсь использовать метод возврата для возврата средств всем пользователям, связанным с событием, когда это событие будет отменено. Просматривая документацию по REST API, я обнаружил, что есть способ вернуть деньги, но когда я ищу в пакете REST API laravel, я не нашел, как вернуть деньги или использовать метод возврата. rest-api-sdk-php не поддерживает метод возврата? И если да, то как использовать его в проекте laravel? PS: оплата осуществляется без кредитной карты, я использую только счет PayPal с песочницей. --edit - я получаю этот результат, когда пробую код возврата остального api:

{"name":"TRANSACTION_REFUSED","message":"The request was refused.{0}","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#TRANSACTION_REFUSED","debug_id":"97f33dd89f4c8"}

person Dev DOS    schedule 03.12.2014    source источник
comment
Вот статья о возмещении через php api. kvcodes.com/2016/05/paypal-refund-transaction   -  person Kvvaradha    schedule 11.06.2016


Ответы (2)


Вы получаете сообщение об ошибке (запрос был отклонен).

Если вы не видите свой код, причиной может быть любое из следующего:

Сумма частичного возмещения должна быть меньше или равна исходной сумме транзакции.

Сумма частичного возмещения должна быть меньше или равна оставшейся сумме.

Сумма частичного возмещения недействительна

Частичное возмещение должно быть в той же валюте, что и исходная транзакция.

Поскольку по этой транзакции существует жалоба, может быть осуществлен возврат только полной или полной оставшейся суммы транзакции.

Вы превысили лимит времени для возврата средств по этой транзакции

Невозможно выполнить полный возврат после частичного возврата

Эта транзакция уже полностью возвращена

Вы не можете вернуть деньги за этот тип транзакции

Вы не можете сделать частичное возмещение по этой транзакции

У торгового счета есть ограничения или ограничения

person hello_harry    schedule 20.12.2014

Я не совсем уверен в проекте laravel, но у PHP SDK есть возможность возмещения. Просто создайте объект Refund и передайте его методу возврата в объекте Sale. Пример кода из https://github.com/paypal/PayPal-PHP-SDK/blob/master/sample/sale/RefundSale.php:

// ### Refund object
$refund = new Refund();
$refund->setAmount($amt);
// ###Sale
// A sale transaction.
// Create a Sale object with the
// given sale transaction id.
$sale = new Sale();
$sale->setId($saleId);
try {
    // Create a new apiContext object so we send a new
    // PayPal-Request-Id (idempotency) header for this resource
    $apiContext = getApiContext($clientId, $clientSecret);
    // Refund the sale
    // (See bootstrap.php for more on `ApiContext`)
    $refundedSale = $sale->refund($refund, $apiContext);
} catch (Exception $ex) {
    ResultPrinter::printError("Refund Sale", "Sale", $refundedSale->getId(), $refund, $ex);
    exit(1);
}
person vandershraaf    schedule 03.12.2014
comment
Я получаю Class 'ResultPrinter' not found @vandershraaf - person Dev DOS; 03.12.2014
comment
Удалите эту строку. Эта строка используется только для примера. Вы можете сделать нормальное эхо на нем. - person Jay Patel - PayPal; 03.12.2014
comment
да, я сделал простое эхо, и я отредактировал свой вопрос с результатом эха. - person Dev DOS; 05.12.2014
comment
Я использовал вышеуказанный метод, и он хорошо работает в случае полной оплаты, но не работает при регулярных платежах. Он всегда выдает ошибку INVALID RESOURCE ID, в то время как я использую идентификатор транзакции в качестве идентификатора продажи как при полной оплате, так и при регулярных платежах. Есть идеи, как исправить эту проблему? - person Umair Malik; 11.05.2016