consoletvs / payzap
Simple paypal payments for laravel
1.1.0
2018-03-07 14:37 UTC
Requires
- illuminate/support: ^5.4
- paypal/rest-api-sdk-php: ^1.11
This package is auto-updated.
Last update: 2024-10-29 02:32:41 UTC
README
Payzap - Simple paypal payments for laravel
Description
Payzap is the new simple way of integrating paypal in your laravel application with a few lines of code. It uses simple and elegant syntax to create the payment.
Installation
composer require consoletvs/payzap
Register the service provider to the current project (Not needed if using laravel 5.5+):
ConsoleTVs\Payzap\PayzapServiceProvider::class
Publish the configuration:
php artisan vendor:publish
Example payment controller, view and routes
- PaymentController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use ConsoleTVs\Payzap\Classes\Payment; class PaymentController extends Controller { /** * Returns the payment view and setups the javascript logic. * * @author Erik Campobadal <soc@erik.cat> * @copyright 2017 erik.cat * @return \Illuminate\Http\Response */ public function index() { $payment = Payment::prepare() ->createUrl(route('api::payments.create')) ->executeUrl(route('api::payments.execute')) ->redirectUrl(route('payment.finished')) ->buttonId('paypal-button'); return view('payment', compact('payment')); } /** * Creates the paypal payment using payzap. * * @author Erik Campobadal <soc@erik.cat> * @copyright 2017 erik.cat * @return \ConsoleTVs\Payzap\Classes\Payment */ public function create() { return Payment::create() ->addItem([ 'name' => 'Product 1', 'currency' => 'EUR', 'quantity' => 1, 'price' => 0.5, ])->addItem([ 'name' => 'Product 2', 'currency' => 'EUR', 'quantity' => 2, 'price' => 0.25, ])->description("My first payment") ->generate(); } /** * Executes the paypal payment and returns the result boolean in an array. * * @author Erik Campobadal <soc@erik.cat> * @copyright 2017 erik.cat * @param Request $request * @return array */ public function execute(Request $request) { return ['result' => Payment::execute($request->payment_id, $request->payer_id) !== false]; } }
- payment.blade.php:
<!DOCTYPE html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> </head> <body> <div id="paypal-button"></div> {!! $payment->scripts() !!} </body>
- Routes (web.php)
Route::get('/payment', 'PaymentController@index')->name('payment'); Route::get('/payment/finished', function () { return "Payment Executed."; })->name('payment.finished');