Aviz
Starea tranzacției este un indicator important pentru aplicațiile terțe. Acesta vă spune în ce stare se află tranzacția și dacă tranzacția poate fi reluată. Nu spune nimic despre succesul sau eșecul tranzacției.
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
Odată ce statutul pe care îl primiți este, FINALIZAT (în prezent, valorile 6, 7 și 8), puteți considera cererea completă. În cazul statutului COMPLETAT (starea 6), trebuie să începeți să apelați interogarea detaliilor tranzacției pentru a obține rezultatul tranzacției, consultați „4.Obținerea detaliilor tranzacției„
- Dacă isRepeatable == true, atunci puteți repeta tranzacția cu aceeași valoare transactionId, consultați Pasul 2: Cerere de tranzacție
- Dacă isRepeatable == false, atunci nu puteți repeta o tranzacție cu aceeași valoare transactionId, a se vedea Pasul 2: Cerere de tranzacție, și trebuie să generați un nou transactionId, a se vedea Pasul 1: Înregistrarea tranzacției.
- Dacă starea returnează ÎN_PROGRES, trebuie să așteptați finalizarea tranzacției, adică să cereți din nou în 500 ms, de exemplu.
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“}
Explicație: resultCode=0 înseamnă că cererea a fost procesată cu succes, status=8 înseamnă că tranzacția este în stare de „eroare“, code=43 oferă o eroare detaliată a motivului pentru care sarcina s-a încheiat cu o eroare, conform documentației aici, valoarea „isRepeatable=false“ înseamnă că nu puteți apela din nou TransactionRequestV2 cu aceeași valoare TransactionID.
