arastu/gateway

此包已被弃用且不再维护。未建议替代包。

一个用于通过一个唯一的API连接到所有伊朗银行和Paypal的Laravel包。

1.0.35 2021-12-26 11:58 UTC

README

使用本包,我们可以通过一个唯一的API连接到所有伊朗银行和Paypal。

(本包现在兼容Laravel的4.*和5.*版本)

一旦您遇到错误问题,请告知我们。

可用银行

  1. MELLAT
  2. SADAD (MELLI)
  3. SAMAN
  4. PARSIAN
  5. PASARGAD
  6. ZARINPAL
  7. PAYPAL
  8. ASAN PARDAKHT(根据新文件更新)
  9. PAY.IR(使用:new \Payir())
  10. YEKPAY(

安装:

在您的终端运行以下语句

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

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

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

如果您对开发此包感兴趣,可以通过以下方式帮助我们

  1. 改进文档。
  2. 报告问题或错误。
  3. 在编写代码和其他银行模块方面进行合作。

此包基于PoolPort扩展,但我们已经更改了一些功能并进行了改进。