Umožňuje vytvárať jednoduché QR kódy pre slovenské platby Pay by square. Len prekopírujete na PHP hosting a máte hotovo :)
Vyskúšajte interaktívne demo.
Na výber sú dve možnosti inštalácie:
- prekopírovanie na PHP hosting
- alebo ako mikroslužba cez Docker
Bez použitia dockera php skript funguje len na linuxových serveroch, pretože volá /usr/bin/xz. Taktiež PHP musí mať nainštalovaný modul gd. Testované s PHP 8 na Webhostingu Websupport.sk.
- nakopírujte obsah tohto repozitára na váš hosting
- hlavny súbor je
qr.php, ktorý je potrebné zavolať s parametrami (viac nižšie)
git clone https://github.com/slatinsky/php-pay-by-square
cd php-pay-by-square
docker build -t square .
docker run -p 8080:80 -d --name square-instance squareSlužba je dostupná na localhoste na porte 8080 - http://localhost:8080/qr.php?....
Zmeňte port 8080 v príkaze podľa potreby.
HTML:
<!DOCTYPE html>
<html lang="sk">
<head>
<link rel="stylesheet" href="https://qr.example.com/assets/qr.css">
</head>
<body>
<img class="qr-image" src="https://qr.example.com/qr.php?price=5.01¬e=pre%20jozka&iban=SK7700000000000000000000&swift=CEKOSKBX&vs=00000002&ss=2022&cs=0000&recipient=jozko%20mrkvicka&pixelsize=1&pixelpadding=0" alt="">
<div class="qr-bottom-txt">
<div><span class="qr-txt-blue">PAY</span> <span class="qr-txt-gray">by square</span></div>
<img class="qr-card" src="https://qr.example.com/assets/card.svg" alt="">
</div>
</body>
</html>| Parameter | Popis | Ukážka | Obmedzenie |
|---|---|---|---|
| price | Cena | 5.01 | Povinný, desatinná bodka, max 2 desatinné miesta |
| note | Poznámka k platbe | pre jozka | Max 140 znakov |
| recipient | Názov príjemcu | jozko mrkvicka | Povinný, max 70 znakov |
| iban | Číslo účtu (IBAN) | SK7700000000000000000000 | Povinný, veľké písmená, bez medzier, max 34 znakov |
| swift | Bankový identifikačný kód (BIC/SWIFT) | CEKOSKBX | Povinný, veľké písmená, 8 alebo 11 znakov |
| vs | Variabilný symbol | 00000002 | Len čísla, max 10 znakov |
| ss | Špecifický symbol | 2022 | Len čísla, max 10 znakov |
| cs | Konštantný symbol | 0000 | Len čísla, max 4 znaky |
| pixelsize | Veľkosť obrázka | 1 | Číslo v rozsahu 1-50 |
| pixelpadding | Odsadenie obrázka | 0 | Číslo v rozsahu 0-50 |
Obmedzenia vychádzajú zo špecifikácie PAY by square 1.2.0. Ak parameter chýba alebo obmedzenie nespĺňa, qr.php namiesto obrázka vráti textovú chybu, napr. recipient is missing.
Dátum splatnosti je automaticky nastavený na aktuálny deň.
Ukážkový QR kód je na začiatku tohto README.md súboru.
pixelsize a pixelpadding nepotrebujete meniť ak QR kód zobrazujete v prehliadači. image-rendering: crisp-edges v css zabezpečí, že obrázok bude ostrý aj pri zväčšení a odsadenie je vyriešené pomocou padding-u v css.
Testy spustia aplikáciu v Dockeri, vygenerované QR kódy dekódujú a obsah overia voči špecifikácii PAY by square. Potrebujete len Docker:
tests/run.shNejde načítať QR kód v internet bankingu
- Ukážkový QR kód nefunguje pre každú banku, pretože niektoré overujú existenciu IBANu (a ukážkový IBAN SK7700000000000000000000 neexistuje). Vložte svoj vlastný IBAN a vyskúšajte znova :)
Nefunguje pre české účty
- v Česku sa používa iná špecifikácia pay by square, teda toto riešenie je možné použiť výlučne len pre slovenské účty.
- Ján Fečík za implementáciu algoritmu generovania reťazcov Pay by square v PHP, z ktorého bol tento projekt forknutý
- Alexandre Assouad (t0k4rt) za konverziu reťazcov na QR obrázky
GNU General Public License v3.0
Pull requesty sú vítané :)
Ak sa vám projekt páči, ohodnoťte ho hviezdičkou ⭐️
