codemenco / gateway
用于连接所有伊朗支付网关的Laravel包
v1.0
2023-10-18 11:06 UTC
Requires
README
连接到所有伊朗IPG和银行的包。
此包与Laravel版本(4至10)兼容
支持以下网关
- MELLAT
- SADAD (MELLI)
- SAMAN
- PARSIAN
- PASARGAD
- ZARINPAL
- PAYPAL
- ASAN PARDAKHT
- PAY.IR(使用 'payir' 进行调用)
- Irankish(新 - 使用 'irankish' 进行调用)
- Jibit(吉比特支付网关)
- Idpay
- Vandar(Vandar支付网关)
- 即将推出
安装:
按照以下步骤进行安装
步骤 1)
composer require codemenco/gateway
步骤 2)
تغییرات زیر را در فایل config/app.php اعمال نمایید:
注意:对于Laravel 6及以后的版本,此步骤不需要执行
'providers' => [ ... Codemenco\Gateway\GatewayServiceProvider::class, // <-- add this line at the end of provider array ], 'aliases' => [ ... 'Gateway' => Codemenco\Gateway\Gateway::class, // <-- add this line at the end of aliases array ]
步骤 3) - 转移所需文件
Laravel 5
php artisan vendor:publish --provider=Codemenco\Gateway\GatewayServiceProviderLaravel5Laravel 6及以上
php artisan vendor:publish
// then choose : GatewayServiceProviderLaravel6
步骤 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->setCustom(USERID, ORDERID); // You can add some additional datas $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(); }
然后创建一个 POST 类型的路由,路径为 /bank/response,并在其中放置以下代码。
try { $gateway = \Gateway::verify(); $trackingCode = $gateway->trackingCode(); $refId = $gateway->refId(); $cardNumber = $gateway->cardNumber(); // تراکنش با موفقیت سمت بانک تایید گردید // در این مرحله عملیات خرید کاربر را تکمیل میکنیم } catch (\Codemenco\Gateway\Exceptions\RetryException $e) { // تراکنش قبلا سمت بانک تاییده شده است و // کاربر احتمالا صفحه را مجددا رفرش کرده است // لذا تنها فاکتور خرید قبل را مجدد به کاربر نمایش میدهیم echo $e->getMessage() . "<br>"; } catch (\Exception $e) { // نمایش خطای بانک echo $e->getMessage(); }
如果您愿意参与开发
- 开发包文档。
- 报告错误。
- 为此包编写其他银行模块。
此包由名为 poolport 的其他包衍生而来,但其中一些操作已根据Laravel框架进行了更改。