سایت مرجع پکیج: larabook.ir
پکیج اتصال به تمامی IPG ها و بانک های ایرانی.
این پکیج با ورژن های ( ۴ و ۵ و ۶ لاراول ) لاراول سازگار می باشد
درصورت بروز هر گونه باگ یا خطا . ما را آگاه سازید .
پشتیبانی تنها از درگاهای زیر می باشد:
- MELLAT
- SADAD (MELLI)
- SAMAN
- PARSIAN
- PASARGAD
- ZARINPAL
- PAYPAL
- ASAN PARDAKHT
- PAY.IR ( برای فراخوانی از 'payir' استفاده نمایید)
- Irankish (جدید - برای فراخوانی از 'irankish' استفاده نمایید)
نصب:
دستورات زیر را جهت نصب دنبال کنید :
مرحله ۱ :
composer require larabook/gateway
مرحله ۲ :
تغییرات زیر را در فایل config/app.php اعمال نمایید:
توجه برای نسخه های لاراول ۶ به بعد این مرحله نیاز به انجام نمی باشد
'providers' => [
...
Larabookir\Gateway\GatewayServiceProvider::class, // <-- add this line at the end of provider array
],
'aliases' => [
...
'Gateway' => Larabookir\Gateway\Gateway::class, // <-- add this line at the end of aliases array
]
برای لاراول ۵ :
php artisan vendor:publish --provider=Larabookir\Gateway\GatewayServiceProviderLaravel5
php artisan vendor:publish
مرحله ۴ ایجاد جداول:
php artisan migrate
مرحله ۵ :
عملیات نصب پایان یافته است حال فایل gateway.php را در مسیر app/ را باز نموده و تنظیمات مربوط به درگاه بانکی مورد نظر خود را در آن وارد نمایید .
حال میتوایند برای اتصال به api بانک از یکی از روش های زیر به انتخاب خودتان استفاده نمایید . (Facade , Service container):
- Gateway::make(new Mellat())
- Gateway::make('mellat')
- Gateway::mellat()
- app('gateway')->make(new Mellat());
- app('gateway')->mellat();
مثال :اتصال به بانک ملت (درخواست توکن و انتقال کاربر به درگاه بانک) توجه : مقدار متد price به ریال وارد شده است و معادل یکصد تومان می باشد
try {
$gateway = \Gateway::make('mellat');
// $gateway->setCallback(url('/path/to/callback/route')); You can also change the callback
$gateway
->price(1000)
// setShipmentPrice(10) // optional - just for paypal
// setProductName("My Product") // optional - just for paypal
->ready();
$refId = $gateway->refId(); // شماره ارجاع بانک
$transID = $gateway->transactionId(); // شماره تراکنش
// در اینجا
// شماره تراکنش بانک را با توجه به نوع ساختار دیتابیس تان
// در جداول مورد نیاز و بسته به نیاز سیستم تان
// ذخیره کنید .
return $gateway->redirect();
} catch (\Exception $e) {
echo $e->getMessage();
}
و سپس روت با مسیر /callback و از نوع post ایجاد نمایید و کد های زیر را در آن قرار دهید :
try {
$gateway = \Gateway::verify();
$trackingCode = $gateway->trackingCode();
$refId = $gateway->refId();
$cardNumber = $gateway->cardNumber();
// تراکنش با موفقیت سمت بانک تایید گردید
// در این مرحله عملیات خرید کاربر را تکمیل میکنیم
} catch (\Larabookir\Gateway\Exceptions\RetryException $e) {
// تراکنش قبلا سمت بانک تاییده شده است و
// کاربر احتمالا صفحه را مجددا رفرش کرده است
// لذا تنها فاکتور خرید قبل را مجدد به کاربر نمایش میدهیم
echo $e->getMessage() . "<br>";
} catch (\Exception $e) {
// نمایش خطای بانک
echo $e->getMessage();
}
در صورت تمایل جهت همکاری در توسعه :
۱. توسعه مستندات پکیج. ۲. گزارش باگ و خطا. ۳. همکاری در نوشتن ماژول دیگر بانک ها برای این پکیج .
این پکیج از پکیج دیگری بنام poolport مشتق شده است اما برخی از عملیات آن متناسب با فریموورک لارول تغییر کرده است