zaslat / qr-invoice
在PHP中生成QR支付/发票。
v1.1.1
2023-07-03 11:17 UTC
Requires
- php: >=7.2
- ext-iconv: *
- chillerlan/php-qrcode: ^4.3.0
Requires (Dev)
- phpunit/phpunit: 4.8.36
README
PHP生成QR支付的库。QR支付简化了最终用户执行支付命令的过程,因为它包含所有必要的支付信息,只需扫描即可。现在可以使用其他货币,而不是仅限于CZK,通过使用方法setCurrenty($currency)
。
此库允许
- 在
<img>
标签中显示图片,该图片的src
属性包含QR码的数据-uri,因此不需要将生成的图片存储在服务器上($qrPlatba->getQRCodeImage()
) - 保存QR码图片(
$qrPlatba->saveQRCodeImage()
) - 获取data-uri(
$qrPlatba->getQRCodeInstance()->getDataUri()
) - 获取QrCode对象实例(
$qrPlatba->getQRCodeInstance()
)
目前支持以下银行的QRPlatbu:Air Bank,Česká spořitelna,ČSOB,Equa bank,Era,Fio banka,Komerční banka,mBank,Raiffeisenbank,ZUNO。
使用Composer安装
composer require zaslat/qr-invoice
示例
<?php require __DIR__ . '/vendor/autoload.php'; use Defr\QRPlatba\QRInvoice; $qrInvoice = new QRInvoice(); $qrInvoice->setAccountIBAN('Valid-IBAN-account') ->setGenerateQRInvoice(true) // Generuje QR kód pro QR Platbu i QR Fakturu ->setVariableSymbol('2016001234') ->setMessage('Toto je první QR platba.') ->setSpecificSymbol('0308') ->setSpecificSymbol('1234') ->setCurrency('CZK') // Výchozí je CZK, lze zadat jakýkoli ISO kód měny ->setDueDate(new \DateTime()) ->setSvgDimension(190); // Velikost <svg> objektu. echo $qrInvoice->getQRCodeImage(); // Zobrazí <img> tag s kódem, viz níže
也可以使用更简单的写法
echo QRInvoice::create('12-3456789012/0100', 987.60) ->setMessage('QR platba je parádní!') ->getQRCodeImage();
其他选项
保存到文件
// Uloží png o velikosti 100x100 px $qrInvoice->saveQRCodeImage("qrcode.png", "png", 100); // Uloží svg o velikosti 100x100 px $qrInvoice->saveQRCodeImage("qrcode.svg", "svg", 100);
当前可能的格式是
- Png
- Svg
- Eps
- 二进制
对于其他格式,需要编写自己的Writer
显示data-uri
// data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFAAQMAAAD3XjfpAAAA... echo $qrInvoice->getQRCodeInstance()->writeDataUri();
链接
- 文档 - http://dfridrich.github.io/QRPlatba/
- 官方QR支付网站 - http://qr-platba.cz/
- 启发我的仓库 - https://github.com/snoblucha/QRPlatba
贡献
我非常欢迎任何改进的建议,无论是通过issue还是pull request的形式。