dfridrich / qr-platba
PHP 生成 QR 支付和 QR 发票。
v2.0.2
2022-08-31 15:52 UTC
Requires
- php: >=7.4.0
- ext-mbstring: *
- endroid/qr-code: ^4
- jschaedl/iban-validation: ^1.4
Requires (Dev)
- fpdf/fpdf: ^1.84
- phpunit/phpunit: ^9
README
PHP QR 支付生成库。QR 支付简化了最终用户的支付命令,因为它包含了所有必要的支付信息,只需扫描即可。现在可以使用其他货币而不是 CZK,只需使用 setCurrenty($currency)
方法。
此库允许
- 在
<img>
标签中显示包含 QR 码的图像,该图像在src
中等于 data-uri,因此不需要将生成的图像保存到服务器($qrPlatba->getQRCodeImage()
) - 保存 QR 码图像(
$qrPlatba->saveQRCodeImage()
) - 获取 data-uri(
$qrPlatba->getDataUri()
) - 获取 QrCode 实例(
$qrPlatba->getQRCodeInstance()
)
目前支持以下银行的 QRPlatba:Air Bank、Ceska sporitelna、Ceska zive poistovna、Equa bank、Era、Fio banka、Komerční banka、mBank、Raiffeisenbank、ZUNO。
支持 PHP 7.4 到 8.1。
使用 Composer 安装
composer require "dfridrich/qr-platba:^2"
示例
<?php require __DIR__ . '/vendor/autoload.php'; use Defr\QRPlatba\QRPlatba; $qrPlatba = new QRPlatba(); $qrPlatba->setAccount('12-3456789012/0100') // nastavení č. účtu ->setIBAN('CZ3112000000198742637541') // nastavení č. účtu ->setVariableSymbol('2016001234') ->setMessage('Toto je první QR platba.') ->setConstantSymbol('0308') ->setSpecificSymbol('1234') ->setAmount('1234.56') ->setCurrency('CZK') // Výchozí je CZK, lze zadat jakýkoli ISO kód měny ->setDueDate(new \DateTime()); echo $qrPlatba->getQRCodeImage(); // Zobrazí <img> tag s kódem, viz níže
示例(请参考 test/OutputTest.php
),请在银行或 iDoklad 等处将其作为 QR 发票扫描
还可以使用更简单的写法
echo QRPlatba::create('12-3456789012/0100', 987.60) ->setMessage('QR platba je parádní!') ->getQRCodeImage();
对于 IBAN,则为
echo QRPlatba::create('CZ6508000000192000145399', 987.60) ->setMessage('QR platba je parádní!') ->getQRCodeImage();
其他选项
保存到文件
// Uloží png o velikosti 100x100 px $qrPlatba->saveQRCodeImage("qrcode.png", "png", 100); // Uloží svg o velikosti 100x100 px $qrPlatba->saveQRCodeImage("qrcode.svg", "svg", 100); // Generování jen QR Faktury $qrPlatba->setIsOnlyInvoice(true)->setLabel('QR Faktura');
当前可能的格式是
- PNG
- SVG
对于其他格式,需要编写自己的 Writer
显示 data-uri
// data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFAAQMAAAD3XjfpAAAA... echo $qrPlatba->getDataUri();
链接
- QR 支付官方网站 - http://qr-platba.cz/
- QR 发票官方网站 - http://qr-faktura.cz/
- 启发我的仓库 - https://github.com/snoblucha/QRPlatba
- 我从其中添加和修改了 QR 发票实现的分支 - https://github.com/bonami/qr-platba
- Image by storyset on Freepik
贡献
我很高兴接受任何改进建议,无论是 issue 还是 pull request。