Okrajové případy a zpracování chyb

Před nasazením do produkce je třeba zvážit řadu scénářů pro úplnou integraci. Část z nich leží ve vašem kódu, který Twisto explicitně nekontroluje — očekává se jejich dokončení před žádostí o přístup do produkce.

Něco nefunguje? Pište na merchant-tech@twisto.cz s technickými dotazy.

Okrajové případy

Důkladně testujte integraci včetně scénářů:

  • Neúplná data
  • Neplatná data
  • Duplicitní data (např. opakujte stejný požadavek a sledujte chování)

Timeouty a opakované transakce

Někdy kvůli síti nepřijde odpověď. V takovém případě Twisto očekává opakování transakce, dokud nepřijde platná odpověď nebo nevyprší timeout.

Netransakční volání API

Některá volání lze znovu poslat bez označení opakování. Endpoint /checkouts lze například opakovaně volat se stejnými referencemi a payloadem bez problému — každý požadavek je nový a nezávislý na prvním neúspěšném volání.

Transakční volání API

U jiných volání musí být opakování identifikováno, aby nedošlo k dvojímu zaúčtování a chybám duplicity reference objednávky.

U transakčních volání na /charges nebo /refunds musí opakování použít stejnou hlavičku Idempotency-key jako původní požadavek.

METHODTYPE
POST /checkoutsNon-transactional
POST /checkouts/{id}/cancelTransactional
POST /chargesTransactional
POST /refundsTransactional

Doporučené časování opakování:

ATTEMPT NUMBERDELAY BEFORE ATTEMPT (SECONDS)TIMEOUT PERIOD (SECONDS)TOTAL TIME ELAPSED (SECONDS)
1N/A2020
2101040
35550
45560

Kontrola logování

Doporučujeme logovat všechna důležitá data u vás. Vlastní logy budou neocenitelné, pokud server nemůže kontaktovat Twisto nebo je problém s API klíči — v obou případech nemůžeme váš požadavek zalogovat.

Pravidelně logy kontrolujte, ukládají potřebné informace a neukládají citlivé údaje. Hledejte opakující se chyby vyžadující úpravu integrace.

Změna a zabezpečení API klíčů

Držte přihlašovací údaje k API v tajnosti.

Chybové kódy

API používá konzistentní chybové odpovědi a REST stavové kódy.

Pro více informací nebo podkategorii kódů se u stavů mimo 2xx vrací objekt Error s konkrétním kódem a zprávou.

Možné stavové kódy:

STATUS CODEDESCRIPTION
2xxOK Everything worked correctly.
400Bad Request There is an error in the request object.
401Unauthorized No valid API key provided.
402Request Failed Request could not be processed, see error code for more information.
403Forbidden Operation is not allowed (customer did not authorise action).
404Not Found The resource does not exist.
409Conflict The request is a duplicate of a previous request
429Too Many Requests Requests are rate limited - you are making too many requests.
5xxServer Error An error has occurred on Twisto's end.

Specifické chybové kódy pro jednotlivé endpointy jsou na stránkách endpointů.

U odpovědí BadRequest najdete detail v poli details objektu Error.

"error": { "code": "string", "message": "string", "details": [ { "name": "string", "message": "string" } ] }