hosseinizadeh / gateway
一个用于连接所有伊朗银行和PayPal的唯一API的Laravel包。
1.0.39
2024-08-31 10:27 UTC
Requires
- nesbot/carbon: ^1.26.3 || ^2.0
- paypal/rest-api-sdk-php: *
This package is auto-updated.
Last update: 2024-10-01 00:13:45 UTC
README
使用此包,我们能够通过一个唯一的API连接到所有伊朗银行和PayPal。
(此包现在兼容Laravel 4.*和5.*版本)
支持的银行
- MELLAT
- SADAD (MELLI)
- SAMAN
- PARSIAN
- PASARGAD
- ZARINPAL
- PAYPAL
- ASAN PARDAKHT
- PAY.IR(使用方法:new \Payir())
- YEKPAY
- NOVIN (EGHTESADEH NOVIN)(新)
安装:
在您的终端运行以下语句
步骤 1
composer require hosseinizadeh/gateway
步骤 2:在 config/app.php 中添加 provider
和 facade
'providers' => [
...
Hosseinizadeh\Gateway\GatewayServiceProvider::class, // <-- add this line at the end of provider array
],
'aliases' => [
...
'Gateway' => Hosseinizadeh\Gateway\Gateway::class, // <-- add this line at the end of aliases array
]
步骤 3
php artisan vendor:publish --provider=Hosseinizadeh\Gateway\GatewayServiceProvider5
步骤 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 (\Hosseinizadeh\Gateway\Exceptions\RetryException $e) {
// تراکنش قبلا سمت بانک تاییده شده است و
// کاربر احتمالا صفحه را مجددا رفرش کرده است
// لذا تنها فاکتور خرید قبل را مجدد به کاربر نمایش میدهیم
echo $e->getMessage() . "<br>";
} catch (\Exception $e) {
// نمایش خطای بانک
echo $e->getMessage();
}
对于 yekpay,您可以使用如下方式
try {
$gateway = Gateway::yekpay();
/// can check country return true or false
$gateway->checkip(\request()->ip());
/// can get exchange currency
$exchange = $gateway->exchange(978,364);
$gateway->setCallback(route('bank.callback'));
$gateway->setFrom(364);
$gateway->setTo(364);
$gateway->setFname('ftest');
$gateway->setLname('ltest');
$gateway->setEmail('test@gmail.com');
$gateway->setMobile('+44123456789');
$gateway->setAddress('address');
$gateway->setPostalcode('9656789');
$gateway->setCountry('iran');
$gateway->setCity('tehran');
$gateway->setDescription('description');
$gateway->price(10000)->ready(10000);
$refId = $gateway->refId();
$transID = $gateway->transactionId();
$payurl = $gateway->payurl();
return redirect($payurl);
} catch (YekpayException $e) {
$message = $e->getMessage();
dd($message);
}
如果您有兴趣开发此包,可以通过以下方式帮助我们
- 改进文档。
- 报告问题或错误。
- 在编写代码和其他银行模块方面进行合作。
此包基于 PoolPort 扩展,但我们已更改了一些功能并进行了改进。