فریمورک لاراول به دلیل امکانات گسترده و سادهای که ارائه میدهد، یکی از محبوبترین فریمورکهای PHP است. یکی از نیازهای اصلی در توسعه اپلیکیشنهای وب، فراهم کردن امکان پرداخت آنلاین از طریق درگاههای بانکی است. در این مقاله، به شما آموزش خواهیم داد که چگونه میتوانید تمام درگاههای بانکی را به پروژه لاراول خود متصل کنید.

مراحل اصلی اتصال به درگاههای بانکی در لاراول
برای اتصال به درگاههای بانکی، مراحل زیر را دنبال کنید:
1. نصب و پیکربندی کتابخانههای پرداخت
لاراول به لطف اکوسیستم پیشرفته خود، از پکیجهای متنوعی برای اتصال به درگاههای پرداخت پشتیبانی میکند. یکی از معروفترین و پرکاربردترین پکیجها، Laravel Payment است که با اکثر درگاههای بانکی ایران سازگار است.
برای نصب این پکیج از کامپوزر استفاده کنید:
composer require shetabit/payment
پس از نصب پکیج، باید تنظیمات مربوط به درگاههای بانکی را در فایل config/payment.php انجام دهید. برای این کار، فایل تنظیمات را با استفاده از دستور زیر منتشر کنید:
php artisan vendor:publish –tag=shetabitPayment
2.تنظیمات درگاههای بانکی
در فایل payment.php که در مسیر config قرار دارد، باید اطلاعات مربوط به هر درگاه بانکی را وارد کنید. به عنوان مثال، برای درگاههای رایج مانند زرینپال، پیپال، ملت، و… تنظیمات به شکل زیر است:
return [
‘drivers’ => [
‘zarinpal’ => [
‘merchantId’ => env(‘ZARINPAL_MERCHANT_ID’),
‘callbackUrl’ => env(‘ZARINPAL_CALLBACK_URL’),
],
‘mellat’ => [
‘username’ => env(‘MELLAT_USERNAME’),
‘password’ => env(‘MELLAT_PASSWORD’),
‘terminalId’ => env(‘MELLAT_TERMINAL_ID’),
],
// سایر درگاهها
],
];
هر درگاه نیاز به مقادیر متفاوتی دارد که از سوی بانک یا ارائهدهنده درگاه پرداخت به شما ارائه میشود.
3. اضافه کردن درگاههای پرداخت به محیط .env
بعد از انجام تنظیمات، اطلاعات مهم مانند کلیدهای مرچنت و توکنها باید در فایل .env وارد شوند. به عنوان مثال:
ZARINPAL_MERCHANT_ID=your-merchant-id
ZARINPAL_CALLBACK_URL=https://your-site.com/payment/callback
MELLAT_USERNAME=your-username
MELLAT_PASSWORD=your-password
MELLAT_TERMINAL_ID=your-terminal-id
4. ایجاد کنترلر و مسیرهای پرداخت
اکنون باید یک کنترلر برای مدیریت پرداختها ایجاد کنیم. در کنترلر، با استفاده از پکیج پرداخت، فرآیند شروع تراکنش و دریافت نتیجه از درگاه بانکی را پیادهسازی میکنیم.
use Shetabit\Multipay\Invoice;
use Shetabit\Payment\Facade\Payment;
class PaymentController extends Controller
{
public function pay()
{
$invoice = (new Invoice)->amount(1000); // مبلغ به ریال
return Payment::via(‘zarinpal’)->purchase($invoice, function($driver, $transactionId) {
// ذخیره تراکنش
})->pay()->render();
}
public function callback()
{
$receipt = Payment::via(‘zarinpal’)->verify();
// بررسی و پردازش تراکنش
}
}
در مسیرهای web.php نیز باید مسیرهایی برای پرداخت و بازگشت از درگاه بانکی تعریف کنید:
Route::get(‘/payment’, [PaymentController::class, ‘pay’]);
Route::get(‘/payment/callback’, [PaymentController::class, ‘callback’]);
5. تست و ارزیابی پرداختها
پس از انجام تمام مراحل، سیستم پرداخت شما آماده است. با استفاده از اطلاعات آزمایشی که از سوی درگاههای بانکی ارائه میشود، میتوانید عملکرد درگاههای مختلف را تست کنید.
6. پشتیبانی از چندین درگاه بانکی
یکی از مزایای پکیجهایی مانند Shetabit Payment، امکان مدیریت چندین درگاه بانکی به طور همزمان است. با استفاده از این پکیج، شما میتوانید درگاههای مختلفی را برای اپلیکیشن خود تعریف کرده و در صورت نیاز، به صورت پویا از یکی از آنها استفاده کنید. به عنوان مثال، اگر قصد دارید از درگاه زرینپال و ملت به طور همزمان استفاده کنید، به سادگی میتوانید در زمان پرداخت، درگاه مورد نظر را انتخاب کنید:
Payment::via(‘mellat’)->purchase($invoice, …);
نتیجهگیری
اتصال به تمام درگاههای بانکی در لاراول با استفاده از پکیجهای قدرتمند مانند Shetabit Payment به سادگی امکانپذیر است. با پیکربندی صحیح این پکیج و تنظیمات درگاههای مختلف، میتوانید پرداختهای آنلاین خود را در پروژههای لاراول به بهترین شکل مدیریت کنید.






خیلی عالی بود. مرسی
خیلی عالی بود. مرسی. خیلی پکیج خوب و کاربردی هست.
ممنون از توجه اتون