Watch Youtube Video (HINDI) :
Laravel 9 How To Integrate Razorpay Payment Gateway, In this article, we will integrate the Razorpay payment gateway into the laravel 9 application. Razorpay provided business merchants to accept payment and allows you to business payments all over India. The payment gateway provided fasted payment transfer service in India. The is the popular payment gateway in India.
Razorpay payment gateway integration in laravel 9, we will first generate an API key from the Razorpay business account. We will get two keys from there. These two keys will help us to allow payment to our business account. So if you haven't created an account please go to Razorpay account and create one.
Composer require razorpay/razorpay, This is the Razorpay package, This package we will install in our application. I have given all guidelines and all the steps to reach integrate Razorpay into your laravel application.
Preview :
So let's start Razorpay payment gateway integration in laravel with composer requiring Razorpay/Razorpay in laravel.
Step 1. Create Razorpay Account
To getting start integrating Razorpay API in the laravel application instantly we must need an API key for accessing our Razorpay merchant account, So first we will generate API from our Razorpay account, click the given link to start to sign up for your Razorpay account Create Razorpay Account.
Step 2. Install Razorpay Composer
Now, we need to install Razorpay composer for getting Razorpay to integrate basic dependency in our application. So just copy the below-provided command and paste it in your application terminal.
composer require razorpay/razorpay
Laravel Tap Payment Gateway Integration Tutorial Example
Step 3. Generate API Key
Select your payment mode, You can in local development select TEST mode or if you want to integrate directly to love you can also select PRODUCTION mode. To get the API pair key click on the setting option. There you will show four options. Click on API Key and generate your API key and paste it into your temporary text file.
Now, open your .env file. The file you will find on the root directory of the project. Add these two keys in the .env file and also paste your ket value which you generated from the Razorpay payment account.
.envRAZOR_KEY=xxxxx RAZOR_SECRET=xxxxx
Step 4. Define Route
Create a Razorpay controller, use the below-provided command in your terminal.
php artisan make:controller RazorpayController
Define the route as per the below given, The first route is for the view form to get users' details, and The second route is for the send post request to the Razorpay server.
routes/web.php<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\RazorpayController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('razorpay', [RazorpayController::class, 'razorpay'])->name('razorpay'); Route::post('razorpay-payment', [RazorpayController::class, 'razorpayPayment'])->name('razorpay.payment');
Step 5. Razorpay Controller
Given two methods as per define in the route file. This controller will be run by the route defined. The first method razorpay() will show us Razorpay form and the second method for the know payment status.
app/Http/Controllers/RazorpayController.php<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Razorpay\Api\Api; use Session; class RazorpayController extends Controller { public function razorpay() { return view('razorpay'); } public function payment(Request $request) { $input = $request->all(); $api = new Api(env('RAZOR_KEY'), env('RAZOR_SECRET')); $payment = $api->payment->fetch($input['razorpay_payment_id']); if(count($input) && !empty($input['razorpay_payment_id'])) { try { $response = $api->payment->fetch($input['razorpay_payment_id'])->capture(array('amount'=>$payment['amount'])); // YOU CAN ALSO STORE RESPONSE $response IN DATABASE USERS TABLE } catch (\Exception $e) { return redirect()->back()->with('error',$e->getMessage()); } } return redirect()->back()->with('success','Payment successful received,'); } }
Step 6. Create View File
Create a blade file to view the user's interface form, so goto "resources/views" and create a file razorpay.blade.php
Add you RAZOR_KEY in this blade file asking for details about Razorpay. Add all necessary details.
<!DOCTYPE html> <html> <head> <meta name="csrf-token" content="{{ csrf_token() }}"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"> <title>Laravel 9 Razorpay Payment Gateway Integrtion - Webappfix</title> </head> <body> <div class="container"> <div class="row"> <div class="col-md-12"> @if(Session::has('error')) <div class="alert alert-danger alert-dismissible fade in" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> <strong>Error!</strong> {{ Session::get('error') }} </div> @endif @if(Session::has('success')) <div class="alert alert-info alert-dismissible fade in" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> <strong>Success!</strong> {{ Session::get('success') }} </div> @endif <div class="panel panel-default" style="margin-top: 30px;"> <h3 class="text-danger bg-light py-2 text-center">Laravel 9 Razorpay Payment Gateway Integrtion - Webappfix</h3><br> <div class="panel-heading"> <form action="{!!route('razorpay.payment')!!}" method="POST" > @csrf <script src="https://checkout.razorpay.com/v1/checkout.js" data-key="{{env('RAZOR_KEY')}}" data-amount="1000" data-buttontext="Pay Amount" data-name="webappfix" data-description="Webappfix Payment" data-prefill.name="Webappfix" data-prefill.email="webappfix@gmail.com" data-theme.color="#162D5D"> </script> </form> </div> </div> </div> </div> </div> <script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> </body> </html>
Step 7. Start Development Server
Start your laravel app development server locally, use the below suggested command in your app terminal and run your project.
php artisan serve
Run the below-given URL in your browser and you will see there a payment button use dummy card data and pay.
http://127.0.0.1:8000/razorpay
How to Integrate PayUMoney Payment Gateway in Laravel 9
We always thanks to you for reading our blogs.
Dharmesh Chauhan
(Swapinfoway Founder)Hello Sir, We are brothers origin from Gujarat India, Fullstack developers working together since 2016. We have lots of skills in web development in different technologies here I mention PHP, Laravel, Javascript, Vuejs, Ajax, API, Payment Gateway Integration, Database, HTML5, CSS3, and Server Administration. So you need our service Please Contact Us
Haresh Chauhan
(Co-Founder)We Are Also Recommending You :
- toArray() Method | Laravel Collection Example
- intervention/image change image format laravel tutorial
- PhonePe Payment Gateway Integration in Laravel
- Attributes Set In Laravel Model
- Laravel 10 PDF Export Example With DomPDF
- myfatoorah Payment Gateway Integration Laravel
- Laravel Custom Command Make Example
- Laravel 9 Authorize.Net Payment Gateway Integration
- Pinelabs Payment Gateway Integration Tutorial In Laravel
- Laravel Delete Image From Storage Folder