larabook/gateway

一个用于连接所有伊朗支付网关的Laravel包

3.5 2021-11-21 07:22 UTC

README

متاسفانه این پکیج دیگر پشتیبانی نمی شود

连接所有伊朗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 larabook/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->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框架进行了更改。