Porovnání platebních bran i jejich implementace

20.12.2016 (aktualizováno 8.10.2017) Pavel Tipy & triky, PHP

V poslední době jsem domlouval i implementoval 2 platební brány, jednu od ČSOB a druhou od GoPay. Jak probíhala komunikace, která brána je výhodnější a co jejich implementace?

Porovnání platebních bran i jejich implementace

Na výběr je velké množství platebních bran, já ale popíšu ty, se kterými mám osobní zkušenost. Je to platební brána od ČSOB (dříve známá jako GP Webpay) a GoPay. Chtěli jsme ještě zkusit platební bránu od Fio banky, ale po přečtení diskuze, jsme to zavrhli. Špatná dokumentace, nepárují se VS a platební brána je na lotyšské doméně. Nic proti Lotyšsku nemám, je tam krásně, ale v zákazníkovi to nevyvolá dobrý dojem. A ve mě taky moc ne.

Aktualizace 8.10.2017 - EET: Obě brány podporují EET, u GoPay osobní zkušenost nemám, ale u ČSOB ano. Popsáno níže.

ComGate - Další brána, kterou implementoval kolega Michal je popsána v samostatném článku.

GoPay

Jako první jsem implementoval GoPay. Zákazník již měl bránu vyřízenou a dokonce dříve nasazenou, takže všechny potřebné kroky již někdo udělal za mě. Dokumentace i nápověda je přehledná a komunikace probíhá pomocí REST API. Dokonce je hotová i implementace hned pro několik platforem a to pro PHP, Python, Android, iOS, Java a C#. Použití není jinak složité a v dokumentaci jsou i pro jednotlivé kódy ukázky.

Komunikace, ceny a platební metody

Chtěli jsme zjistit, jestli by byli v GoPay ochotní nabídnout lepší cenu pro neziskovou organizaci, jestli se nám vůbec vyplatí systém tvořit. Při jakékoli otázce chtěli ale vidět hotový systém, na obrat se vůbec neptali, chtěli vidět systém.

Cena je dána a je pro všechny stejná a nedělají s ní tajnosti. Je to 2,2% z ceny + 3Kč za transakci, v nápovědě poté detailní ceny všech položek. Při větším obratu jde cena dolů. Výhoda GoPay je, že nabízí opravdu velké množství platebních metod, včetně bankovního převodu, online platebních tlačítek a další. Cena za transakce oproti ČSOB je ale vyšší.

Testy před přístupem do ostré verze brány

V první fázi má každý přístup pouze na testovací bránu, kde se využívají speciální karty k nákupu, a žádné peníze se nepřevádějí. Když je brána naimplementována, je potřeba provést několik testů, po jejich schválení je zpřístupněna i ostrá verze brány. Jak jsem zmínil, testy již někdo udělal přede mnou, tudíž nemám s nimi zkušenosti.

GoPay platební brána

ČSOB

U zřízení platební brány na pobočce ČSOB jsem nebyl, poté jsem ale již řešil vše. Problém nastal hned, když jsem chtěl bránu implementovat na web, který ještě nebyl hotový a zveřejněný. Pokud na doméně nic není, ČSOB nezačne zpracovávat smlouvu a nevytvoří POS Merchant ID, které je nutné k vygenerování klíčů pro komunikaci s bránou. Později jsem zjistil, že jsem přehlédl v dokumentaci větu, kdy se dá vytvořit anonymní POS Merchant ID, se kterým bránu můžete implementovat, aniž by byla vůbec podepsána smlouva s ČSOB. Zmínka o anonymním vývoji je na konci velmi dlouhého odstavce na Wiki.

Komunikace a ceny

Při komunikaci s bankou se mi ale nikdo o anonymním vývoji nezmínil. Systém jsem dodělal, nahrál na hosting a informovali banku, ať zpracuje náš požadavek. To už z ČSOB ale se mnou ani kolegy nikdo nekomunikoval. Po více než týdnu se konečně námi začali zabývat. Pak už to bylo hned druhý den, a já začal implementaci.

Ceny jsou opět jasně zveřejněny na webu a odvíjí se podle obratu minulého měsíce. Pohybují se od 1,45% - 2,05% z platby a za jednotlivé transakce se neplatí. K tomu ale musíte vlastnit podnikatelský účet u ČSOB, za jehož vedení se platí. I při nižším obratu ale vyjde výhodněji, než GoPay. Bohužel ale lze platit pouze platební kartou, jiné platební metody ČSOB nepodporuje.

