rootpd / qr-platba
在PHP中生成QR支付和QR发票。
3.0.0
2024-01-05 09:45 UTC
Requires
- php: ^8.1
- ext-gd: *
- ext-mbstring: *
- endroid/qr-code: ^5.0
- jschaedl/iban-validation: ^2.3
Requires (Dev)
- fpdf/fpdf: ^1.84
- phpunit/phpunit: ^10
This package is auto-updated.
Last update: 2024-09-05 11:15:08 UTC
README
PHP生成QR支付库。QR支付简化了最终用户的支付命令执行,因为它包含所有必要的数据,只需扫描即可。现在可以使用除CZK以外的其他货币,通过方法setCurrenty($currency)实现。
这个库允许
- 在
<img>标签中显示图片,该图片包含在src中的data-uri QR码,因此不需要将生成的图片保存到服务器($qrPlatba->getQRCodeImage()) - 保存QR码图片(
$qrPlatba->saveQRCodeImage()) - 获取data-uri(
$qrPlatba->getDataUri()) - 获取QrCode实例对象(
$qrPlatba->getQRCodeInstance())
目前支持以下银行的QR支付:Air Bank,Ceska sporitelna,CSOB,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
- 由storyset在Freepik上的图片
贡献
我非常欢迎任何改进的建议,无论是issue还是pull request。







