Simple paypal payments for laravel
Switch branches/tags
Nothing to show
Clone or download
ConsoleTVs Merge pull request #2 from tobiasdierich/master
Return the payment after executing it
Latest commit e317838 Mar 7, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Return the payment after executing it Mar 7, 2018
LICENSE Initial commit Jul 11, 2017
README.md Fix example in readme Mar 7, 2018
composer.json Use laravel package auto-discovery Mar 3, 2018

README.md

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