Autor Zpráva
quatzael
Profil
Hledal jsem na netu, ale nemůžu moc najít nějaké aktuální a fungující řešení pro vygenerování QR kódu s platebními údaji.

Ideální by byla nějaká knihovna v PHP, případně API (spolehlivé, fungující a zdarma).

Jde mi o to, abych mohl v PHP zadat:
1. číslo bankovního účtu (předčíslí, číslo, kód banky)
2. částka k zaplacení
3. variabilní symbol
4. datum splatnosti

a z vygenerovaného QR kódu by se po naskenování v mobilní aplikaci internetového bankovnictví načetly platební údaje ..

A samozřejmě bych to potřeboval vygenerovat jako obrázek (resp. base64)

Máte s tím prosím někdo nějaké zkušenosti?
Keeehi
Profil
quatzael:
Vypadá to jednoduše. Na qr-platba.cz/pro-vyvojare máš vše popsané.

Pro mě byla nejdůležitější ta dokumentace od České bankovní asociace. Z jejich QR kódů uvedených ve specifikaci se dá krásně zjistit, jak to funguje. Nepotřebuješ totiž naštěstí nic speciálního. QR kód je totiž typu TEXT (viz obrázek) a tak ho zvládne generovat jakýkoli generátor QR kódů. Můžeš tedy použít svůj oblíbený. To co dělá to celé kouzlo je obsah samotný. Stačí tedy sestavit zprávu podle definovaného formátu a je to. Tímto směrem bych šel já. Pokud by se ti nechtěl sestavovat platební řetězec a raději bys implementoval API, i to tam mají.

quatzael
Profil
Keeehi:
Díky za odpověď. Ale nejsem si jistý, jestli jsi mě opravdu pochopil, že mi hlavně jde o to vygenerování toho obrázku. Každopádně to sestavení řetězce taky potřebuju. Ale potřebuju se právě dostat až k tomu samotnýmu generování obrázku.

Můžeš tedy použít svůj oblíbený.
To je právě ono, já žádný neznám, tudíž si nemůžu ani vybrat z "oblíbených".

Abych vysvětlil svoji situaci. Já nemám jeden účet, jednu částku a jeden variabilní symbol, že bych si někde otevřel v prohlížeči online nástroj, QR kód si vygeneroval a pak si někde na server nahrál ten obrázek a dál ho používal. Já potřebuju všechno od začátku do konce vytvořit v jednom scriptu.
Kcko
Profil
quatzael:
Google nic? www.google.cz/search?q=php+class+generate+qr+code+image&oq=php+class+generate+qr+code+image&aqs=chrome..69i57j0j69i64l3.3936j0j7&sourceid=chrome&ie=UTF-8
quatzael
Profil
EDIT: což tedy k tomu se dá zřejmě využít to API api.paylibo.com. Myslel jsem, že je ten odkaz nefukční, ale zdá se že funguje..
Máš s tím konkrétně dobrý zkušenosti? Dá se na to spolehnout?


Kcko:
To jsem samozřejmě hledal, ale víš co z toho opravdu funguje?
Lostindream
Profil
Já používám Google Charts: developers.google.com/chart/infographics/docs/qr_codes
Keeehi
Profil
Já bych na to šel odtud: packagist.org/search/?q=qr&orderBys%5B0%5D%5Bsort%5D=downloads&orderBys%5B0%5D%5Border%5D=desc

První tecnickcom/tcpdf je zbytečný kanon na vrabce - obsahuje pro tebe spoustu nepotřebného balastu. Další na seznamu je endroid/qrcode. No a ten vypadá už na první pohled velmi vhodně. Používá ho spousta lidí, má stabilní verze, není to mrtvý projekt, z příkladu použití to vypadá, že půjde velmi jednoduše použít, zároveň se toho dá dost nastavit. Myslím, že je to velmi slušná volba.

Pokud by jsi se v tom vrtal více, tak zjistíš, že má závislost na Bacon/BaconQrCode. Dá se tedy předpokládat, že pro generování qr kódu používá právě tuto knihovnu. Dá se tedy zbavit více závislostí. Problém té knihovny je, že nikde nemá rozsáhlou dokumentaci. Ale co jsem koukal do kódu, tak je celkem dobře napsaný a já osobně bych neměl problém si v něm najít, co a jak použít. Takže já bych volil tuto knihovnu.
quatzael
Profil
Keeehi:
Tak co teda doporučuješ? endroid nebo bacon?
Díval jsem se na ten endroid a vypadá to, že se to musí nějak instalovat. Já ty věci mám na serveru, nemůžu tam spouštět příkazový řádek a s composerem vůbec pracovat neumím..


Lostindream:
A nevadí tady to upozornění?
Warning: This API is deprecated. Please use the actively maintained Google Charts API instead. See our deprecation policy for details.

Vůbec, je bezpečné používat takto API? Nemůže se mi tam do toho requestu někde "po cestě" nabourat hackeři a vracet mi QR kódy s jejich čísly bankovních účtů?
M4n
Profil *
quatzael:
Nemůže se mi tam do toho requestu někde "po cestě" nabourat hackeři a vracet mi QR kódy s jejich čísly bankovních účtů?
Pokud použiješ HTTPS tak ne. Ale Google API pro QR kódy bych už neradil používat, právě kvůli tomu deprecated statutu. Ta služba může zmizet takříkajíc přes noc.

S Bacon/BaconQrCode mám dobrou zkušenost – je to knihovna bez závislostí, s rozumnou velikostí a neodfláklou implementací (což určitě neplatí pro všechny knihovny, co někdy chybují na delších nebo unicode řetězcích).
Keeehi
Profil
quatzael:
Já ty věci mám na serveru, nemůžu tam spouštět příkazový řádek a s composerem vůbec pracovat neumím.
Můžeš si to stáhnout nejdříve k sobě a na server nahraješ jen vybuilděnou verzi.

s composerem vůbec pracovat neumím.
Tak se to nauč. Nic extra složitého to není a pro používání PHP knihoven je to prakticky nezbytné.

Nemůže se mi tam do toho requestu někde "po cestě" nabourat hackeři a vracet mi QR kódy s jejich čísly bankovních účtů?
Možné to je. Základem je, že je použit šifrovaný https protokol. Taky se musí vždy ověřit, že certifikát pochází od důvěryhodné certifikační autority. Pak je tu ještě možnost napadení toho serveru s API. S tím ale ty nic neuděláš. Maximálně si můžeš vybrat takového poskytovatele, u kterého si myslíš, že je nejmenší pravděpodobnost, že by se to stalo.

Tak co teda doporučuješ? endroid nebo bacon?
Jak jsem psal, já bych volil bacon. Jen kvůli chybějící dokumentaci si budeš muset ten kód trochu prolézt a zajistit, jak se používá. Rozhodně bych ale volil nějakou knihovnu než API. Už jen pro to, že nejsi pak na nikom závislý a je to rychlejší (odpadá síťová komunikace).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: