pk-pro/qr-payment-php

基于 ГОСТ Р 56042-2014 的 PHP QR-码支付生成

dev-master 2023-09-10 21:24 UTC

This package is not auto-updated.

Last update: 2024-09-24 00:24:43 UTC


README

用于生成支付 QR 码(包含银行信息)的库,符合 ГОСТ Р 56042—2014 标准,适用于 PHP 8.1。这些码几乎被所有银行(包括俄罗斯联邦储蓄银行)接受,极大地简化了用户的生活,用户无需手动输入信息。

安装

推荐通过 Composer 安装

$ composer require pk-pro/qr-payment-php

使用

使用示例

<?php

require __DIR__.'/vendor/autoload.php';

use Kily\Payment\QR\Gost;
use Kily\Payment\QR\Exception as QRException;

$g = new Gost();

$g->setThrowExceptions(true); // Бросать исключения (поведение по-умолчанию)
$g->setValidateOnSet(false); // Отключить валидацию при уcтановке значения (поведение по-умолчанию)

var_dump($g->listRequired());
// выводится список обязательных атрибутов
//var_dump($g->listAdditional());
// выводится список дополнительных атрибутов
//var_dump($g->listOther());
// выводится список других атрибутов

$g->Name = 'ИП Богданов Александр Сергеевич';
$g->PersonalAcc = '40802810700020000317';
$g->BankName = 'ОАО АКБ «АВАНГАРД»';
$g->BIC = '044525201';
$g->CorrespAcc = '30101810000000000201';

try {
    $g->validate();

    echo $g->generate();
    // выводит: ST00012|Name=ИП Богданов Александр Сергеевич|PersonalAcc=40802810700020000317|BankName=ОАО АКБ «АВАНГАРД»|BIC=044525201|CorrespAcc=30101810000000000201
    echo $g->render();
    // выводит QR-код в бинарном формате (PNG)
    echo $g->render(false,[
        'imageBase64'=>true,
    ]);
    // выводит изображение в base64 (inline)
    // больше опций здесь: (https://github.com/chillerlan/php-qrcode/wiki/QROptions)
    $g->render("qr.png");
    // сохраняет QR-код в файл
} catch(QRException $e) {
    // something went wrong
    throw $e;
}

待办事项

  • 实现 Aztec 和 DataMatrix 码的生成(符合 ГОСТ 标准)
  • 列出可用的字段列表
  • 添加其他编码(win1251, koi8-r)以减小大小

请给我...一杯咖啡 ☕

您可以扫描使用这个库生成的 QR 码来购买我的咖啡。也许这杯咖啡能帮助改进这个库 😌

Alt text