fitnesshouse/payment-manager

支付系统管理器

v2.1.2 2024-03-01 11:43 UTC

This package is auto-updated.

Last update: 2024-08-30 12:46:26 UTC


README

介绍

Laravel支付系统管理器。

用于Laravel web应用的支付系统连接管理器。

支付系统

特性

安装

Composer

composer require fitnesshouse/payment-manager

或者将以下内容添加到你的 composer.json 文件的要求部分

{
    "require": {
        "fitnesshouse/payment-manager": "^2.*"
    }
}

然后运行命令

composer install

配置

为了基本配置,在 .env 文件中定义以下支付系统默认参数(ПСКБ)

PSCB_MERCHANT_ID=123456789
PSCB_MERCHANT_KEY=111111

同时也可以重写非必需参数。

PSCB_REQUEST_URL=https://oos.pscb.ru/pay/
PSCB_MERCHANT_API_URL=https://oos.pscb.ru/merchantApi/
PSCB_SUCCESS_URL=https://youmarket.com/success
PSCB_FAIL_URL=https://youmarket.com/fail
PSCB_DISPLAY_LANGUAGE=RU

参见支付系统文档

如果你需要更高级的配置属性,运行以下命令

$ php artisan vendor:publish --tag=payment-config

这个命令会创建配置文件 \config\payment.php

默认支付系统在配置文件中设置

// \config\payment.php
return [
    'system' => env('PAYMENT_SYSTEM', 'pscb'),
    
    /*
     * Настройки для ПСКБ
     * https://docs.pscb.ru/oos/index.html
     */
    'pscb' => [
        ...
    ]
]

集成

主要使用

use \Fh\PaymentManager\Facades\Payment;

// Платежная система по умолчанию
$system = Payment::system();

// Платежная система не установленная по умолчанию
$system = Payment::system('pscb');

// Создать запрос и перенаправить клиента в платежную систему для оплаты
$query = $system->createQuery(function (QueryBuilder $builder) {
    $builder->orderId('TEST_123');
    $builder->amount(100.00);
    // ... Другие параметры запроса
});
redirect($query->getPayUrl())

// Запросить параметры платежа
$request = $system->requestHandler()->create('checkPayment', ['orderId' => 'TEST_123'])
$response = $request->send();

创建支付

查询(QueryBuilder)

创建查询

use \Fh\PaymentManager\Facades\Payment;

$query = Payment::query()->create(function (QueryBuilder $builder) {
    $builder->orderId('TEST_123');
    $builder->amount(100.00);
    $builder->description('Тестовый платеж');
    $builder->customer([
        'phone' => '+7(123)-456-78-90',
        'email' => 'test@test.tt'
    ]);
    $builder->successUrl('https://youmarket.com/success');
    $builder->paymentMethod('ac');
});

每个支付系统都实现了一个具有自己创建查询所需方法的 QueryBuilder 接口。

参见支付系统文档

为特定的支付系统创建查询

use \Fh\PaymentManager\Facades\Payment;

$query = Payment::system('pscb')->createQuery(function (QueryBuilder $builder) {
    $builder->orderId('TEST_123');
    $builder->amount(100.00);
    ...
});

获取生成的链接并重定向客户到支付系统进行支付

$payUrl = $query->getPayUrl();
redirect($payUrl);

与支付系统的交互

请求处理器(RequestHandler)

与支付系统(请求/响应)的交互

创建查询

use \Fh\PaymentManager\Facades\Payment;

$requestHandler = Payment::requestHandler()->create('checkPayment', ['orderId' => 'TEST_123']);

为特定的支付系统创建查询

use \Fh\PaymentManager\Facades\Payment;

$requestHandler = Payment::system('pscb')->requestHandler()
                        ->create('checkPayment', ['orderId' => 'TEST_123']);

发送请求并获取响应

$response = $requestHandler->send();