saedvaziry/payir

Pay.ir Laravel 包

1.0 2022-05-29 09:25 UTC

This package is auto-updated.

Last update: 2024-08-29 05:24:30 UTC


README

⚠️ 此存储库已归档,不再维护。

请考虑使用 Pay.ir PHP SDK 代替

Pay.ir Laravel

Laravel 包,用于连接 Pay.ir 支付网关

安装

composer require saeedvaziry/payir

发布配置

php artisan vendor:publish --provider="SaeedVaziry\Payir\PayirServiceProvider"

配置

.env 文件中设置您的 API 密钥和重定向 URL

PAYIR_API_KEY=test
PAYIR_REDIRECT=/payir/callback

使用方法

支付控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use SaeedVaziry\Payir\Exceptions\SendException;
use SaeedVaziry\Payir\Exceptions\VerifyException;
use SaeedVaziry\Payir\PayirPG;

class PaymentController extends Controller
{
    public function pay()
    {
        $payir = new PayirPG();
        $payir->amount = 1000; // Required, Amount
        $payir->factorNumber = 'Factor-Number'; // Optional
        $payir->description = 'Some Description'; // Optional
        $payir->mobile = '0912XXXXXXX'; // Optional, If you want to show user's saved card numbers in gateway
        $payir->validCardNumber = '6219860000000000'; // Optional, If you want to limit the payable card

        try {
            $payir->send();

            return redirect($payir->paymentUrl);
        } catch (SendException $e) {
            throw $e;
        }
    }

    public function verify(Request $request)
    {
        $payir = new PayirPG();
        $payir->token = $request->token; // Pay.ir returns this token to your redirect url

        try {
            $verify = $payir->verify(); // returns verify result from pay.ir like (transId, cardNumber, ...)

            dd($verify);
        } catch (VerifyException $e) {
            throw $e;
        }
    }
}

路由

Route::get('/payir/callback', 'PaymentController@verify');

使用外观

config/app.php 中配置 aliases

'Payir' => SaeedVaziry\Payir\Facades\Payir::class

发送

Payir::send($amount, $redirect = null, $factorNumber = null, $mobile = null, $description = null);

发送2

或者,您可以使用外观中的 send2 方法发送可选数据到 Pay.ir

Payir::send2([
  'amount' => 10000,
  'redirect' => 'Your-Redirect-Url', // optional
  'factorNumber' => 'The-Factor-Number', // optional
  'mobile' => 'Mobile-Number', // optional
  'api' => 'API-Key', // optional, If you don't send this the package will read this from env
  'description' => 'Your-Description', // optional
  'validCardNumber' => 'Valid-Card-Number' // optional
]);

验证

Payir::verify($token);

安全性

如果您发现任何与安全性相关的问题,请创建一个问题或给我发邮件(sa.vaziry@gmail.com

许可证

此存储库是开源软件,许可协议为 MIT 许可证。