farshadfahimi/gateway

Laravel 包,用于连接所有伊朗支付网关

3.4.2 2019-11-01 16:53 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(根据您的选择,使用 Facade 或 Service container)。

  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 框架进行了更改。