Aviz
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.
Cerere [transactionId]
Valoarea de intrare TransactionId este generată în etapa 1 - Înregistrarea tranzacției.
void stateRequest(String transactionId, IStateResultListener listener) throws RemoteException
Răspuns [StateResultEntity]
Statele
Jakmile je stav, který obdržíte, FINISHED (momentálně hodnoty 6,7 a 8), můžete považovat požadavek za ukončený. V případě stavu COMPLETED (state 6), 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.
- Dacă starea returnează ÎN_PROGRES, musíte počkat na dokončení transakce, tedy zeptat se znovu za 500 ms.
Dacă starea IN_PROGRESS este mai veche de 5 minute, puteți procesa tranzacția ca un eșec.
Exemplu de răspuns de stare:
{„created“:“2023-09-11T12:29:11.300Z“,“error“:{„code“:43,“internalErrorCode“:0,“internalErrorSubCode“:0,“platform“:“TOM_APP“},“isRepeatable“:false,“resultCode“:0,“state“:8,“transactionId“:“d03484bc-509e-11ee-ba37-77691fde9486″,“updated“:“2023-09-11T12:30:34.337Z“}
Vysvětlení: resultCode=0 znamená, že požadavek byl úspěšně zpracován, stav=8 znamená, že transakce je ve stavu „error“, code=43 dává detailní chybu proč skončil task errorem a to dle dokumentace zde, hodnota „isRepeatable=false“ znamená, že nemůžete znovu volat TransactionRequestV2 se stejnou hodnotou TransactionID.
