dfridrich/qr-platba

PHP 生成 QR 支付和 QR 发票。

v2.0.2 2022-08-31 15:52 UTC

This package is auto-updated.

Last update: 2024-08-29 04:36:56 UTC


README

Latest Stable Version Total Downloads Build Status Coverage Status

QR Platba 2

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 发票扫描

QR 支付(PNG)

QR 支付(EUR)(PNG)

QR 支付(SVG)

QR 支付和说明(PNG)

QR 支付和说明(EUR)(PNG)

QR 支付和说明(SVG)

QR 支付+F 和说明(PNG)

QR 支付+F 和说明(EUR)(PNG)

QR 支付+F 和说明(SVG)

QR 发票无支付(SVG)

还可以使用更简单的写法

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();

链接

贡献

我很高兴接受任何改进建议,无论是 issue 还是 pull request。