Skip to content

Larapay is a Laravel package for integrating Iranian payment gateways.

License

Notifications You must be signed in to change notification settings

farayaz/larapay

Repository files navigation

Larapay | لاراپِی

GitHub Repo stars Total Downloads Latest Stable Version License

Larapay is a Laravel package for integrating Iranian payment gateways.

لاراپی یک پکیج لاراول برای اتصال به درگاه‌های پرداختی ایرانی است.

Gateways | درگاه‌ها

Class Name (en) Name (fa) Requirements
AsanPardakht AsanPardakht آسان پرداخت (آپ) username, password, merchant_configuration_id
Azkivam Azkivam ازکی وام merchant_id, api_key
BehPardakht Beh Pardakht Mellat به‌پرداخت ملت terminal_id, username, password, is_credit
Bitpay Bitpay بیت پی api, sandbox
Digipay Digipay دیجی‌پی username, password, client_id, client_secret
FanavaCard FanavaCard فن‌آوا کارت user_id, password
IdPay IdPay آیدی‌پی apiKey, sandbox
IranDargah IranDargah ایران درگاه merchant_id, sandbox
IranKish Iran Kish ایران کیش terminalId, password, acceptorId, pubKey
IsipaymentSamin Isipayment Samin ایزایران ثمین merchant_code, merchant_password, terminal_code, type, number_of_installment
Keepa Keepa - Kipaa کیپا token
MehrIran MehrIran بانک مهر ایران terminal_id, merchant_nid, encrypt_key
NextPay NextPay نکست پی api_key
Omidpay Omidpay - Sayan Card امید پی (سایان کارت) user_id, password
PardakhtNovin Pardakht Novin پرداخت نوین userId, password, terminalId
Payir Pay.ir پی.آی‌آر api
PayPing PayPing پی پینگ token
PEC PEC تجارت الکترونیک پارسیان login_account
PEP PEP پرداخت الکترونیک پاسارگاد username, password, terminal_number
Polam Polam(Poolam) پولام api_key
RefahBeta Refah Beta بانک رفاه بتا client_id , client_secret, api_key, number_of_installments
Sadad Sadad پرداخت الکترونیک سداد (ملی) terminal_id, merchant_id, key
SadadBNPL SadadBNPL پرداخت الکترونیک سداد (ملی) terminal_id, merchant_id, key
Sep Saman Electronic Payment پرداخت الکترونیک سامان (سپ) terminalId
SepehrPay Sepehr Pay پرداخت الکترونیک سپهر (مبنا) terminalId
Shepa Shepa شپا api
SnappPay SnappPay اسنپ‌پی username, password, client_id, client_secret
TejaratBajet Tejarat Bajet بانک تجارت - باجت client_id, client_secret, sandbox
🧪 Test Test تست برای تست
Vandar Vandar وندار api_key
ZarinPal Zarin Pal زرین پال merchant_id
Zibal Zibal زیبال merchant

If you don't find the gateway you want, let us know or contribute to add it


اگر درگاه مورد نظر خود را پیدا نکردید، به ما اطلاع دهید یا در اضافه کردن آن مشارکت کنید

Benefits | مزایا

  • Simple | ساده
  • Flexibility | انعطاف‌پذیری
  • Fee Calculation | محاسبه هزینه تراکنش

Install | نصب

You can install the package via composer:

شما می‌توانید با استفاده از composer پکیج را نصب کنید

composer require farayaz/larapay

Usage | استفاده

To make the payment, 3 steps must be done:

برای انجام پرداخت ۳ مرحله می‌بایست انجام شود:

Step 1: get token | مرحله ۱: دریافت توکن

use Farayaz\Larapay\Exceptions\LarapayException;
use Larapay;

$gatewayClass = 'ZarinPal';
$gatewayConfig = [ // gateway config | تنظیمات درگاه
    'merchant_id' => 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee',
];

$amount = 10000;
$id = 1230; // transaction id | شماره تراکنش
$callbackUrl = route('api.transactions.verify', $id);
$nationalId = '1234567890';
$mobile = '09131234567';

try {
    $result = Larapay::gateway($gatewayClass, $gatewayConfig)
        ->request(
            id: $id,
            amount: $amount,
            callbackUrl: $callbackUrl,
            nationalId: $nationalId,
            mobile: $mobile
        );
} catch (LarapayException $e) {
    throw $e;
}

// store token in db | ذخیره توکن در دیتابیس
$result['token'];
$result['fee'];

Step 2: redirect | مرحله ۲: ریدایرکت

Transfer the user to gateway with the received token:

انتقال کاربر به درگاه با توکن دریافت شده:

try {
    return Larapay::gateway($gatewayClass, $gatewayConfig)
        ->redirect($id, $token, $callbackUrl);
} catch (LarapayException $e) {
    throw $e;
}

Step 3: verify | مرحله ۳: تایید

Checking the payment status after the user returns from the gateway:

بررسی وضعیت پرداخت پس از بازگشت کاربر از درگاه:

$params = $request->all();
try {
    $result = Larapay::gateway($gatewayClass, $gatewayConfig)
        ->verify(
            id: $id,
            amount: $amount,
            token: $token,
            params: $params
        );
} catch (LarapayException $e) {
    // transaction failed | تراکنش ناموفق
    throw $e;
}

// transaction verified | تراکنش موفق
$result['result'];
$result['reference_id'];
$result['tracking_code'];
$result['card'];
$result['fee'];