acharsoft/gateway

用于连接所有伊朗支付网关的 Laravel 扩展包

3.5.1 2020-01-05 07:39 UTC

README

参考包网站: larabook.ir

连接所有伊朗 IPG 和银行的包。

此包与 Laravel 版本 4、5 和 6 兼容

仅支持以下网关

  1. MELLAT
  2. SADAD (MELLI)
  3. SAMAN
  4. PARSIAN
  5. PASARGAD
  6. ZARINPAL
  7. PAYPAL
  8. ASAN PARDAKHT
  9. PAY.IR (使用 'payir' 调用)
  10. Irankish ( - 使用 'irankish' 调用)

安装:

请按照以下步骤进行安装

步骤 1)

composer require acharsoft/gateway

步骤 2)

تغییرات زیر را در فایل  config/app.php اعمال نمایید:

注意:对于 Laravel 6 及以后的版本,此步骤不需要执行

'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
]

步骤 3) - 转移所需文件

对于 Laravel 5

php artisan vendor:publish --provider=Larabookir\Gateway\GatewayServiceProviderLaravel5
对于 Laravel 6 及以后的版本
php artisan vendor:publish 

// then choose : GatewayServiceProviderLaravel6

步骤 4) - 创建表格

php artisan migrate

步骤 5)

安装完成。现在请打开 app 目录中的 gateway.php 文件,并输入您所需的银行网关的设置。

现在,您可以从以下方法中选择一种来连接到银行 API。(外观,服务容器)

  1. Gateway::make(new Mellat())
  2. Gateway::make('mellat')
  3. Gateway::mellat()
  4. app('gateway')->make(new Mellat());
  5. app('gateway')->mellat();

示例:连接到银行 MELLAT(请求令牌并将用户传输到银行网关)注意:方法 price 的值以里亚尔为单位输入,相当于一百泰铢

创建一个 GET 类型的路由,地址为 /bank/request,并在其中放置以下代码。

try {

   $gateway = \Gateway::make('mellat');
   $gateway->setUserId(1); // برای ست کردن یوزر 
   $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();
}

然后创建一个 POST 类型的路由,地址为 /bank/response,并在其中放置以下代码。

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();
}

如果您愿意参与开发

  1. 扩展包文档的开发。
  2. 报告错误和问题。
  3. 为此包编写其他银行模块的合作。

如果您遇到任何 错误问题,请通知我们。

此包从名为 poolport 的包衍生而来,但其中一些操作已根据 Laravel 框架进行了更改