Simple paypal payments for laravel
87
23
3
Package Data
Maintainer Username: ErikCampobadal
Maintainer Contact: soc@erik.cat (Erik Campobadal)
Package Create Date: 2017-07-11
Package Last Update: 2018-03-07
Language: PHP
License: MIT
Last Refreshed: 2024-05-18 03:15:48
Package Statistics
Total Downloads: 87
Monthly Downloads: 9
Daily Downloads: 6
Total Stars: 23
Total Watchers: 3
Total Forks: 4
Total Open Issues: 0

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');