Ověření stavu platby v systému platební brány prostřednictvím REST API

Pomocí dotazu na stav platby je možné se kdykoliv dotázat na stav libovolné platby náležející obchodnímu účtu obchodníka.

Tip GoPay:
Dotaz na stav platby je nutné autorizovat pomocí tokenu. Token pro dotaz na stav platby je nutné založit ve scope=payment-all. Více informací o procesu získání tokenu naleznete v článku popisujícím postup integrace platební brány

Dotaz na stav platby je možné provádět pomocí požadavku na API. Odpovědí na požadavek je objekt popisující parametry a stav dané platby. Platba může nabývat různých stavů, viz dokumentace REST API.

Kdy provádět dotaz na stav platby

Dotaz na stav platby doporučujeme standardně provádět ve dvou situacích.

První situací je návrat na prodejní místo (return_url) po provedení platby. Jako součást přesměrování na return_url prodejnímu místu v URL adrese předáváme GET parametr ?id=, který obsahuje id platby, ze které probíhá návrat. Pomocí id si dohledáte objednávku v databázi, provedete dotaz na stav platby a podle získaného stavu zobrazíte příslušnou informaci zákazníkovi, případně upravíte stav v databázi.

Druhou situací, kdy je nutné provádět dotaz na stav platby, je po přijetí http notifikace. Kdykoli se na některé platbě daného obchodního účtu změní stav platby (kromě stavu CREATEDPAYMENT_METHOD_CHOSEN), zasíláme asynchronní http notifikaci na notifikační URL předanou v rámci založení platby. Notifikace má stejný formát jako přesměrování na return_url, tedy parametr ?id=<id platby>. Podle id platby je vhodné dohledat si objednávku, ke které platba náleží, provést dotaz na stav platby, porovnat ho se stavem v databázi a případně provést update stavu v databázi.

Poznámka GoPay:

 

Očekávaná hodnota přijetí HTTP notifikace prodejním místem je stav http200. Pokud je ze strany prodejního místa vrácen jakýkoliv jiný stav, považuje systém platební brány HTTP notifikaci za nedoručenou a snaží se ji cyklicky odeslat znovu (v konečném počtu maximálně 20 pokusů o doručení).

 

Dotaz na stav platby může být samozřejmě prováděn v libovolnou dobu dle potřeb prodejního místa, ale pro korektní informace o všech stavech plateb je dostatečné zjišťovat dotaz po návratu na return_url a po vyvolání notification_url.