Popis komunikace s platební bránou

Komunikace s platební bránou GoPay probíhá přes webové služby. Platby jsou založeny ze serverové strany prodejního místa pomocí webových služeb. Prodejní místo získá identifikátor platby paymentSessionId před samotným provedením/zrušením platby. Tímto je vytvořena unikátní vazba mezi objednávkou a platbou.

Po dokončení platby je provedena on-line kontrola platby prostřednictvím webové služby, která se nachází na adresách:

Komunikace s těmito webovými službami probíhá přes API. Webové služby zajišťují veškeré operace s platbami (vytvoření, ověření stavu, refundace, částečná refundace, atd.).

Princip Komunikace s platební bránou

princip komunikace s platební bránou.png

Průběh platby s využitím úplné integrace je následovný:

  1. Zákazník se pohybuje na prodejním místě. Provádí výběr zboží/služby (plnění košíku).
  2. Poté, co zákazník potvrdí objednávku, je ze strany prodejního místa založena platba. Založení platby je provedeno přes GoPay webovou službu.
  3. Následně je zákazník přesměrován na platební bránu GoPay. Přesměrování je provedeno prodejním místem na dříve založenou platbu v kroku 2. Více o přesměrování na platební bránu naleznete zde.  
  4. Zákazník si na platební bráně zvolí platební metodu, pomocí které bude chtít platbu uhradit.
  5. Zobrazené platební metody jsou ovlivněny parametry předávanými při vytvoření platby. Více informací o založení platby a jejích jednotlivých parametrech naleznete zde.
  6. GoPay platební brána je od poskytovatele platební metody informována, zda byla nebo nebyla platba uhrazena.
  7. Zákazník je přesměrován zpět na prodejní místo. V případě online plateb dostává GoPay platební brána informaci o provedení platby okamžitě a zákazník je přesměrován dle výsledku na successURL nebo failedURL. Pro případ plateb formou offline metod může zákazník přejít na stranu prodejního místa prostřednictvím successURL, aniž by byla platba dokončena.
  8. Po přesměrování zpět na prodejní místo je ze strany prodejního místa provedeno volání na stav platby. Na základě získaného stavu platby je nutné, aby byl stav platby zákazníkovi vhodně prezentován.
  9. HTTP notifikace o změně stavu platby zajišťuje bezpečné doručení informace o změně stavu platby. Doručení HTTP notifikace je provedeno do 15 sekund od provedení/zrušení/vypršení životnosti platby. Notifikace není nositelem informace o stavu platby. Je to pouze upozornění na to, že se stav platby změnil.
  10. Po přijetí notifikace je ze strany prodejního místa provedeno volání na stav platby. Volání se provádí skrze GoPay webovou službu. Pro správné získání informace o stavu plateb je nutné notifikace vždy zpracovávat. Notifikace je možné doručovat vícero způsoby. Více informací o jednotlivých variantách notifikací a jejich zpracování naleznete níže.

 

URL pro komunikaci s platební bránou

Pro komunikaci s platební bránou se využívá dvojice URL adres. Pro správu plateb je to webová služba, se kterou se komunikuje prostřednictvím API. Ta se nachází na adresách:

  • Produkční webová služba - https://gate.gopay.cz/axis/EPaymentServiceV2?wsdl
  • Testovací webová služba - https://gw.sandbox.gopay.com/axis/EPaymentServiceV2?wsdl​

Pro samotné provedení platby je využita URL platební brány, na kterou se provádí přesměrování.

Platební brána se nachází na adresách:

  • Produkční platební brána - https://gate.gopay.cz/gw/pay-full-v2​
  • Testovací platební brána - https://gw.sandbox.gopay.com/gw/pay-full-v2

Ověření stavu platby

Ověření stavu platby je prováděno při zpětném přesměrování z GoPay na prodejní místo, nebo po příchodu HTTP notifikace. URL přesměrování zpět na prodejní místo, ale i HTTP notifikace jsou doplněny shodnými parametry viz. Identita platby (paymentIdentity)).

Název parametru Popis parametru Povinný
paymentSessionId Identifikace platby v systému GoPay. Celé číslo. ANO
targetGoId

Identifikace prodejního místa v rámci GoPay. Celočíselný identifikátor - definován během integrace prodejního místa.

ANO
orderNumber Identifikace objednávky v rámci prodejního místa. Alfanumerické označení objednávky max. 128 znaků. ANO
parentPaymentSessionId Identifikace rodičovské platby. Používané u opakovaných plateb. ANO
encryptedSignature Podpis platebního příkazu. Sestavení řetězce pro podpis, viz níže. ANO
p1 - p4 Volitelný parametr (max. 512 znaků). NE

Řetězec pro podpis

Šifrovaný podpis je sestaven z vlastností Identity platby. Podpis je šifrován tajným klíčem označeným jako secureKey, který je předáván v rámci integrace prodejního místa.

Řetězec pro sestavení podpisu

targetGoId+'|'+paymentSessionId+'|'+parentPaymentSessionId+'|'+orderNumber+'|'+secureKey

Na successURL je zákazník přesměrován po provedení platby, nebo po úspěšném založení platby vybranou platební metodou (offline metody a internetová bankovnictví v nočních hodinách). Z toho důvodu je nutné provádět kontrolu stavu platby prostřednictvím GoPay služby  - Stav platby.

Na failedURL je zákazník přesměrován, pokud je provedeno zrušení platby. I v tomto případě lze provádět kontrolu dotazem na stav platby. Zpracování HTTP notifikace zajišťuje doručení informace o provedení platby i v situaci, kdy na straně zákazníka dojde k přerušení připojení k internetu, atp. Z tohoto důvodu je zpracování notifikace povinnou součástí úplné integrace.

Vzorové implementace zpracování návratu na prodejní místo naleznete v přiložených zdrojových kódech.

Prostředí Implementace ověření stavu platby
PHP Kontrola parametrů přesměrování a stavu platby naleznete ve skriptu callback.php. Kontrola na základě příchozí notifikace je obsažena ve skriptu notify.php.
JAVA Kontrola po přesměrování zpět na platební bránu, nebo po příchodu HTTP notifikace je připravena ve třídě SimplePayment, metoda successUrl.
ASP.NET Kontrola parametrů přesměrování a stavu platby naleznete ve třídě Callback, metoda Call. Kontrola na základě příchozí notifikace je obsažena ve třídě Notify, metoda Notification.
Python Kontrola po přesměrování zpět na platební bránu, nebo po příchodu HTTP notifikace je připravena ve skriptu SimplePayment.py.
RUBY Kontrola po přesměrování zpět na platební bránu, nebo po příchodu HTTP notifikace je připravena ve skriptu SimplePayment.rb.

Pomohl Vám tento článek?:

Nenašli jste, co hledáte?

Kontaktujte pracovníka podpory