mozakar / gateway
一个用于连接所有伊朗支付网关的 Laravel 包,基础包为 mozakar/gateway
2.0.0
2022-09-09 14:27 UTC
Requires
README
بدلیل عدم پشتیبانی تیم Larabook این پکیج بصورت شخصی توسعه میابد
连接到所有伊朗IPG和银行的包。
本包与Laravel版本(4、5、6、7、8、9)兼容
仅支持以下网关
- MELLAT
- SADAD (MELLI)
- SAMAN Token Base (新)
- SAMAN
- PARSIAN
- PASARGAD(新)
- ZARINPAL
- ASAN PARDAKHT
- PAY.IR (使用 'payir' 调用)
- Irankish (新 - 使用 'irankish' 调用)
- Nikan (PASARGAD) (新)
- PayPing (新)
- Vandar (新)
安装:
请遵循以下命令进行安装
步骤 1)
使用 "composer require" 安装
composer require mozakar/gateway
或
在 composer.json 文件中添加
"require": { ... "mozakar/gateway" : "dev-master" }, "repositories": [ { "type": "git", "url": "https://github.com/mozakar/gateway.git" } ],
步骤 2)
تغییرات زیر را در فایل config/app.php اعمال نمایید:
注意:对于Laravel 6以后的版本,此步骤不需要执行
'providers' => [ ... Mozakar\Gateway\GatewayServiceProvider::class, // <-- add this line at the end of provider array ], 'aliases' => [ ... 'Gateway' => Mozakar\Gateway\Gateway::class, // <-- add this line at the end of aliases array ]
步骤 3) - 转移所需文件
对于Laravel 5
php artisan vendor:publish --provider=Mozakar\Gateway\GatewayServiceProviderLaravel5对于Laravel 6以后的版本
php artisan vendor:publish // then choose : GatewayServiceProviderLaravel6 // then choose : GatewayServiceProviderLaravel7 // then choose : GatewayServiceProviderLaravel8 // then choose : GatewayServiceProviderLaravel9
步骤 4) - 创建表格
php artisan migrate
步骤 5)
安装完成。现在请打开 app/ 目录下的 gateway.php 文件,并输入您所需银行网关的相关设置。
现在您可以使用以下任一方法连接到银行API(根据您的选择)。
- Gateway::make(new Mellat())
- Gateway::make('mellat')
- Gateway::mellat()
- app('gateway')->make(new Mellat());
- app('gateway')->mellat();
示例:连接到银行MELLAT(请求令牌并将用户传输到银行网关)注意:price方法的值以里亚尔为单位,相当于一百泰铢
创建一个GET类型的路由,地址为 /bank/request,并在其中放置以下代码。
try { $gateway = \Gateway::make('mellat'); $gateway->setCallback(url('/bank/response')); // You can also change the callback $gateway->price(1000) // setFactorNumber("13131313") // optional - just for vandar ->ready(); $refId = $gateway->refId(); // شماره ارجاع بانک $transID = $gateway->transactionId(); // شماره تراکنش // در اینجا // شماره تراکنش بانک را با توجه به نوع ساختار دیتابیس تان // در جداول مورد نیاز و بسته به نیاز سیستم تان // ذخیره کنید . return $gateway->redirect(); } catch (\Exception $e) { echo $e->getMessage(); }
然后创建一个POST类型的路由,地址为 /bank/response,并在其中放置以下代码。
try { $gateway = \Gateway::verify(); $trackingCode = $gateway->trackingCode(); $refId = $gateway->refId(); $cardNumber = $gateway->cardNumber(); // تراکنش با موفقیت سمت بانک تایید گردید // در این مرحله عملیات خرید کاربر را تکمیل میکنیم } catch (\Mozakar\Gateway\Exceptions\RetryException $e) { // تراکنش قبلا سمت بانک تاییده شده است و // کاربر احتمالا صفحه را مجددا رفرش کرده است // لذا تنها فاکتور خرید قبل را مجدد به کاربر نمایش میدهیم echo $e->getMessage() . "<br>"; } catch (\Exception $e) { // نمایش خطای بانک echo $e->getMessage(); }
从Vandar进行账单结算
try { $track_id = Str::random(32); $payment_number = rand(1000000000, 9999999999); $gateway = \Gateway::vandar(); //ibanRequest($amount, $iban, $track_id, $payment_number, $is_instant = true) $response = $gateway->ibanRequest($amount, $sheba_number, $track_id, $payment_number, true); if($response){ $response = ['success' => true, 'tx' => $track_id, 'data' => $response]; return $response; } }catch (\Exception $e) { // نمایش خطای بانک echo $e->getMessage(); }
在Vandar中显示余额和交易列表
try { $gateway = \Gateway::vandar(); //نمایش موجودی $balance = $gateway->balance(); //نمایش تراکنش ها $transactions = $gateway->transactions(); }catch (\Exception $e) { // نمایش خطای بانک echo $e->getMessage(); }
如果您愿意参与开发
- 开发包的文档。
- 报告错误和问题。
- 为该包编写其他银行的模块。
本包源自名为 poolport 的其他包,但其中一些操作已根据Laravel框架进行了修改。