متاسفانه این پکیج دیگر پشتیبانی نمی شود
پکیج اتصال به تمامی 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
// then choose : GatewayServiceProviderLaravel6
مرحله ۴) - ایجاد جداول
php artisan migrate
مرحله ۵) - تغییرات زیر را درون database/seeders/DatabaseSeeder.php اضافه کنید
$this->call([
GatewaySeeder::class,
GatewayVariationSeeder::class,
GateVarValueSeeder::class,
]);
مرحله 6) - ساخت اطلاعات درگاهها درون جداول
php artisan db:seed
مرحله 7)
اطلاعات درگاه ها حالا از دیتابیس خوانده میشود. حال شما میتوانید اطلاعات هرکدام از درگاه ها هارا مانند فایل GateVarValueSeeder.php که اطلاعات درگاه mellat را در دیتابیس ثبت کرده, درون دیتابیس ثبت نمایید و به شکل مثال پایین از آنها استفاده کنید
- Gateway::make(new Mellat())
- Gateway::make('mellat')
- Gateway::mellat()
- app('gateway')->make(new Mellat());
- app('gateway')->mellat();
مثال :اتصال به بانک ملت (درخواست توکن و انتقال کاربر به درگاه بانک) توجه : مقدار متد price به ریال وارد شده است و معادل یکصد تومان می باشد
یک روت از نوع GET با آدرس /bank/request ایجاد نمایید و کد های زیر را در آن قرار دهید .
try {
$gateway = \Gateway::make('mellat');
$gateway->setCallback(url('/bank/response')); // 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();
}
و سپس روت با مسیر /bank/response و از نوع 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();
}