zaslat/qr-invoice

在PHP中生成QR支付/发票。

v1.1.1 2023-07-03 11:17 UTC

This package is auto-updated.

Last update: 2024-09-03 13:49:03 UTC


README

Latest Stable Version Total Downloads Build Status Coverage Status

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  

Ukázka

也可以使用更简单的写法

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

链接

贡献

我非常欢迎任何改进的建议,无论是通过issue还是pull request的形式。