Laravel 5.8 PayPal Integration Tutorial

Laravel 5.8 PayPal Integration Tutorial

In this post we will give you information about Laravel 5.8 PayPal Integration Tutorial. Hear we will give you detail about Laravel 5.8 PayPal Integration TutorialAnd how to use it also give you demo for it if it is necessary.

Today, i will guide you how to implement paypal payment gateway in laravel 5.8 application. we will integrate paypal api using srmklive laravel paypal package. we can easily do paypal payment gateway integration in laravel 5.8.

Paypal payment gateway is a more popular gateway in web development. almost client prefer to use paypal payment gateway for money transfer in his website. Paypal is a user friendly gateway to transfer word wide.

In this tutorial, we will use srmklive package for laravel paypal integrate in laravel 5.8. you just need to follow few steps to getting done payment integration in php laravel.

You can see bellow screen shot:

Preview:

Step 1: Laravel 5.8 Installation

We are going from scratch so, If you haven’t installed laravel in your system then you can run bellow command and get fresh Laravel project.

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

Step 2: Install Composer Packages

Now we require to install srmklive/paypal package for paypal integration, that way we can use it’s method. So Open your terminal and run bellow command.

composer require srmklive/paypal

Now open config/app.php file and add service provider and aliase.

config/app.php

'providers' => [

....

SrmklivePayPalProvidersPayPalServiceProvider::class

]

....

We can also custom changes on srmklive/paypal package, so if you also want to changes then you can fire bellow command and get config file in config/paypal.php.

php artisan vendor:publish --provider "SrmklivePayPalProvidersPayPalServiceProvider"

You can view paypal.php file like as bellow:

config/paypal.php

<?php

/**

* PayPal Setting & API Credentials

* Created by Raza Mehdi .

*/

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,

];

Also see:Laravel 5.8 CRUD (Create Read Update Delete) Tutorial For Beginners

Step 3: Create Routes

Here, we need to add resource route for paypal payment gateway. so open your “routes/web.php” file and add following route.

routes/web.php

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 PayPalController Controller

In this step, now we should create new controller as PayPalController. So run bellow command and create new controller. bellow controller for create with some methods.

php artisan make:controller PayPalController

After bellow command you will find new file in this path “app/Http/Controllers/PayPalController.php”.

app/Http/Controllers/PayPalController.php

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

use SrmklivePayPalServicesExpressCheckout;

class PayPalController extends Controller

{

/**

* Responds with a welcome message with instructions

*

* @return IlluminateHttpResponse

*/

public function payment()

{

$data = [];

$data['items'] = [

[

'name' => 'ItSolutionStuff.com',

'price' => 100,

'desc' => 'Description for ItSolutionStuff.com',

'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 IlluminateHttpResponse

*/

public function cancel()

{

dd('Your payment is canceled. You can create cancel page here.');

}

/**

* Responds with a welcome message with instructions

*

* @return IlluminateHttpResponse

*/

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 Blade File

In this step, we need to update welcome.blade.php file. in this file we will put one button for paypal payment gateway. so let’s put bellow code:

resources/views/products/welcome.blade.php

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Laravel 5.8 PayPal Integration Tutorial - ItSolutionStuff.com</title>

<!-- Fonts -->

<link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha256-YLGeXaapI0/5IgZopewRJcFXomhRMlYYjugPLSyNjTY=" crossorigin="anonymous" />

<!-- Styles -->

<style>

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;

}

</style>

</head>

<body>

<div >

<div >

<h1>Laravel 5.8 PayPal Integration Tutorial - ItSolutionStuff.com</h1>

<table border="0" cellpadding="10" cellspacing="0" align="center"><tr><td align="center"></td></tr><tr><td align="center"><a href="https://www.paypal.com/in/webapps/mpp/paypal-popup" title="How PayPal Works" onclick="javascript:window.open('https://www.paypal.com/in/webapps/mpp/paypal-popup','WIPaypal','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=1060, height=700'); return false;"><img src="https://www.paypalobjects.com/webstatic/mktg/Logo/pp-logo-200px.png" border="0" alt="PayPal Logo"></a></td></tr></table>

<a href="{{ route('payment') }}" >Pay $100 from Paypal</a>

</div>

</div>

</body>

</html>

Step 6: Configuration

In this step, we will set configuration value like paypal username, secret and certificate key in .env file.

.env

PAYPAL_MODE=sandbox

PAYPAL_SANDBOX_API_USERNAME=sb-e2n47..

PAYPAL_SANDBOX_API_PASSWORD=XKCGW...

PAYPAL_SANDBOX_API_SECRET=A0EXIz....

PAYPAL_CURRENCY=INR

PAYPAL_SANDBOX_API_CERTIFICATE=

You can see bellow screen shot for getting above details:

Now we are ready to run our this application example with laravel 5.8 so run bellow command for quick run:

php artisan serve

Now you can open bellow URL on your browser:

Also see:Laravel 5.8 User Roles and Permissions Tutorial

http://localhost:8000/

You can download code from git: Download Code from Github

I hope it can help you….

Hope this code and post will helped you for implement Laravel 5.8 PayPal Integration Tutorial. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs

For More Info See :: laravel And github

Leave a Comment

Your email address will not be published. Required fields are marked *

  +  50  =  57

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US