Push notifikácie
Prenos výsledku platby na pozadí
Push notifikácie slúžia na prenos výsledku platby na pozadí z platobnej brány Comgate na server obchodníka. Táto metóda využíva HTTP požiadavku (webhook) na definovanú adresu (endpoint), ktorá upozorní na zmenu stavu platby, napríklad pri úspešnom dokončení, autorizácii, expirácii alebo zrušení platby.
Bezpečné overenie stavu platby
Skutočný stav platby je odporúčané vždy overiť prostredníctvom volania API metódy /status/. Toto overenie zaručuje spoľahlivosť a bezpečnosť, pretože informácie prijaté push notifikáciou nemusia vždy presne odrážať finálny stav platby.
Nastavenie endpointu pre push notifikácie
Adresu, na ktorú majú byť push notifikácie zasielané, je možné nastaviť v klientskom portáli. Odporúča sa nastaviť adresu, ktorá podporuje HTTPS, aby bola zabezpečená bezpečnosť komunikácie.
Parametre push notifikácie
Výsledok platby je predávaný ako HTTP POST požiadavka s nasledujúcimi parametrami:
Parameter | Typ | Povinný | Popis |
---|---|---|---|
transId | string | A | Unikátne ID transakcie |
merchant | string | A | Identifikátor e-shopu v systéme Comgate |
test | boolean | A | true pre testovaciu platbu, false pre produkčnú |
price | integer | A | Cena za produkt v halieroch alebo centoch |
curr | string | A | Kód meny podľa ISO 4217 |
label | string | A | Krátky popis produktu (1-16 znakov) |
refId | string | A | Referencia platby (napr. variabilný symbol alebo číslo objednávky) |
payerId | string | N | Identifikátor platcu v systéme e-shopu |
payerName | string | N | Názov účtu platcu |
payerAcc | string | N | Číslo účtu platcu |
method | string | N | Použitá metóda platby |
account | string | N | Identifikátor bankového účtu e-shopu |
string | A | Kontaktný e-mail platcu | |
phone | string | N | Kontaktný telefón platcu |
name | string | N | Identifikátor produktu na vyhľadávanie v štatistikách |
secret | string | A | Bezpečnostný kľúč pre komunikáciu |
status | string | A | Aktuálny stav transakcie (PAID, CANCELLED, AUTHORIZED) |
fee | string | N | Poplatok za transakciu (ak je nastavený) |
fullName | string | A | Meno a priezvisko platcu |
billingAddrCity | string | N | Fakturačná adresa - mesto |
billingAddrStreet | string | N | Fakturačná adresa - ulica |
billingAddrPostalCode | string | N | Fakturačná adresa - PSČ |
billingAddrCountry | string | N | Fakturačná adresa - krajina (ISO 3166 alpha-2) |
delivery | string | N | Spôsob doručenia (HOME_DELIVERY, PICKUP, ELECTRONIC_DELIVERY) |
homeDeliveryCity | string | N | Doručovacia adresa - mesto |
homeDeliveryStreet | string | N | Doručovacia adresa - ulica |
homeDeliveryPostalCode | string | N | Doručovacia adresa - PSČ |
homeDeliveryCountry | string | N | Doručovacia adresa - krajina (ISO 3166 alpha-2) |
category | string | N | Kategória produktu (PHYSICAL_GOODS_ONLY, OTHER) |
appliedFee | integer | N | Čiastka prirážky za neregulované typy kariet |
appliedFeeType | string | N | Typ prirážky (EU_UNREGULATED, NON_EU_BUSINESS, NON_EU_CONSUMER, EU_CONSUMER) |
Výsledky predané cez e-mailovú notifikáciu alebo presmerovaním v URL sa neodporúča považovať za úplne dôveryhodné, keďže tieto metódy môžu byť náchylné na manipuláciu. Skutočný stav platby je odporúčané vždy overiť prostredníctvom volania API metódy /status/sk spolu s obdržaným transId.
Parametre odpovedí
Parameter | Typ | Povinný | Popis |
---|---|---|---|
code | integer | A | Návratový kód metódy a popis chyby: systém očakáva HTTP kód 200, ak bol výsledok prijatý úspešne |
Push notifikácie očakávajú potvrdenie prijatia formou HTTP kódu 200. V opačnom prípade je notifikácia opakovane zasielaná (až 1000 pokusov). Ak ani po opakovaných pokusoch nedôjde k úspešnému doručeniu, je vygenerovaná chybová správa a odoslaná na kontaktný e-mail obchodníka.
Tip: Ak nie je potvrdené prijatie notifikácie, uistite sa, že endpoint vracia kód 200. Môžete nastaviť e-mail pre zasielanie chýb v sekcii Integrácia v klientskom portáli, kde môžete definovať viac e-mailov oddelených bodkočiarkou.
Príklad prenosu výsledku platby na pozadí – HTTP požiadavka pomocou cURL
curl -X POST -i --data "merchant=merchant_com&test=false&price=10000&curr=CZK&label=Beatles%20-%20Help&refId=2010102600&method=CARD&email=info%40customer.com&phone=%2B420123456789&transId=AB12-EF34-IJ56&secret=ZXhhbXBsZS5jb206QUJDeHl6&status=PAID" https://example.com/handler.php
Príklad prenosu výsledku platby na pozadí – HTTP odpoveď
HTTP/1.1 200 OK
content-type: application/x-www-form-urlencoded; charset=UTF-8
Komunikácia medzi systémom Klienta a serverom platobnej brány je zabezpečená pomocou hesla a IP whitelistu. Prístup musí byť povolený iba z IP adresy servera platobnej brány. Rozsahy IP adries sú definované v sekcii Zabezpecenie. Je povinné používať protokol HTTPS, ktorý znemožňuje odhalenie hesla pri prípadnom odpočúvaní komunikácie. Heslo je predávané ako POST parameter (nie GET parameter) preto, aby sa neukladalo v logu komunikácie webového servera.
E-shop na svojej strane zaistí, že tovar (služba) poskytnutý v rámci zaplatenej transakcie (identifikovanej pomocou unikátneho transaction ID) bude vydaný Platcovi iba raz (aj pri opakovanom prenose výsledku tej istej platby na server Klienta).
