Laravel 6/7 PayPal Integration Example

Spread the love

Hello Buddies,

In this tutorial, I want to walk you step by step through the example of Laravel 6 PayPal integration and Laravel 7 PayPal integration. We can easily integrate PayPal Payment Gateway in Laravel 6/7. I wrote Laravel 6/7 Paypal Integration so that your user can easily pay using Paypal account and credit card information.

We use the Integral Paypal API with the Srmklive Laravel Paypal package. The srmklive / laravel-paypal package provides methods for the Paypal code API. We will use the express payment method in the Laravel 6/7 application.

As we know, PayPal payment gateway is a most popular gateway in web development. Almost customers or individuals prefer to use the Paypal payment gateway to make transfers on their website. PayPal is an easy-to-use gateway for global streaming.

In this tutorial we will use the srmklive package to integrate Laravel Paypal in Laravel 6. You just need to follow a few steps to do the payment integration in PHP Laravel 6.

Step 1: Install Laravel 6/7

Let’s go from zero. If you don’t have Laravel installed on your system, you can run the following command and get a new Laravel project

composer create-project –prefer-dist laravel/laravel blog

Step 2: install the Composer package

Now we need to install the srmklive / paypal package for Paypal integration so that we can use their method. So open your Terminal and run the following command.

composer require srmklive/paypal

Now open the config / app.php file and add service providers and aliases.


'providers' => [





We can also make custom changes to the srmklive / paypal package. So if you also want to make changes, you can activate the following command and get the config file in config / paypal.php.

php artisan vendor:publish –provider “Srmklive\PayPal\Providers\PayPalServiceProvider”

You can view the paypal.php file as follows:




 * PayPal Setting & API Credentials

 * Created by MyIt Developers .



return [

    'mode'    => env('PAYPAL_MODE', 'sandbox')

    'sandbox' => [

        'username'    => env('PAYPAL_SANDBOX_API_USERNAME', ''),

        'password'    => env('PAYPAL_SANDBOX_API_PASSWORD', ''),

        'secret'      => env('PAYPAL_SANDBOX_API_SECRET', ''),

        'certificate' => env('PAYPAL_SANDBOX_API_CERTIFICATE', ''),

        'app_id'      => 'APP-80W284485P519543T',


    'live' => [

        'username'    => env('PAYPAL_LIVE_API_USERNAME', ''),

        'password'    => env('PAYPAL_LIVE_API_PASSWORD', ''),

        'secret'      => env('PAYPAL_LIVE_API_SECRET', ''),

        'certificate' => env('PAYPAL_LIVE_API_CERTIFICATE', ''),

        'app_id'      => '',


    'payment_action' => 'Sale',

    'currency'       => env('PAYPAL_CURRENCY', 'USD'),

    'billing_type'   => 'MerchantInitiatedBilling',

    'notify_url'     => '',

    'locale'         => '',

    'validate_ssl'   => false,


Step 3: add routes

Here we must add the resource path for the Paypal payment gateway. So open your route / web.php file and add the following route.


Route::get('payment', 'PayPalController@payment')->name('payment');
Route::get('cancel', 'PayPalController@cancel')->name('payment.cancel');
Route::get('payment/success', 'PayPalController@success')->name('payment.success');

Step 4: create the controller

In this step, we should now create a new controller like PayPalController. Run the following command and create a new controller. Bellows controller to create using a few methods.

php artisan make:controller PayPalController

After the following command, you will find a new file in this path “app / Http / Controllers / PayPalController.php”.


namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Srmklive\PayPal\Services\ExpressCheckout;
class PayPalController extends Controller
     * Responds with a welcome message with instructions
     * @return \Illuminate\Http\Response
    public function payment()
        $data = [];
        $data['items'] = [
                'name' => '',
                'price' => 100,
                'desc'  => 'Description for',
                'qty' => 1
        $data['invoice_id'] = 1;
        $data['invoice_description'] = "Order #{$data['invoice_id']} Invoice";
        $data['return_url'] = route('payment.success');
        $data['cancel_url'] = route('payment.cancel');
        $data['total'] = 100;
        $provider = new ExpressCheckout;
        $response = $provider->setExpressCheckout($data);
        $response = $provider->setExpressCheckout($data, true);
        return redirect($response['paypal_link']);
     * Responds with a welcome message with instructions
     * @return \Illuminate\Http\Response
    public function cancel()
        dd('Your payment is canceled. You can create cancel page here.');
     * Responds with a welcome message with instructions
     * @return \Illuminate\Http\Response
    public function success(Request $request)
        $response = $provider->getExpressCheckoutDetails($request->token);
        if (in_array(strtoupper($response['ACK']), ['SUCCESS', 'SUCCESSWITHWARNING'])) {
            dd('Your payment was successfully. You can create success page here.');
        dd('Something is wrong.');

Step 5: create a view file

In this step, we must update the welcome.blade.php file. A button for the PayPal payment gateway will be added to this file. So let’s put the following code:


<!doctype html>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Laravel 6 PayPal Integration Tutorial -</title>
        <!-- Fonts -->
        <link href=",600" rel="stylesheet">
        <link rel="stylesheet" href="" integrity="sha256-YLGeXaapI0/5IgZopewRJcFXomhRMlYYjugPLSyNjTY=" crossorigin="anonymous" />
        <!-- Styles -->
            html, body {
                background-color: #fff;
                color: #636b6f;
                font-family: 'Nunito', sans-serif;
                font-weight: 200;
                height: 100vh;
                margin: 0;
            .content {
                margin-top: 100px;
                text-align: center;
        <div class="flex-center position-ref full-height">
            <div class="content">
                <h1>Laravel 6 PayPal Integration Tutorial -</h1>
                <table border="0" cellpadding="10" cellspacing="0" align="center"><tr><td align="center"></td></tr><tr><td align="center"><a href="" title="How PayPal Works" onclick="'','WIPaypal','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=1060, height=700'); return false;"><img src="" border="0" alt="PayPal Logo"></a></td></tr></table>
                <a href="{{ route('payment') }}" class="btn btn-success">Pay $100 from Paypal</a>

Step 6: add settings

In this step, we will set the configuration value like PayPal username, secret, and certificate key in the ENV file.



Now we can run this application example with Laravel 6. Run the following command for quick execution:

php artisan serve

Now you can open the following URL in your browser:


I hope it could help you …