Skip to content

A laravel package for connecting to saderat bank gateway (BSI)

Notifications You must be signed in to change notification settings

larabook/saderat

Repository files navigation

saderat

A laravel package for connecting to saderat bank gateway (BSI)

Please inform us once you've encountered bug or issue .


Installation:

Run below statements in your terminal :

STEP 1 :

composer require larabook/saderat

STEP 2 : Add provider and facade in config/app.php

'providers' => [
  ...
  Larabookir\Saderat\SaderatServiceProvider::class, // <-- add this line at the end of provider array
],


'aliases' => [
  ...
  'Saderat' => Larabookir\Saderat\Facade\Saderat::class, // <-- add this line at the end of aliases array
]

Step 3:
php artisan vendor:publish --provider="Larabookir\Saderat\SaderatServiceProvider"

or:
php artisan vendor:publish --provider=Larabookir\Saderat\SaderatServiceProvider

Configuration file is placed in config/saderat.php right now , open it and enter your banks credential there.

The bellow siniped code sends request to the bank and gets token then redirects user to the bank interface:

try {

  $bank = app('saderat')->make(1000);  // ۱۰۰ تومان
  $bank->setCallbackUrl(url('/path/to/calback/route')); You can also change the callback  

  // در این مرحله شماره سند تولید شده را قبل از ارجاع کاربر به بانک
  // در بانک اطلاعات ذخیره میکنیم

  $invoiceNumber = $bank->getInvoiceNumber();
  return $bank->go();
   
} catch (Exception $e) {

  echo $e->getMessage();
}

and in your callback :

try {
    $data = app('saderat')->verify();
    // تراکنش با موفقیت سمت بانک تایید گردید
    // در این مرحله عملیات خرید کاربر را تکمیل میکنیم
    
    echo "شماره سند : " . $data->invoice_number . "<br>";
    echo "شماره مرجع بانک : " . $data->bank_receipt . "<br>";

} catch (\Larabookir\Saderat\Exceptions\RepetitiveException $e) {
    // تراکنش قبلا سمت بانک تاییده شده است و
    // کاربر احتمالا صفحه را مجددا رفرش کرده است
    // لذا تنها فاکتور خرید قبل را مجدد به کاربر نمایش میدهیم

    echo $e->getMessage() . "<br>";
    echo "شماره سند : " . $e->invoice_number . "<br>";
    echo "شماره مرجع بانک : " . $e->bank_receipt . "<br>";

} catch (\Larabookir\Saderat\Exceptions\BankException $e) {
    // نمایش خطای بانک
    echo $e->getMessage();
}