Platby

Platby

Provedení platby

1. Inicializace platby - initPayment()

Po autentizaci e-shopu a získání přístupového tokenu proveďte jako další krok inicializaci platby operací POST: /payments/init.

Operace založí požadavek na platbu v bráně a vrátí unikátní idenitifikátor platby paymentId k jejímu dalšímu adresování a dynamickou adresu brány gatewayUrl.

Ref: Platební brána | Sekvenční diagram platby #20, #21

2. Předání řízení do UI brány

Po získání paymentId a gatewayUrl předejte řízení do UI brány.

Otevřete z prohlížeče plátce (zákazníka) gatewayUrl.

Ref: Platební brána | Sekvenční diagram platby #40

3. Sledování stavu platby - getPaymentState()

Pro načtení stavu platby použijte operaci GET: /payments/{paymentId}/state.

Vrátí aktuální stav platby, schválenou částku, čas inicializace platby, případně návratový kód a návratovou zprávu brány pokud jsou k dispozici.

Můžete opakovat načítání stavu platby, dokud platba není v konečném stavu.

V případě, že voláte tuto operaci s větším časovým odstupem od provedení platby, může být schválená částka v remainingAmount potenciálně snížena předchozím částečným stornem (provedeným přes helpdesk). Nemusí tedy vždy odpovídat částce v amount při inicializaci platby.

Ref: Platební brána | Sekvenční diagram platby #50, #51

4. Převzetí řízení zpět z UI brány

Ve vašem e-shopu implementujte podporu metody GET na endpointu returnUrl.

Na adresu z tohoto URL vám platební brána přesměruje prohlížeč plátce (zákazníka) po dokončení nutných operací.

Brána vždycky pošle query parametr paymentId.

Brána pošle merchantData, pokud jste je předali v POST: /payments/init.

Nespoléhejte na to, že toto přesměrování vždy proběhne, protože to nelze zaručit. Ke zjištění stavu platby vždy použijte Sledování stavu platby.

Stornování platby - cancelPayment()

Platbu, u které z jakéhokoliv důvodu neznáte jistě její stav, byste se měli pokusit plně stornovat. Nejlépe s krátkým časovým odstupem umožňujícím případné zotavení z výpadku konektivity nebo funkčnosti brány. Pokusy o storno můžete v případě neúspěchu opakovat, ale vyhněte se nekonečné smyčce. Rozumný počet pokusů o storno je 3, ideálně provedených s progresivně se zvyšujícím časovým intervalem.

Pro stornování platby použijte operaci PUT: /payments/{paymentId}/cancel.

Tato operace je určena k technické reverzaci platby. Nedoporučujeme vystavovat tuto operaci do UI.

Volání storna je časově omezeno na 20 minut po inicializaci platby. Pozdější reklamace plateb řešte přes helpdesk Benefit Management.

Storno je asynchronní operace. Po obdržení odpovědi HTTP 202 Accepted, použijte pro zjištění jeho výsledku Sledování stavu platby.