ccc

Laravel: Módulo de Paypal

Instalar desde el terminal:
composer require psr/log 1.0.0

composer require paypal/rest-api-sdk-php 1.7.*

composer require sger/laravel-paypal 0.1.0

En config.app:

Sger\Paypal\PaypalServiceProvider::class
...
'Paypal' => Sger\Paypal\Facades\Paypal::class

El siguiente comando creará dos tipos de conexiones: una sandbox y otra real:

php artisan vendor:publish

En routes/web.php:
Route::resource('payments', 'PaymentsController');

En PaymentsController.php:
$payer = new Payer;
$payer->setPaymentMethod("paypal");

$item1 = new Item();
$item1->setName('test')
    ->setCurrency('EUR')
    ->setQuantity(1)
    ->setPrice(10);

$itemList = new ItemList();
$itemList->setItems(array($item1));

$amount = new Amount();
$amount->setCurrency('EUR')
    ->setTotal(10);

$transaction = new Transaction();
$transaction->setAmount($amount)
    ->setItemList($itemList)
    ->setDescription("Payment description")
    ->setInvoiceNumber(uniqid());

$baseUrl = \URL::to('/');

$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl("$baseUrl/execute-payment?success=true")
->setCancelUrl("$baseUrl/execute-payment?success=false");

$payment = new Payment();

$payment->setIntent("sale")
    ->setPayer($payer)
    ->setRedirectUrls($redirectUrls)
    ->setTransactions(array($transaction));

try {
    $payment->create(\Paypal::connection('sandbox'));
} catch (\PPConnectionException $ex) {
    return  "Exception: " . $ex->getMessage() . PHP_EOL;
    exit(1);
}

$approvalUrl = $payment->getApprovalLink();
// redirect user to the $approvalUrl

No hay comentarios:

Publicar un comentario