Laravel 5.8 Razorpay Payment Gateway. We would love to share with you how to implement razorpay payment gateway in laravel 5.8 with example. Today we will implement razorpay payment gateway in laravel appliacation. This example also work with laravel 5.7 and laravel 5.6.
In this laravel razorpay payment gateway example, we will use javascript lib of razorpay payment gateway for payment deduction. Simply we will implement script code for payment deduction and after successfully payment has deducted, we need to redirect success blade view.
Let’s Start Laravel Razorpay Integration
Contents
- Install Laravel App
- Setup Database
- Model & Migration
- Make Route
- Create Controller & Methods
- Create Blade View
- Start Development Server
- Conclusion
Install Laravel App
First of we need to download latest laravel fresh setup. Use the below command and download fresh new laravel setup :
composer create-project --prefer-dist laravel/laravel RazorpayDemo
Setup Database
After successfully install laravel latest Application, Go to your project .env file and set up database credential :
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here
Model & Migration
Now we will create table name Payment and it’s migration file. use the below command.
php artisan make:model Payment -m
It command will create one model name Payment and also create one migration file for Payment table. After successfully run the command go to database/migrations/Payments.php file and replace function, below here :
public function up()
{
Schema::create('payments', function (Blueprint $table) {
$table->increments('id');
$table->string('payment_id');
$table->string('user_id');
$table->string('amount');
$table->timestamps();
});
}
Before we run php artisan migrate command go to app/providers/AppServiceProvider.php and put the below code :
…
use Illuminate\Support\Facades\Schema;
….
function boot()
{
Schema::defaultStringLength(191);
}
…
Next migrate the table using the below command. It will create two new tables in database.
php artisan migrate
Make Route
We will create two routes in web.php file. Go to app/routes/web.php file and create two below routes here. First route for showing products. Second route for store payments_id and users information provided by razorpay payment gateway.
Route::get('product', 'RazorpayController@index');
Route::post('paysuccess', 'RazorpayController@paysuccess');
Route::post('razor-thank-you', 'RazorpayController@thankYou');
Create Controller
We need to create a controller name RazorpayController. Use the below command and create Controller :
php artisan make:controller RazorpayController
After successfully create controller go to app/controllers/RazorpayController.php and put the below code :
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Payment; use Redirect,Response; class RazorpayController extends Controller { public function index() { return view('payments.razorpay'); } public function razorPaySuccess(Request $Request){ $data = [ 'user_id' => '1', 'payment_id' => $request->payment_id, 'amount' => $request->amount, ]; $getId = Payment::insertGetId($data); $arr = array('msg' => 'Payment successfully credited', 'status' => true); return Response()->json($arr); } public function RazorThankYou() { return view('payments.thankyou'); } }
Create Blade view
Now we will create blade view file name razorpay.blade.php and where we will show products list.
Go to resources/views & create razorpay.blade.php file.
Get Your secret key from razorpay payment gateway dashboard and put the key in script tag section like this => “key”: “rzp_test_5kdfjkdJFKR”,
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="csrf-token" content="{{ csrf_token() }}"> <title>Laravel 5.8 Razorpay Payment Gateway - Tutsmake.com</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" /> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script> <style> .card-product .img-wrap { border-radius: 3px 3px 0 0; overflow: hidden; position: relative; height: 220px; text-align: center; } .card-product .img-wrap img { max-height: 100%; max-width: 100%; object-fit: cover; } .card-product .info-wrap { overflow: hidden; padding: 15px; border-top: 1px solid #eee; } .card-product .bottom-wrap { padding: 15px; border-top: 1px solid #eee; } .label-rating { margin-right:10px; color: #333; display: inline-block; vertical-align: middle; } .card-product .price-old { color: #999; } </style> </head> <body> <div class="container"> <br> <p class="text-center">More article on <a href="https://www.tutsmake.com/">Tutsmake.com</a></p> <hr> <div class="row"> <div class="col-md-4"> <figure class="card card-product"> <div class="img-wrap"><img src="//www.tutsmake.com/wp-content/uploads/2019/03/c05917807.png"></div> <figcaption class="info-wrap"> <h4 class="title">Mouse</h4> <p class="desc">Some small description goes here</p> <div class="rating-wrap"> <div class="label-rating">132 reviews</div> <div class="label-rating">154 orders </div> </div> <!-- rating-wrap.// --> </figcaption> <div class="bottom-wrap"> <a href="javascript:void(0)" class="btn btn-sm btn-primary float-right buy_now" data-amount="1000" data-id="1">Order Now</a> <div class="price-wrap h5"> <span class="price-new">₹1000</span> <del class="price-old">₹1200</del> </div> <!-- price-wrap.// --> </div> <!-- bottom-wrap.// --> </figure> </div> <!-- col // --> <div class="col-md-4"> <figure class="card card-product"> <div class="img-wrap"><img src="//www.tutsmake.com/wp-content/uploads/2019/03/vvjghg.png"> </div> <figcaption class="info-wrap"> <h4 class="title">Sony Watch</h4> <p class="desc">Some small description goes here</p> <div class="rating-wrap"> <div class="label-rating">132 reviews</div> <div class="label-rating">154 orders </div> </div> <!-- rating-wrap.// --> </figcaption> <div class="bottom-wrap"> <a href="javascript:void(0)" class="btn btn-sm btn-primary float-right buy_now" data-amount="1280" data-id="2">Order Now</a> <div class="price-wrap h5"> <span class="price-new">₹1280</span> <del class="price-old">₹1400</del> </div> <!-- price-wrap.// --> </div> <!-- bottom-wrap.// --> </figure> </div> <!-- col // --> <div class="col-md-4"> <figure class="card card-product"> <div class="img-wrap"><img src="//www.tutsmake.com/wp-content/uploads/2019/03/jhgjhgjg.jpg"></div> <figcaption class="info-wrap"> <h4 class="title">Mobile</h4> <p class="desc">Some small description goes here</p> <div class="rating-wrap"> <div class="label-rating">132 reviews</div> <div class="label-rating">154 orders </div> </div> <!-- rating-wrap.// --> </figcaption> <div class="bottom-wrap"> <a href="javascript:void(0)" class="btn btn-sm btn-primary float-right order_now" data-amount="1280" data-id="3">Order Now</a> <div class="price-wrap h5"> <span class="price-new">₹1500</span> <del class="price-old">₹1980</del> </div> <!-- price-wrap.// --> </div> <!-- bottom-wrap.// --> </figure> </div> <!-- col // --> </div> <!-- row.// --> </div> <!--container.//--> <br><br><br> <article class="bg-secondary mb-3"> <div class="card-body text-center"> <h4 class="text-white">Welcome to Tutsmake.com<br> </h4> <p class="h5 text-white">Thank you for being here </p> <br> <p><a class="btn btn-warning" target="_blank" href="//tutsmake.com/"> Tutsmake.com <i class="fa fa-window-restore "></i></a> </p> </div> <br><br><br> </article> <script src="https://checkout.razorpay.com/v1/checkout.js"></script> <script> var SITEURL = '{{URL::to('')}}'; $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $('body').on('click', '.buy_now', function(e){ var totalAmount = $(this).attr("data-amount"); var product_id = $(this).attr("data-id"); var options = { "key": "rzp_test_SYm5UF3bsPxKKR", "amount": (totalAmount*100), // 2000 paise = INR 20 "name": "Tutsmake", "description": "Payment", "image": "//www.tutsmake.com/wp-content/uploads/2018/12/cropped-favicon-1024-1-180x180.png", "handler": function (response){ $.ajax({ url: SITEURL + 'paysuccess', type: 'post', dataType: 'json', data: { razorpay_payment_id: response.razorpay_payment_id , totalAmount : totalAmount ,product_id : product_id, }, success: function (msg) { window.location.href = SITEURL + 'razor-thank-you'; } }); }, "prefill": { "contact": '9988665544', "email": '[email protected]', }, "theme": { "color": "#528FF0" } }; var rzp1 = new Razorpay(options); rzp1.open(); e.preventDefault(); }); /*document.getElementsClass('buy_plan1').onclick = function(e){ rzp1.open(); e.preventDefault(); }*/ </script> </body> </html>
Go to resources/views and Create new blade view file name thankyou.blade.php. It is used for showing after payment success.
<!DOCTYPE html> <html> <head> <title>Thank You - Tutsmake</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" /> </head> <body class=""> <br><br><br><br> <article class="bg-secondary mb-3"> <div class="card-body text-center"> <h4 class="text-white">Thank you for payment<br></h4> <br> <p><a class="btn btn-warning" target="_blank" href="https://www.tutsmake.com/"> Tutsmake.com <i class="fa fa-window-restore "></i></a></p> </div> <br><br><br> </article> </body> </html>
Now we are ready to run our razorpay payment gateway with laravel 5.8 example so run bellow command to quick run.
Start Development Server
We need to start development server. Use the php artisan serve command and start your server :
php artisan serve
If you want to run the project diffrent port so use this below command
php artisan serve --port=8080
Now we are ready to run our example so run bellow command to quick run.
http://localhost:8000/
Or direct hit in your browser
http://localhost/RazorpayDemo/product
If you want to remove public or public/index.php from URL In laravel, Click Me
Conclusion
In this laravel razorpay payment gateway integration tutorial, We have successfully integrate razorpay payment gateway and also test it with demo credentials. Our examples run quickly.
You may like
- Laravel Stripe Payment Gateway Integration Example Tutorial
- Laravel Instamojo Payment Gateway Integration Example
- Angular 8 – Stripe Payment Gateway Example
Rrecommended Posts
Laravel 5.7 Paytm Payment Gateway Integration Example
If you have any questions or thoughts to share, use the comment form below to reach us.
hello`
hi
can. we make direct bank to bank transfer using razorpay in laravel
you can read the official document of Razorpay for that.