farayaz/larapay

伊朗在线支付网关

v1.13.10 2024-08-04 23:17 UTC

README

GitHub Repo stars Total Downloads Latest Stable Version License

Larapay 是一个用于集成伊朗支付网关的 Laravel 扩展包。

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

网关 | 在门

如果您找不到您想要的网关,请告诉我们或贡献以添加它

如果找不到您需要的网关,请告诉我们或在添加它方面做出贡献

优势 | 优点

  • 简单 | 简单
  • 灵活性 | 灵活性
  • 费用计算 | 费用计算

安装 | 安装

您可以通过 composer 安装此包

您可以使用 composer 安装此包

composer require farayaz/larapay

使用方法 | 使用方法

要进行支付,必须完成以下 3 个步骤

为了进行支付,必须完成以下 3 个步骤

步骤 1:获取令牌 | 步骤 1:获取令牌

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'];

步骤 2:重定向 | 步骤 2:重定向

将用户重定向到带有收到的令牌的网关

将用户重定向到带有收到的令牌的网关

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

步骤 3:验证 | 步骤 3:验证

在用户从网关返回后检查支付状态

在用户从网关返回后检查支付状态

$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'];