Metody pro OneClick platbu - csob/platebnibrana GitHub Wiki
Metoda | Popis |
---|---|
oneclick/echo | Ověření stavu OneClick šablony. |
oneclick/init | Založení OneClick platby na platební bráně. |
oneclick/process | Spuštění zpracování OneClick platby. |
Následující schéma zachycuje průběh OneClick platby v případě, že je platba prováděna za přítomnosti zákazníka:
Zákazník platí na e-shopu svou objednávku. Obchodník zobrazuje zákazníkovi možnost zaplatit pomocí Oneclick platby na základě dříve vytvořené Oneclick šablony, přičemž volitelně může ověřit platnost šablony pomocí operace oneclick/echo
(0).
Poté, co zákazník zvolí OneClick platbu, e-shop incializuje na platební bráně platbu pomocí operace oneclick/init
, pomocí parametru clientInitiated
nastaveným na hodnotu true
indikuje, že OneClick platba probíhá za přítomnosti zákazníka. V odpovědi získává identifikaci platby payId
(1).
Na rozdíl od standardní platby kartou na bráně zůstává zákazník při OneClick platbě na e-shopu obchodníka, potřebné údaje pro platbu (číslo karty a expirace) se načítají z OneClick šablony v rámci zpracování platby na platební bráně.
Platební brána provádí u některých plateb tzv. otisk zařízení (2). Jedná se o odeslání údajů z prohlížeče zákazníka vydavateli karty, který tato data následně použije pro následné ověření platby. Obchodník spouští další zpracování voláním operace oneclick/process
(3). Otisk zařízení je obchodník povinnen provést na straně e-shopu v rámci 1px iframe za pomocí parametrů, které dostal v odpovědi na volání oneclick/init
.
U některých plateb je v rámci ověření vyžadováno od zákazníka potvrzení platby (5). Stejně jako u otisku zařízení i potvrzení platby je obchodník povinnen provést na straně e-shopu, otevírá iframe nebo provádí přesměrování do top.location na základě parametrů přijatých z platební brány.
Obchodník průběžně zjišťuje stav platby pomocí volání operace payment/status
(4). V případě, že je vyžadováno potvrzení platby, je po dokončení ověření a autorizaci platby zákazník přesměrován pomocí returnMethod
na returnUrl
e-shopu. Po dokončení ověření a dokončení autorizace platby zobrazuje obchodník zákazníkovi výsledek platby.
V případě, že OneClick platba je prováděna bez přítomnosti zákazníka, provolá obchodník výše uvedené operace oneclick/echo
, oneclick/init
(s parametrem clientInitiated
nastaveným na hodnotu false
) a oneclick/process
. V tomto případě se nevyžaduje provedení otisku ani provedení potvrzení platby. Obchodník zjišťuje stav platby pomocí volání operace payment/status
.
Tučně uvedené parametry jsou pro volání povinné.
POST https://api.platebnibrana.csob.cz/api/v1.9/oneclick/echo
Operace ověří stav OneClick šablony. Zjištění stavu šablony doporučujeme použít před nabídnutím OneClick platby v košíku, případně při zobrazení uložených karet v zákaznickém účtu (více informací v obecném popisu OneClick platby). Pro ověření stavu šablony použijte tuto operaci, nevolejte stav úvodní OneClick platby.
Položka | Typ | Popis |
---|---|---|
merchantId | String | ID obchodníka přiřazené platební bránou. |
origPayId | String | payID OneClick šablony. |
dttm | String | Datum a čas odeslání požadavku ve formátu YYYYMMDDHHMMSS . |
signature | String | Podpis požadavku, kódováno v BASE64. |
Příklad požadavku:
{
"merchantId":"M1MIPS0000",
"origPayId":"0e92dd54b133@HA",
"dttm":"20220125131559",
"signature":"base64-encoded-request-signature"
}
Položka | Typ | Popis |
---|---|---|
origPayId | String | payID OneClick šablony (obsahuje 15-znakový řetězec). |
dttm | String | Datum a čas odpovědi ve formátu YYYYMMDDHHMMSS . |
resultCode | Number | Výsledek operace, viz výčet. |
resultMessage | String | Textový popis výsledku operace. |
signature | String | Podpis odpovědi, kódováno v BASE64. |
Příklad návratových hodnot pro oneclick/echo - OneClick šablona je aktivní:
{
"origPayId":"0e92dd54b133@HA",
"dttm":"20220125131601",
"resultCode": 0,
"resultMessage":"OK",
"signature":"base64-encoded-response-signature"
}
Příklad návratových hodnot pro oneclick/echo - OneClick šablona nenalezena:
{
"origPayId":"0e92dd54b133@HA",
"dttm":"20220125131601",
"resultCode": 700,
"resultMessage":"Oneclick template not found",
"signature":"base64-encoded-response-signature"
}
Návratové hodnoty relevantní pro operaci oneclick/echo
(kódy 700-750) jsou uvedeny v číselníku návratových hodnot.
V odpovědi operace oneclick/echo
může platební brána vrátit rozšíření obsahující Data o kartě pro OneClick platbu.
POST https://api.platebnibrana.csob.cz/api/v1.9/oneclick/init
Operace založí OneClick platbu. Podmínkou je existence OneClick šablony, která byla dříve vytvořena na platební bráně.
Položka | Typ | Popis |
---|---|---|
merchantId | String | ID obchodníka přiřazené platební bránou. |
origPayId | String | PayID dříve vytvořené OneClick šablony. |
orderNo | String | Referenční číslo objednávky využívané pro párování plateb, které bude uvedeno také na výpisu z banky. Numerická hodnota, maximální délka je 10 číslic. |
dttm | String | Datum a čas odeslání požadavku ve formátu YYYYMMDDHHMMSS . |
payMethod | String | Typ implicitní platební metody, která bude nabídnuta zákazníkovi. Povolené hodnoty: card = platba kartou, card#LVP = platba kartou s indikací low value payment (výjimka ze silného ověření pro platby nízkých částek). Nepovinný parametr, přidáno 06/2024, defaultní hodnota: card . |
clientIp | String | IP adresa zákazníka (jeho prohlížeče) přistupujícího na e-shop obchodníka, formát ipv4 nebo ipv6. Pokud je clientInitiated = true, je parametr povinný. |
totalAmount | Number | Celková cena v setinách základní měny. Pokud není vyplněno, přebírá se hodnota z OneClick šablony. Pokud je totalAmount vyplněn, musí být vyplněn také parametr currency . |
currency | String | Kód měny. Povolené hodnoty: CZK , EUR , USD , GBP , HUF , PLN , RON , NOK , SEK . Pokud není vyplněno, přebírá se hodnota z OneClick šablony. Pokud je currency vyplněn, musí být vyplněn také parametr totalAmount . |
closePayment | Boolean | Indikuje, zda má být platba automaticky zahrnuta do uzávěrky a proplacena. Povolené hodnoty: true / false . Pokud není vyplněno, přebírá se hodnota z OneClick šablony. |
returnUrl | String | URL adresa, na kterou bude klient přesměrován zpět do e-shopu po dokončení platby v případě, že u platby je vyžadováno potvrzení v rámci ověření platby. Maximální délka 300 znaků. Při přesměrování zpět na e-shop se předává stejná sada parametrů jako v případě návratu z platební brány při platbě kartou. |
returnMethod | String | Metoda návratu na URL adresu e-shopu. Povolené hodnoty POST , GET . Doporučená metoda je POST . |
customer | Object | Dodatečná data o nákupu týkající se zákazníka. Viz detailní popis struktury customer . |
order | Object | Dodatečná data o nákupu týkající se objednávky. Viz detailní popis struktury order . |
clientInitiated | Boolean | Indikuje, zda je možné provést ověření platby za přítomnosti zákazníka. Povolené hodnoty: true / false . Defaultní hodnota: true . |
sdkUsed | Boolean | Indikuje, zda je ověření platby prováděno přes 3DS SDK (v případě mobilní aplikace) nebo ne (platba přes prohlížeč). Povolené hodnoty: true / false . Defaultní hodnota: false . |
merchantData | String | Libovolná pomocná data, která předává obchodník na bránu, musí být kódována v BASE64. Maximální délka po zakódování je 255 znaků. V případě obchodního modelu "Marketplace" musí obchodník identifikovat svého retailera pomocí IČO. Tento identifikátor je třeba plnit do hranatých závorek [] a může být umístěn libovolně v rámci položky merchantData. V případě, že se nákupu účastní vícero retailerů, hodnoty IČO se oddělují čárkou - např. [12345678,87654321]. |
language | String | Preferovaná jazyková mutace, která se použije v případě, že se provádí potvrzení platby. Povolené hodnoty: cs ,en ,de ,fr ,hu ,it ,ja ,pl ,pt ,ro ,ru ,sk ,es ,tr ,vi ,hr ,sl ,sv . |
ttlSec | Number | Nastavení životnosti platby, v sekundách, min. povolená hodnota 300, max. povolená hodnota 1800 (5-30 min). Defaultní hodnota: 1800. Životnost platby je počítána od okamžiku provolání oneclick/init . |
signature | String | Podpis požadavku, kódováno v BASE64. |
Příklad požadavku:
{
"merchantId":"M1MIPS0000",
"origPayId":"0e92dd54b133@HA",
"orderNo":"51966",
"dttm":"20220125131559",
"clientIp":"192.0.2.2",
"returnUrl":"https://shop.example.com/return",
"returnMethod":"POST",
"customer": {
"name":"Jan Novák",
"email":"[email protected]",
"mobilePhone":"+420.800300300"
},
"order": {
"type":"purchase",
"availability":"now",
"delivery":"digital",
"deliveryMode": "0",
"deliveryEmail": "[email protected]"
},
"signature":"base64-encoded-request-signature"
}
Položka | Typ | Popis |
---|---|---|
payId | String | Jednoznačné ID platby (přidělené platební bránou v operaci oneclick/init , obsahuje 15-znakový řetězec). |
dttm | String | Datum a čas odpovědi ve formátu YYYYMMDDHHMMSS . |
resultCode | Number | Výsledek operace, viz výčet. |
resultMessage | String | Textový popis výsledku operace. |
paymentStatus | Number | Stav platby, viz životní cyklus transakce. |
statusDetail | String | Detailní stav platby (tzv. mikrostav), obsahuje například důvod zamítnutí platby, viz popis. |
actions | Object | Struktura pro předání potřebných dat pro provedení otisku zařízení. Viz struktura actions. |
signature | String | Podpis odpovědi, kódováno v BASE64. |
Obecná struktura pro předání potřebných dat pro provedení otisku zařízení nebo pro provedení potvrzení v rámci ověření platby pro @shop
platební metody.
Položka | Typ | Popis |
---|---|---|
fingerprint | Object | Struktura pro předání dat pro provedení otisku zařízení. Viz struktura actions.fingerprint. |
authenticate | Object | Struktura pro provedení potvrzení v rámci ověření platby. Viz struktura actions.authenticate. |
Struktura pro předání dat pro provedení otisku zařízení. Pokud je otisk vyžadován, jsou tyto data v rámci oneclick@shop
, applepay@shop
nebo googlepay@shop
vráceny v odpovědi na */init
volání.
Položka | Typ | Popis |
---|---|---|
browserInit | Object | Data pro provedení otisku zařízení v prohlížeči zákazníka. Viz struktura endpoint. |
sdkInit | Object | Data pro provedení otisku zařízení v mobilní aplikaci zákazníka s integrovaným 3DS SDK. Viz struktura sdkInit. |
V případě, že je platba prováděna pomocí prohlížeče zákazníka (tzn. parametr sdkUsed
je v init metodě nastaven na hodnotu false
) a současně je vyžadován otisk zařízení (platební brána vrací v odpovědi vyplněnou strukturu actions.fingerprint.browserInit
), je obchodník povinen na straně e-shopu vytvořit 1px iframe a otevřít v něm příslušnou url. V prohlížeči zákazníka se tak načte stránka platební brány, která obsahuje příslušný kód pro provedení otisku.
V případě, že je platba prováděna na mobilním zařízení pomocí SDK (tzn. parametr sdkUsed
je v init metodě nastaven na hodnotu true
), vrací platební brána v odpovědi na init volání parametry pro inicializaci SDK (viz parametry actions.fingerprint.sdkInit
). Výsledek inicializace předává obchodník zpět na platební bránu voláním oneclick/process
pomocí struktury fingerprint.sdk
(viz dále). Pomocí SDK je v případě potřeby prováděno potvrzení platby v rámci jejího ověření, předané parametry slouží k zajištění zabezpečeného komunikačního kanálu mezi mobilní aplikací zákazníka a serverem vydavatele karty, který provádí vlastní ověření.
V případě, že je v rámci ověření platby vyžadováno potvrzení, obsahuje struktura actions.authenticate
potřebné parametry spuštění potvrzení v prohlížeči nebo pomocí 3DS SDK. Tyto data jsou v rámci oneclick@shop
, applepay@shop
nebo googlepay@shop
vráceny v odpovědi na */process
volání, případně v odpovědi na volání payment/status
.
Položka | Typ | Popis |
---|---|---|
browserChallenge | Object | Parametry pro spuštění potvrzení v rámci ověření platby v prohlížeči zákazníka. Viz struktura endpoint. |
sdkChallenge | Object | Parametry pro spuštění potvrzení v rámci ověření platby pomocí 3DS SDK v mobilní aplikaci zákazníka. Viz struktura sdkChallenge. |
V případě, že je platba prováděna pomocí prohlížeče zákazníka (tzn. parametr sdkUsed
je v init metodě nastaven na hodnotu false
) a současně je vyžadováno potvrzení platby (je vrácena vyplněná struktura actions.authenticate.browserChallenge
), je obchodník povinen na straně e-shopu otevřít příslušnou url z browserChallenge
(otevírá ji buď v iframe nebo v top.location). V prohlížeči zákazníka se tak načte stránka platební brány, která obsahuje příslušný kód pro provedení vlastního potvrzení platby. Zákazníkovi je (v rámci iframe nebo v rámci top.location) zobrazena stránka vydavatele karty, kde potvrzuje platbu. Poté, co je potvrzení platby dokončeno, je zákazníkovi zobrazen průběh dalšího zpracování platby (výsledek ověření a autorizace platby). Po dokončení zpracování je provedeno přesměrování na returnUrl
e-shopu, (pokud je použit iframe, po přesměrování na returnUrl
obchodník iframe zavírá), zobrazuje zákazníkovi v e-shopu výsledek platby.
V případě, že je platba prováděna na mobilním zařízení pomocí SDK (tzn. parametr sdkUsed
je v init metodě nastaven na hodnotu true
) a je vyžadováno potvrzení platby (je vrácena vyplněná struktura actions.authenticate.sdkChallenge
), je obchodník povinen předat získané parametry a spustit ověření platby pomocí SDK.
Obecná struktura obsahující parametry pro otevření (zobrazení) daného endpointu, resp. pro provedení přesměrování na daný endpoint. Využívá se buď pro provedení otisku zařízení nebo pro spuštění potvrzení v rámci ověření platby.
Položka | Typ | Popis |
---|---|---|
url | String | URL adresa endpointu. |
method | String | Metoda pro přechod na danou url . Povolené hodnoty POST , GET . Defaultní hodnota je GET . |
vars | Object | Struktura pro předání parametrů ve formátu klíč-hodnota, např. {"key1": "value1", ...} . V případě GET požadavku je obchodník povinnen parametry url enkódovat jako query string, v případě POST požadavku musí být předány v těle požadavku ve formátu application/x-www-form-urlencoded . |
Přestože jsou ve specifikaci endpointu uvedeny obě metody (GET
i POST
), platební brána aktuálně používá pro provedení otisku zařízení nebo pro spuštění potvrzení v rámci ověření platby pouze GET
metodu (vrací se vždy jen vyplněná url
bez parametrů vars
).
Data pro provedení otisku zařízení v mobilní aplikaci zákazníka s integrovaným 3DS SDK. Obchodník tyto parametry použije pro inicializaci SDK.
Položka | Typ | Popis |
---|---|---|
directoryServerID | String | Identifikátor directory serveru, který zpracovává požadavek na ověření platby. |
schemeId | String | Karetní asociace, pod kterou spadá platební karta zákazníka. |
messageVersion | String | Verze 3DS2 protokolu, která bude použita pro ověření platby. |
Parametry pro spuštění potvrzení v rámci ověření platby pomocí 3DS SDK v mobilní aplikaci zákazníka.
Položka | Typ | Popis |
---|---|---|
threeDSServerTransID | String | Identifikátor ověření platby. |
acsReferenceNumber | String | Identifikátor systému vydavatele karty použitého pro ověření platby. |
acsTransID | String | Identifikátor ověření platby evidovaný u vydavatele karty. |
acsSignedContent | String | Podepsaná data pro provedení potvrzení v rámci ověření platby. |
Příklad návratových hodnot pro oneclick/init -- úspěšně založená platba:
{
"payId":"7624c5e60252@HA",
"dttm":"20220125131601",
"resultCode": 0,
"resultMessage":"OK",
"paymentStatus": 1,
"signature":"base64-encoded-response-signature"
}
Příklad návratových hodnot pro oneclick/init -- úspěšně založená platba, včetně parametrů pro provedení otisku zařízení:
{
"payId":"7624c5e60252@HA",
"dttm":"20220125131601",
"resultCode": 0,
"resultMessage":"OK",
"paymentStatus": 1,
"actions": {
"fingerprint": {
"browserInit": {
"url":"https://example.com/3ds-method-endpoint"
}
}
},
"signature":"base64-encoded-response-signature"
}
Příklad návratových hodnot pro oneclick/init -- úspěšně založená platba, včetně parametrů pro inicializaci 3DS SDK pro ověření platby:
{
"payId":"7624c5e60252@HA",
"dttm":"20220125131601",
"resultCode": 0,
"resultMessage":"OK",
"paymentStatus": 1,
"actions": {
"fingerprint": {
"sdkInit": {
"directoryServerID":"A000000003",
"schemeId":"Visa",
"messageVersion":"2.2.0"
}
}
},
"signature":"base64-encoded-response-signature"
}
V případě nevalidního požadavku vrací platební brána odpověď obsahující popis chyby. Detailní popis je uveden na stránce Volání rozhraní eAPI.
V případě, že se v response vrátí chyba "resultCode":900,"resultMessage":"Unable to load card for oneclick/init"
,
zkuste prosím danou operaci po uplynutí několika sekund opakovat. Jedná se o dočasnou nedostupnost návazného systému.
POST https://api.platebnibrana.csob.cz/api/v1.9/oneclick/process
Operace spustí zpracování OneClick platby.
Položka | Typ | Popis |
---|---|---|
merchantId | String | ID obchodníka přiřazené platební bránou |
payId | String | payID OneClick platby vytvořené v předchozím kroku pomocí operace oneclick/init . |
dttm | String | Datum a čas odeslání požadavku ve formátu YYYYMMDDHHMMSS . |
fingerprint | Object | Dodatečná data pro ověření platby. Pokud je v operaci oneclick/init nastaveno clientInitiated = true, je parametr povinný. Viz struktura fingerprint. |
signature | String | Podpis požadavku, kódováno v BASE64. |
Dodatečná data pro ověření platby.
Položka | Typ | Popis |
---|---|---|
browser | Object | Struktura pro předání parametrů prohlížeče zákazníka. Viz struktura fingerprint.browser. Obchodník je povinnen data vyplnit v případě, že v */init metodě bylo vyplněno sdkUsed = false (ověření je prováděno v prohlížeči zákazníka). |
sdk | Object | Struktura pro předání parametrů získané po inicializaci 3DS SDK integrovaného do mobilní aplikace zákazníka. Viz struktura fingerprint.sdk. Obchodník je povinnen data vyplnit v případě, že v */init metodě bylo vyplněno sdkUsed = true (ověření je prováděno v mobilní aplikaci zákazníka pomocí 3DS SDK). |
Struktura pro předání parametrů prohlížeče zákazníka, které budou použity pro ověření platby.
Položka | Typ | Popis |
---|---|---|
userAgent | String | Obsah HTTP header User-Agent tak, jak ji přijal e-shop z prohlížeče zákazníka. Maximální délka 2048 znaků. |
acceptHeader | String | Obsah HTTP header Accept tak, jak ji přijal eshop z prohlížeče zákazníka. Maximální délka 2048 znaků. |
language | String | Jazyk prohlížeče zákazníka dle specifikace IETF BCP 47 . Povolená délka je 1-8 znaků. Hodnotu je nutné převzít z navigator.language parametru prohlížeče. |
javascriptEnabled | Boolean | Příznak, zda prohlížeč zákazníka má povoleno spouštění javascriptu. Povolené hodnoty: true, false. |
colorDepth | Number | Podporovaná barevná hloubka prohlížeče zákazníka pro zobrazování obrázků, v bitech na pixel. Povinná položka v případě, že javascriptEnabled=true . Hodnotu je nutné převzít z screen.colorDepth parametru prohlížeče.Povolené hodnoty: 1 -> 1 bit4 -> 4 bitů8 -> 8 bitů15 -> 15 bitů16 -> 16 bitů24 -> 24 bitů32 -> 32 bitů48 -> 48 bitů. |
screenHeight | Number | Výška displeje nebo obrazovky v pixelech. Povinná položka v případě, že javascriptEnabled=true . Hodnotu je nutné převzít z screen.height parametru prohlížeče zákazníka. |
screenWidth | Number | Šířka displeje nebo obrazovky v pixelech. Povinná položka v případě, že javascriptEnabled=true . Hodnotu je nutné převzít z screen.width parametru prohlížeče zákazníka. |
timezone | Number | Rozdíl mezi UTC časem a lokálním časem zákazníka v minulách. Povinná položka v případě, že javascriptEnabled=true . Hodnotu je nutné vyčíst pomocí new Date().getTimezoneOffset() z prohlížeče zákazníka. |
javaEnabled | Boolean | Příznak, zda prohlížeč zákazníka podporuje programovací jazyk Java. Povinná položka v případě, že javascriptEnabled=true . Hodnotu je nutné převzít z navigator.javaEnabled parametru prohlížeče. Povolené hodnoty: true , false . |
challengeWindowSize | String | Rozměry okna, ve kterém bude provedeno ověření. Vydavatel karty tomuto rozměru přizpůsobí zobrazovaný obsah. Povolené hodnoty: 01 -> 250 x 40002 -> 390 x 40003 -> 500 x 60004 -> 600 x 40005 -> Full screen.Default hodnota: 05 . |
Struktura pro předání parametrů získaných po inicializaci 3DS SDK integrovaného do mobilní aplikace zákazníka, které budou použity pro ověření platby.
Položka | Typ | Popis |
---|---|---|
appID | String | Identifikátor aplikace obchodníka se zaintegrovaným 3DS SDK. |
encData | String | Zašifrovaná device data potřebná pro autentizaci. |
ephemPubKey | String | Veřejný klíč pro zabezpečení komunikace vygenerovaný 3DS SDK ve formátu JWE . |
maxTimeout | Number | Timeout v minutách pro dokončení autentizace, hodnota musí být větší nebo rovna 5. |
referenceNumber | String | Identifikátor použitého 3DS SDK. Povinná položka, max. 32 znaků. |
transID | String | Identifikátor zpracování transakčního požadavku v rámci 3DS SDK. Povinná položka, max. 36 znaků. |
Příklad požadavku: (oneclick@shop, platba prováděná z prohlížeče zákazníka)
Obchodník předává v požadavku parametry prohlížeče zákazníka.
{
"merchantId":"M1MIPS0000",
"payId":"7624c5e60252@HA",
"dttm":"20220125131615",
"fingerprint": {
"browser": {
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36",
"acceptHeader":"text/html,application/xhtml+xml,application/xml;",
"language":"en",
"javascriptEnabled":false
}
},
"signature":"base64-encoded-request-signature"
}
Příklad požadavku: (oneclick@shop, platba prováděná z mobilní aplikace s integrovaným 3DS SDK)
Obchodník předává v požadavku parametry poté, co se provedla inicializace SDK.
{
"merchantId":"M1MIPS0000",
"payId":"7624c5e60252@HA",
"dttm":"20220125131615",
"fingerprint": {
"sdk": {
"appID":"198d0791-0025-4183-b9ae-900c88dd80e0",
"encData":"encrypted-data",
"ephemPubKey": "encoded-public-key",
"maxTimeout": 5,
"referenceNumber":"sdk-reference-number",
"transID":"7f101033-df46-4f5c-9e96-9575c924e1e7"
}
},
"signature":"base64-encoded-request-signature"
}
Položka | Typ | Popis |
---|---|---|
payId | String | jednoznačné ID platby (přidělené platební bránou v operaci oneclick/init , obsahuje 15-znakový řetězec) |
dttm | String | datum a čas odpovědi ve formátu YYYYMMDDHHMMSS
|
resultCode | Number | výsledek operace, viz výčet |
resultMessage | String | textový popis výsledku operace |
paymentStatus | Number | stav platby, viz životní cyklus transakce |
statusDetail | String | Detailní stav platby (tzv. mikrostav), obsahuje například důvod zamítnutí platby, viz popis. |
actions | Object | Struktura pro předání potřebných dat pro provedení potvrzení v rámci ověření platby. Viz struktura actions. |
signature | String | podpis odpovědi, kódováno v BASE64 |
Příklad návratových hodnot pro oneclick/process (bez nutnosti provést potvrzení v rámci ověření platby)
{
"payId":"7624c5e60252@HA",
"dttm":"20220125131618",
"resultCode": 0,
"resultMessage":"OK",
"paymentStatus": 2,
"signature":"base64-encoded-response-signature"
}
Příklad návratových hodnot pro oneclick/process (včetně parametrů pro provedení potvrzení v rámci ověření platby v prohlížeči zákazníka)
{
"payId":"7624c5e60252@HA",
"dttm":"20220125131618",
"resultCode": 0,
"resultMessage":"OK",
"paymentStatus": 2,
"actions": {
"authenticate": {
"browserChallenge": {
"url":"https://example.com/challenge-endpoint"
}
}
},
"signature":"base64-encoded-response-signature"
}
Příklad návratových hodnot pro oneclick/process (včetně parametrů pro provedení potvrzení v rámci ověření platby v mobilní aplikaci zákazníka pomocí 3DS SDK)
{
"payId":"7624c5e60252@HA",
"dttm":"20220125131618",
"resultCode": 0,
"resultMessage":"OK",
"paymentStatus": 2,
"actions": {
"authenticate": {
"sdkChallenge": {
"threeDSServerTransID":"eeddda80-6ca7-4b22-9d6a-eb8e84791ec9",
"acsReferenceNumber":"3DS_LOA_ACS_201_13579",
"acsTransID":"7f3296a8-08c4-4afb-a3e2-8ce31b2e9069",
"acsSignedContent":"base64-encoded-acs-signed-content"
}
}
},
"signature":"base64-encoded-response-signature"
}
Výsledek ověření a následné autorizace je potřeba zjistit následným voláním payment/status
. Doba zpracování se může lišit v závislosti na tom, zda je vyžadováno potvrzení platby v rámci jejího ověření:
- pokud potvrzení není vyžadováno, je doporučená doba volání je 2-3 vteřiny po volání
oneclick/process
, pokud je stav platby stále2
(platba probíhá), doporučujeme periodicky volat v intervalu 5 vteřin (celková doba autorizace závisí na zpracování požadavku v systémech VISA/MC a může být v nejhorším případě až 60 vteřin). - pokud je potvrzení vyžadováno, může trvat řádově minuty, než je zákazníkem platba potvrzena a vydavatel karty dokončí ověření. V tomto případě doporučujeme volat
payment/status
periodicky v delším intervalu např. 30 vteřin.
V případě, že se v response vrátí chyba "resultCode":900,"resultMessage":"Unable to load card for oneclick/process"
,
zkuste prosím danou operaci po uplynutí několika sekund opakovat. Jedná se o dočasnou nedostupnost návazného systému.