Refund users using paypal rest API

2019-02-16 05:24发布

I'm developping a web application on which I allow the users to buy a ticket for an event. I used the Paypal Rest API for sending money and purchasing the tickets.Everything is working just fine. Now I'm trying to use the refund method to refund all users related to an event when this event will be cancelled. Looking in the REST API documentation I found that there is a way to refund but when I search in the REST API package for laravel I haven't found how to refund or use the refund method. Does rest-api-sdk-php doesn't support the refund method? And if yes how to use it in laravel project? PS: the payment are done without a credit card.I use just the paypal acount with sandbox. --edit-- I get this result when trying the refund code of the rest 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"}

2条回答
Anthone
2楼-- · 2019-02-16 05:43

I am not quite sure about laravel project, but the PHP SDK does have ability to refund. Simply create a Refund object and pass it to refund method in Sale object. Sample code from 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);
}
查看更多
ら.Afraid
3楼-- · 2019-02-16 05:54

The error you are getting (The request was refused.)

Without seeing your code, any of the following could be the reason:

The partial refund amount must be less than or equal to the original transaction amount

The partial refund amount must be less than or equal to the remaining amount

The partial refund amount is not valid

The partial refund must be the same currency as the original transaction

Because a complaint case exists on this transaction, only a refund of the full or full remaining amount of the transaction can be issued

You are over the time limit to perform a refund on this transaction

Cannot do a full refund after a partial refund

This transaction has already been fully refunded

You cannot refund this type of transaction

You cannot do a partial refund on this transaction

The merchant account has limitations or restrictions

查看更多
登录 后发表回答