Mohammadmaghibi / iran-bank-gateway
一个用于连接所有伊朗支付网关的 Laravel 扩展包 - 该包由 Mohammadmaghibi 修改,并从 https://github.com/larabook/gateway 分支而来
dev-master
2019-07-20 08:18 UTC
Requires
This package is auto-updated.
Last update: 2024-09-20 20:00:47 UTC
README
该包由 larabook.ir - github 开发,并增加了包括梅拉特银行的退款请求在内的几个功能。
通过此包,我们可以使用一个独特的 API 连接到所有伊朗银行。
(此包现在兼容 Laravel 的 4.* 和 5.* 版本)
可用银行
- 梅拉特
- 萨达德(梅利)
- 萨曼
- 波斯人
- 帕萨加德
- 扎里帕尔
- 贝宝(新)
- 阿桑帕尔达赫特(新)
- 佩伊尔(新)(使用:new \Payir())
安装:
在您的终端运行以下语句
步骤 1
composer require mohammadnaghibi/iran-bank-gateway:dev-master
步骤 2:在 config/app.php 中添加 provider 和 facade
'providers' => [
...
mohammadnaghibi\Gateway\GatewayServiceProvider::class, // <-- add this line at the end of provider array
],
'aliases' => [
...
'Gateway' => mohammadnaghibi\Gateway\Gateway::class, // <-- add this line at the end of aliases array
]
步骤 3
php artisan vendor:publish --provider=mohammadnaghibi\Gateway\GatewayServiceProvider
步骤 4
php artisan migrate
配置文件位于 config/gateway.php 中,打开它并输入您的银行凭证
您可以通过多种方式连接到银行(外观,服务容器)
try {
$gateway = \Gateway::make(new \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();
}
您可以按以下方式调用网关
- Gateway::make(new Mellat());
- Gateway::mellat();
- app('gateway')>make(new Mellat());
- app('gateway')>mellat();
除了 MELLAT,您还可以输入我们上面介绍的其它银行名称。
在 price
方法中,您应该输入 IRR(里亚尔)的价格
并在您的回调中
try {
$gateway = \Gateway::verify();
$trackingCode = $gateway->trackingCode();
$refId = $gateway->refId();
$cardNumber = $gateway->cardNumber();
// تراکنش با موفقیت سمت بانک تایید گردید
// در این مرحله عملیات خرید کاربر را تکمیل میکنیم
} catch (\mohammadnaghibi\Gateway\Exceptions\RetryException $e) {
// تراکنش قبلا سمت بانک تاییده شده است و
// کاربر احتمالا صفحه را مجددا رفرش کرده است
// لذا تنها فاکتور خرید قبل را مجدد به کاربر نمایش میدهیم
echo $e->getMessage() . "<br>";
} catch (\Exception $e) {
// نمایش خطای بانک
echo $e->getMessage();
}
如果您有兴趣开发此包,您可以通过以下方式帮助我们
- 改进文档。
- 报告问题或错误。
- 在编写代码和其他银行模块方面进行合作。
此包扩展自 PoolPort,但我们已经更改了一些功能并进行了改进。