
Upozornění
Stav transakce je důležitým ukazatelem pro aplikace třetích stran. Říká vám, v jakém stavu se transakce nachází a zda lze transakci opakovat. Neříká nic o úspěchu/neúspěchu transakce.
Request [transactionId]
Vstupní hodnota TransactionId je vygenerována v kroku 1 – Registrace transakce.
void stateRequest(String transactionId, IStateResultListener listener) throws RemoteException
Response [StateResultEntity]
Stavy
Jakmile je stav, který obdržíte, FINISHED (momentálně hodnoty 6,7 a 8), měli byste začít volat dotaz na podrobnosti transakce, abyste získali výsledek transakce, viz “4.Získání detailů o transakci“
– Pokud isRepeatable == true, pak můžete transakci opakovat se stejnou hodnotou transactionId, viz Krok 2: Požadavek na transakci
– Pokud je isRepeatable == false, pak nemůžete opakovat transakci se stejnou hodnotou transactionId, viz Krok 2: Požadavek na transakci a musíte vygenerovat nové transactionId, viz Krok 1: Registrace transakce.
– Pokud se vrátí stav IN_PROGRESS, musíte počkat na dokončení transakce, tedy zeptat se znovu naříklad za 500 ms.
Pokud je stav IN_PROGRESS starší než 5 minut, můžete transakci zpracovat jako neúspěšnou.
Příklad odpovědi na stav:
{“created”:”2021-10-01T10:18:57.297Z”,”isRepeatable”:true,”resultCode”:0,”state”:1,”transactionId”:”fc55b5b0-22a0-11ec-b28c-fbab35d62ddf”,”updated”:”2021-10-01T10:18:57.297Z”}
Vysvětlení: resultCode=0 znamená, že požadavek byl úspěšně zpracován, stav=1 znamená, že transakce je ve stavu „vytvořeno“. Hodnota „isRepeatable=true“ znamená, že můžete znovu volat TransactionRequestV2 se stejnou hodnotou TransactionID.