परिचय: लारवेल में पेमेंट गेटवे क्यों ज़रूरी है? (Why Payment Gateway in Laravel?)
यदि आप लारवेल (Laravel) के साथ ई-कॉमर्स, सब्सक्रिप्शन, या कोई पेड सर्विस वेबसाइट बना रहे हैं, तो पेमेंट गेटवे (Payment Gateway) इंटीग्रेशन एक अनिवार्य हिस्सा है। Razorpay भारत का सबसे लोकप्रिय पेमेंट गेटवे है, जो UPI, कार्ड्स, और नेट बैंकिंग जैसे कई पेमेंट ऑप्शन्स सपोर्ट करता है। इस लारवेल पेमेंट गेटवे ट्यूटोरियल हिंदी में (Laravel Payment Gateway Tutorial in Hindi) में हम आपको स्टेप-बाय-स्टेप बताएंगे कि लारवेल में Razorpay को कैसे इंटीग्रेट किया जाता है। यह ट्यूटोरियल शुरुआती डेवलपर्स के लिए भी बहुत आसान है। तैयार हैं? चलिए शुरू करते हैं! 🚀
लारवेल में Razorpay के फायदे (Benefits of Razorpay in Laravel)
Razorpay इतना लोकप्रिय क्यों है? आइए इसके कुछ प्रमुख फायदों पर नजर डालें:
- आसान इंटीग्रेशन: Razorpay का SDK मिनटों में सेटअप हो जाता है।
- मल्टीपल पेमेंट ऑप्शन्स: UPI, कार्ड्स, वॉलेट्स, और नेट बैंकिंग का सपोर्ट।
- सुरक्षा: PCI-DSS कंप्लायंस और सुरक्षित API।
- कस्टमाइज़ेबल: पेमेंट फॉर्म और UI को अपने हिसाब से डिज़ाइन करें।
- डेवलपर-फ्रेंडली: स्पष्ट डॉक्यूमेंटेशन और टेस्ट मोड उपलब्ध।
जानकारी: 2025 में Razorpay 50% से अधिक भारतीय स्टार्टअप्स के लिए पसंदीदा पेमेंट गेटवे है!
Razorpay से क्या बना सकते हैं? (What Can You Build with Razorpay?)
लारवेल और Razorpay के साथ आप कई प्रकार के प्रोजेक्ट्स बना सकते हैं, जैसे:
- ई-कॉमर्स स्टोर: प्रोडक्ट्स के लिए पेमेंट सिस्टम।
- सब्सक्रिप्शन सर्विस: मासिक या वार्षिक प्लान्स।
- डोनेशन प्लेटफॉर्म: NGO या क्राउडफंडिंग साइट।
- टिकट बुकिंग: इवेंट्स या मूवी टिकट्स के लिए पेमेंट।
लारवेल में Razorpay इंटीग्रेट करने की स्टेप-बाय-स्टेप गाइड (Step-by-Step Guide)
स्टेप 1: लारवेल प्रोजेक्ट सेटअप करें (Setup Laravel Project)
सबसे पहले, एक नया लारवेल प्रोजेक्ट बनाएं। इसके लिए आपको निम्नलिखित चीजें चाहिए:
- PHP: वर्जन 8.1 या उससे ऊपर।
- कंपोजर (Composer): PHP पैकेज मैनेजर।
- डेटाबेस: MySQL।
सेटअप कैसे करें?
- टर्मिनल में यह कमांड रन करें:
composer create-project laravel/laravel payment-app
इससे “payment-app” नाम का फोल्डर बनेगा।
- फोल्डर में जाएं और सर्वर शुरू करें:
cd payment-app
php artisan serve
ब्राउज़र में http://localhost:8000
खोलें, आपको लारवेल का वेलकम पेज दिखेगा।
स्टेप 2: डेटाबेस कॉन्फिगर करें (Configure Database)
पेमेंट्स और ऑर्डर्स को स्टोर करने के लिए डेटाबेस की आवश्यकता होगी।
.env
फाइल में डेटाबेस डिटेल्स अपडेट करें:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=payment_db
DB_USERNAME=your_username
DB_PASSWORD=your_password
- MySQL में
payment_db
नाम का डेटाबेस बनाएं। - ऑर्डर्स के लिए मॉडल और माइग्रेशन बनाएं:
php artisan make:model Order -m
database/migrations/
में ऑर्डर माइग्रेशन फाइल में निम्नलिखित कोड डालें:
Schema::create('orders', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('user_id');
$table->decimal('amount', 8, 2);
$table->string('razorpay_order_id');
$table->string('razorpay_payment_id')->nullable();
$table->string('status')->default('pending');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
- माइग्रेशन रन करें:
php artisan migrate
app/Models/Order.php
में मॉडल को अपडेट करें:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
protected $fillable = ['user_id', 'amount', 'razorpay_order_id', 'razorpay_payment_id', 'status'];
public function user()
{
return $this->belongsTo(User::class);
}
}
स्टेप 3: ऑथेंटिकेशन सेटअप करें (Setup Authentication)
यूजर्स के लिए लॉगिन और रजिस्ट्रेशन सेट करें।
- Laravel Breeze इंस्टॉल करें:
composer require laravel/breeze --dev
php artisan breeze:install
npm install
npm run dev
php artisan migrate
यह लॉगिन, रजिस्ट्रेशन, और डैशबोर्ड सेटअप करेगा।
स्टेप 4: Razorpay पैकेज इंस्टॉल करें (Install Razorpay Package)
Razorpay का PHP SDK इंस्टॉल करें।
- टर्मिनल में यह कमांड रन करें:
composer require razorpay/razorpay
- Razorpay क्रेडेंशियल्स सेट करें। Razorpay डैशबोर्ड पर जाएं, API Keys जनरेट करें, और
.env
में डालें:
RAZORPAY_KEY=your_razorpay_key
RAZORPAY_SECRET=your_razorpay_secret
स्टेप 5: पेमेंट कंट्रोलर बनाएं (Create Payment Controller)
पेमेंट प्रोसेस को हैंडल करने के लिए कंट्रोलर बनाएं।
- कंट्रोलर जनरेट करें:
php artisan make:controller PaymentController
app/Http/Controllers/PaymentController.php
में निम्नलिखित कोड डालें:
namespace App\Http\Controllers;
use App\Models\Order;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Razorpay\Api\Api;
class PaymentController extends Controller
{
public function createOrder(Request $request)
{
$request->validate([
'amount' => 'required|numeric|min:1',
]);
$api = new Api(env('RAZORPAY_KEY'), env('RAZORPAY_SECRET'));
$razorpayOrder = $api->order->create([
'amount' => $request->amount * 100, // Amount in paise
'currency' => 'INR',
'payment_capture' => 1,
]);
$order = Order::create([
'user_id' => Auth::id(),
'amount' => $request->amount,
'razorpay_order_id' => $razorpayOrder->id,
'status' => 'pending',
]);
return view('payment.process', compact('order', 'razorpayOrder'));
}
public function verifyPayment(Request $request)
{
$request->validate([
'razorpay_payment_id' => 'required',
'razorpay_order_id' => 'required',
'razorpay_signature' => 'required',
]);
$api = new Api(env('RAZORPAY_KEY'), env('RAZORPAY_SECRET'));
$attributes = [
'razorpay_payment_id' => $request->razorpay_payment_id,
'razorpay_order_id' => $request->razorpay_order_id,
'razorpay_signature' => $request->razorpay_signature,
];
try {
$api->utility->verifyPaymentSignature($attributes);
$order = Order::where('razorpay_order_id', $request->razorpay_order_id)->first();
$order->update([
'razorpay_payment_id' => $request->razorpay_payment_id,
'status' => 'completed',
]);
return redirect()->route('payment.success')->with('success', 'पेमेंट सक्सेसफुल!');
} catch (\Exception $e) {
return redirect()->route('payment.failed')->with('error', 'पेमेंट फेल हुआ!');
}
}
public function success()
{
return view('payment.success');
}
public function failed()
{
return view('payment.failed');
}
}
स्टेप 6: रूट्स सेट करें (Setup Routes)
पेमेंट प्रोसेस के लिए रूट्स डिफाइन करें।
routes/web.php
में निम्नलिखित कोड डालें:
use App\Http\Controllers\PaymentController;
Route::middleware('auth')->group(function () {
Route::post('/payment/create', [PaymentController::class, 'createOrder'])->name('payment.create');
Route::post('/payment/verify', [PaymentController::class, 'verifyPayment'])->name('payment.verify');
Route::get('/payment/success', [PaymentController::class, 'success'])->name('payment.success');
Route::get('/payment/failed', [PaymentController::class, 'failed'])->name('payment.failed');
});
स्टेप 7: पेमेंट व्यूज़ बनाएं (Create Payment Views)
पेमेंट फॉर्म और सक्सेस/फेल पेज बनाएं।
resources/views/payment/index.blade.php
बनाएं और निम्नलिखित कोड डालें:
@extends('layouts.app')
@section('content')
<h1>पेमेंट करें (Make Payment)</h1>
<form method="POST" action="{{ route('payment.create') }}">
@csrf
<div class="mb-3">
<label for="amount" class="form-label">अमाउंट (Amount in INR)</label>
<input type="number" class="form-control" name="amount" id="amount" required>
@error('amount') <span class="text-danger">{{ $message }}</span> @enderror
</div>
<button type="submit" class="btn btn-primary">पेमेंट करें (Proceed to Payment)</button>
</form>
@endsection
resources/views/payment/process.blade.php
बनाएं और निम्नलिखित कोड डालें:
@extends('layouts.app')
@section('content')
<h1>पेमेंट प्रोसेस (Payment Process)</h1>
<form action="{{ route('payment.verify') }}" method="POST">
@csrf
<script src="https://checkout.razorpay.com/v1/checkout.js"
data-key="{{ env('RAZORPAY_KEY') }}"
data-amount="{{ $razorpayOrder->amount }}"
data-currency="INR"
data-order_id="{{ $razorpayOrder->id }}"
data-buttontext="Pay Now"
data-name="Your App Name"
data-description="Payment for Order #{{ $order->id }}"
data-prefill.name="{{ Auth::user()->name }}"
data-prefill.email="{{ Auth::user()->email }}"
data-theme.color="#007bff">
</script>
<input type="hidden" name="razorpay_payment_id" id="razorpay_payment_id">
<input type="hidden" name="razorpay_order_id" id="razorpay_order_id" value="{{ $razorpayOrder->id }}">
<input type="hidden" name="razorpay_signature" id="razorpay_signature">
</form>
@endsection
resources/views/payment/success.blade.php
बनाएं और निम्नलिखित कोड डालें:
@extends('layouts.app')
@section('content')
<h1>पेमेंट सक्सेसफुल! (Payment Successful!)</h1>
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
<p>आपका पेमेंट सक्सेसफुली प्रोसेस हो गया है। धन्यवाद!</p>
<a class="btn btn-primary" href="{{ route('dashboard') }}">डैशबोर्ड पर जाएं (Go to Dashboard)</a>
@endsection
resources/views/payment/failed.blade.php
बनाएं और निम्नलिखित कोड डालें:
@extends('layouts.app')
@section('content')
<h1>पेमेंट फेल! (Payment Failed!)</h1>
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
<p>पेमेंट प्रोसेस करने में कुछ प्रॉब्लम हुई। कृपया फिर से ट्राय करें।</p>
<a class="btn btn-primary" href="{{ route('dashboard') }}">डैशबोर्ड पर जाएं (Go to Dashboard)</a>
@endsection
स्टेप 8: डिज़ाइन इम्प्रूव करें (Improve Design)
पेमेंट पेज को प्रोफेशनल लुक देने के लिए:
resources/css/app.css
में कस्टम स्टाइल्स डालें:
body {
font-family: Arial, sans-serif;
background-color: #f8f9fa;
}
.container {
max-width: 600px;
margin-top: 50px;
}
.btn-primary {
background-color: #007bff;
border-color: #007bff;
}
- फ्रंटएंड बिल्ड करें:
npm install
npm run dev
स्टेप 9: टेस्टिंग (Testing)
पेमेंट गेटवे को टेस्ट करें।
- ब्राउज़र में
http://localhost:8000/login
खोलकर लॉगिन करें। - डैशबोर्ड से पेमेंट पेज पर जाएं और अमाउंट डालें।
- Razorpay टेस्ट मोड में (टेस्ट कार्ड/यूपीआई) पेमेंट करें।
- सक्सेस और फेल पेज चेक करें।
स्टेप 10: होस्टिंग (Hosting)
पेमेंट सिस्टम को ऑनलाइन ले जाएं।
- होस्टिंग चुनें: Hostinger सस्ता और शुरुआती डेवलपर्स के लिए उपयुक्त है।
- प्रोजेक्ट फाइल्स और डेटाबेस को सर्वर पर अपलोड करें।
.env
फाइल में प्रोडक्शन Razorpay क्रेडेंशियल्स अपडेट करें।
लारवेल Razorpay टिप्स (Tips for Laravel Razorpay)
- सिक्योरिटी: HTTPS का उपयोग करें और API क्रेडेंशियल्स को सुरक्षित रखें।
- टेस्टिंग: Razorpay टेस्ट मोड में विभिन्न पेमेंट मेथड्स को टेस्ट करें।
- रिफंड्स: Razorpay डैशबोर्ड से रिफंड प्रोसेस करें।
- डॉक्यूमेंटेशन: Razorpay Docs और Laravel Docs का अध्ययन करें।
अक्सर पूछे जाने वाले सवाल (FAQs)
1. लारवेल में Razorpay क्यों यूज़ करें? (Why Use Razorpay in Laravel?)
Razorpay आसान, सुरक्षित, और मल्टीपल पेमेंट ऑप्शन्स प्रदान करता है।
2. क्या Razorpay शुरुआती डेवलपर्स के लिए आसान है? (Is Razorpay Easy for Beginners?)
हां, इस लारवेल पेमेंट गेटवे ट्यूटोरियल हिंदी में गाइड के साथ शुरुआती डेवलपर्स आसानी से सीख सकते हैं।
3. पेमेंट गेटवे सेटअप में कितना समय लगता है? (How Long to Setup Payment Gateway?)
इस गाइड के साथ 1-2 घंटे। प्रोडक्शन सेटअप के लिए 1 दिन।
4. क्या मैं Stripe इंटीग्रेट कर सकता हूँ? (Can I Integrate Stripe?)
हां, Stripe PHP SDK का उपयोग करके लारवेल में इंटीग्रेट किया जा सकता है।
5. पेमेंट सिस्टम को ऑनलाइन कैसे लाएँ? (How to Launch Payment System Online?)
Hostinger पर अपने प्रोजेक्ट को अपलोड करें।
निष्कर्ष: आज ही Razorpay इंटीग्रेट करें! (Integrate Razorpay Today!)
इस लारवेल पेमेंट गेटवे ट्यूटोरियल हिंदी में (Laravel Payment Gateway Tutorial in Hindi) के माध्यम से आपने सीखा कि Laravel में Razorpay को कैसे इंटीग्रेट किया जाता है। इस गाइड को फॉलो करें और अपने प्रोजेक्ट्स में पेमेंट सिस्टम जोड़ें। कोई सवाल हो? नीचे कमेंट करें। अपनी वेबसाइट को Hostinger पर होस्ट करें और इसे ऑनलाइन ले जाएं।
अगला क्या सीखें? (What to Learn Next?) Laravel E-commerce, Vue.js, या Docker पर ट्यूटोरियल्स हिंदी में (Tutorials in Hindi) चाहिए? InHindi24.com पर और गाइड्स पढ़ें!