Implementace a dokumentace

I u ČSOB je komunikace s bránou pomocí REST API  a celá dokumentace je na GitHubu včetně příkladů. Na rozdíl od GoPay ale neobsahuje žádnou hotovou implementaci. Pro PHP naštěstí existuje řešení od Slevomatu, které jsem využil. Implementovat celou komunikaci pomocí cURL funkcí by rozhodně trvalo trochu déle. Navíc každý požadavek se musí podepsat pomocí privátního klíče, který je potřeba vygenerovat v systému brány.

ČSOB Platební bránaPodle obrázku to možná nevypadá, ale i brána od ČSOB je responzivní a dobře ovladatelná i na mobilním telefonu.

EET

Brána podporuje EET, vše funguje. Je nutné zajít na pobočku ČSOB a rozšíření povolit. Pak stačí do PosMerchant nahrát certifikát od finanční správy a hotovo. Za aktivaci rozšíření se ale platí jednorázový i měsíční další poplatek. Bohužel implementace od Slevomatu rozšíření nepodporuje, je tedy nutné si knihovnu přetížit.

Vlastní kontrola zaplacených plateb

GoPay obsahuje funkčnost nazývaná notifikace. Pokud uživatel provede platbu, ale zavře prohlížeč dříve, než dojde k přesměrování zpět do e-shopu, brána přesto informuje systém o stavu platby. Toto bohužel v bráně od ČSOB chybí, takže uživatel zaplati, peníze odešly ale eshop o tom neví. Při implementaci je potřeba na to myslet, vytvořit CRON, který bude zkoumat platby a v případě změny stavu je označí jako zaplacené, nebo zrušené. Je to i v issues na Wiki jako požadavek již skoro 2 roky, přesto se nic neděje.

Testy před přístupem do ostré verze brány

Pokud je implementace hotová, stačí projít 4 jednoduché testy. Poté v testovacím POS Merchant potvrdit, že jsou hotové a do pár hodin banka odešle emailem přístupy do ostrého POS Merchantu. Nyní stačí vygenerovat certifikáty a je to. Brána je hotová.

Bonusy

Ač je v některých ohledech řešení od ČSOB tak trochu nedodělané, viz notifikace, umožňují bránu personalizovat a dodat do brány kromě vlastního loga také barvy a více personalizovat dle eshopu. Druhý bonus, pro některé možná důležitý je podpora EET. Nemám osobní zkušenost, ale do brány lze nahrát certifikáty pro EET a teoreticky se implementaci EET může vynechat.

Co bych doporučil?

Jednoznačně to říct nejde. Pokud implementace bude v PHP, kde pro obě brány existuje řešení, ač u ČSOB je od třetí strany, nebude to žádný problém. Pokud není potřeba mnoho platebních metod, může být řešení od ČSOB výhodnější. Pokud ale je potřeba mít více možností plateb, pak je volba pro GoPay.

Nyní s EET a PHP7

Jak jsem psal výše, s EET od GoPay nemám zkušenosti. Ale knihovna od Slevomatu pro ČSOB EET nepodporuje. Navíc u ČSOB se platí další příplatek za EET rozšíření, což se může poté vyplatit brána od GoPay.

V neposlední řadě je problém, že knihovna od Slevomatu je neustále aktualizována pro nejnovější verzi PHP, což pro mnohé může být problém.


Máte zkušenosti s jinými platebními bránami? Podělte se v komentářích, někteří to určitě ocení.

Přidat komentář

Právě odpovídáte na existující komentář. Zrušit

Komentáře

Honza

http://www.mobilni.cz/ 23.10.2017 16:16

Na většině našich eshopů používáme gopay. Většinou bývá výhoda, že už ho kvůli velikému rozšíření podporuje většina CMS nebo jsou na jeho implementaci ke stažení pluginy. ČSOB kvůli menšímu rozšíření nemá podle mě takovou podporu u vývojářů.

Odpovědět

Karel

24.2.2018 09:57

Máme řešení pro eshop od eshop-rychle.cz, s implementací pomohla podpora, jsem zvědavý na výsledky a upřímně se na ně těším :)

Odpovědět

Novinky z blogu

Školení - Bezpečnost PHP aplikací

Letos jsem si nadělil Vánoční dáreček o něco dříve. V termínu 11. - 12. prosince jsem se zúčastnil školení od Michala Špačka na téma Bezpečnost PHP aplikací. A jaké že to...

Další články