zaslat / qr-invoice
Generate QR payment/invoice in PHP.
Installs: 3 793
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 48
pkg:composer/zaslat/qr-invoice
Requires
- php: >=7.2
- ext-iconv: *
- chillerlan/php-qrcode: ^4.3.0
Requires (Dev)
- phpunit/phpunit: 4.8.36
README
Knihovna pro generování QR plateb v PHP. QR platba zjednodušuje koncovému uživateli
provedení příkazu k úhradě, protože obsahuje veškeré potřebné údaje, které stačí jen
naskenovat. Nově lze použít i jiné měny než CZK a to pomocí metody setCurrenty($currency).
Tato knihovna umožňuje:
- zobrazení obrázku v
<img>tagu, který obsahuje vsrcrovnou data-uri s QR kódem, takže vygenerovaný obrázek tak není třeba ukládat na server ($qrPlatba->getQRCodeImage()) - uložení obrázku s QR kódem (
$qrPlatba->saveQRCodeImage()) - získání data-uri (
$qrPlatba->getQRCodeInstance()->getDataUri()) - získání instance objektu QrCode (
$qrPlatba->getQRCodeInstance())
QRPlatbu v současné době podporují tyto banky: Air Bank, Česká spořitelna, ČSOB, Equa bank, Era, Fio banka, Komerční banka, mBank, Raiffeisenbank, ZUNO.
Instalace pomocí Composeru
composer require zaslat/qr-invoice
Příklad
<?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
Lze použít i jednodušší zápis:
echo QRInvoice::create('12-3456789012/0100', 987.60) ->setMessage('QR platba je parádní!') ->getQRCodeImage();
Další možnosti
Uložení do souboru
// Uloží png o velikosti 100x100 px $qrInvoice->saveQRCodeImage("qrcode.png", "png", 100); // Uloží svg o velikosti 100x100 px $qrInvoice->saveQRCodeImage("qrcode.svg", "svg", 100);
Aktuální možné formáty jsou:
- Png
- Svg
- Eps
- binární
Pro další je potřeba dopsat vlastní Writter
Zobrazení data-uri
// data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFAAQMAAAD3XjfpAAAA... echo $qrInvoice->getQRCodeInstance()->writeDataUri();
Odkazy
- Dokumentace - http://dfridrich.github.io/QRPlatba/
- Oficiálí web QR Platby - http://qr-platba.cz/
- Repozitář, který mě inspiroval - https://github.com/snoblucha/QRPlatba
Contributing
Budu rád za každý návrh na vylepšení ať už formou issue nebo pull requestu.
