fitnesshouse / payment-manager
支付系统管理器
v2.1.2
2024-03-01 11:43 UTC
Requires
- php: ^7.3|^8.0
- ext-json: *
- ext-openssl: *
- guzzlehttp/guzzle: ^7.2
Requires (Dev)
- orchestra/testbench: ^5.0
- phpunit/phpunit: ^9.3.3
README
介绍
Laravel支付系统管理器。
用于Laravel web应用的支付系统连接管理器。
支付系统
特性
- php ^7.3|^8.0
- Laravel v7.*
安装
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();