Skip to content

dfridrich/QRPlatba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2e95d15 · Aug 31, 2022

History

69 Commits
Aug 27, 2022
Aug 31, 2022
Aug 28, 2022
Aug 28, 2022
Aug 31, 2022
Aug 28, 2022
Aug 28, 2022
Oct 30, 2017
Jan 4, 2016
Aug 28, 2022
Aug 31, 2022
Jan 4, 2016
Aug 28, 2022
Aug 28, 2022
Aug 27, 2022

Repository files navigation

QR Platba a QR Faktura

Latest Stable Version Total Downloads Build Status Coverage Status

QR Platba 2

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 v src rovnou 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->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.

Podporuje PHP 7.4 až 8.1.

Instalace pomocí Composeru

composer require "dfridrich/qr-platba:^2"

Příklad

<?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  

Ukázky (viz test/OutputTest.php), zkuste si je naskenovat v bankovnictví nebo třeba iDokladu jako QR Fakturu:

QR Platba (PNG):

QR Platba v EUR (PNG):

QR Platba (SVG):

QR Platba a popisek (PNG):

QR Platba a popisek v EUR (PNG):

QR Platba a popisek (SVG):

QR Platba+F a popisek (PNG):

QR Platba+F a popisek v EUR (PNG):

QR Platba+F a popisek (SVG):

QR Faktura bez platby (SVG):

Lze použít i jednodušší zápis:

echo QRPlatba::create('12-3456789012/0100', 987.60)
    ->setMessage('QR platba je parádní!')
    ->getQRCodeImage();

Pro IBAN pak:

echo QRPlatba::create('CZ6508000000192000145399', 987.60)
    ->setMessage('QR platba je parádní!')
    ->getQRCodeImage();

Další možnosti

Uložení do souboru

// 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');

Aktuální možné formáty jsou:

  • PNG
  • SVG

Pro další je potřeba dopsat vlastní Writer

Zobrazení data-uri

// data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFAAQMAAAD3XjfpAAAA...
echo $qrPlatba->getDataUri();

Odkazy

Contributing

Budu rád za každý návrh na vylepšení ať už formou issue nebo pull requestu.