hamraa/lumen-payment

用于连接支付网关的Lumen包

3.3.4 2019-09-15 09:23 UTC

This package is auto-updated.

Last update: 2024-09-17 18:17:50 UTC


README

用于连接支付网关的Lumen包。

通过此包,我们能够通过一个唯一的API连接到所有伊朗银行。

如果您遇到bug问题,请及时告知我们。

可用银行

  1. MELLAT
  2. SADAD (MELLI)
  3. SAMAN
  4. PARSIAN
  5. PASARGAD
  6. ZARINPAL
  7. PAYPAL ()
  8. ASAN PARDAKHT ()
  9. PAY.IR ()(使用:new \Payir())

安装

首先,使用Composer安装此包

composer require hamraa/lumen-payment

复制所需文件

mkdir -p config
cp vendor/hamraa/lumen-payment/config/payment.php config/payment.php
cp vendor/hamraa/lumen-payment/database/migrations/create_payment_transactions_table.php.stub database/migrations/2016_01_01_000000_create_payment_transactions_table.php
cp vendor/hamraa/lumen-payment/database/migrations/create_payment_transactions_status_logs_table.php.stub database/migrations/2016_01_01_000000_create_payment_transactions_status_logs_table.php
cp vendor/hamraa/lumen-payment/resources/views resources/views

然后,在bootstrap/app.php

  • 注册别名
$app->withFacades(true, [
    'Hamraa\Payment\Gateway' => 'Gateway',
]);
  • 注册配置文件
$app->configure('payment');
  • 注册服务提供者
$app->register(\Hamraa\Payment\PaymentServiceProvider::class);

现在,运行您的迁移

php artisan migrate

完成!

使用方法

您可以通过多种方式连接到银行(外观,服务容器)

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

您可以通过以下方式调用网关

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

您可以将MELLAT替换为上述介绍的其他银行名称。

price方法中,您应输入IRR(里亚尔)的价格

并在您的回调中

try { 
       
   $gateway = \Gateway::verify();
   $trackingCode = $gateway->trackingCode();
   $refId = $gateway->refId();
   $cardNumber = $gateway->cardNumber();
   
    // تراکنش با موفقیت سمت بانک تایید گردید
    // در این مرحله عملیات خرید کاربر را تکمیل میکنیم
    
} catch (\Hamraa\Payment\Exceptions\RetryException $e) {

    // تراکنش قبلا سمت بانک تاییده شده است و
    // کاربر احتمالا صفحه را مجددا رفرش کرده است
    // لذا تنها فاکتور خرید قبل را مجدد به کاربر نمایش میدهیم
    
    echo $e->getMessage() . "<br>";
    
} catch (\Exception $e) {

    // نمایش خطای بانک
    echo $e->getMessage();
}

贡献者

此包基于larabook/gateway(laravel的支付包)构建,对Lumen框架进行了一些主要更改,并对一些代码进行了改进。

感谢

特别感谢larabook团队