Oznámenie
Stav transakcie je dôležitým ukazovateľom pre aplikácie tretích strán. Povie vám, v akom stave je transakcia a či sa transakcia môže opakovať. Nehovorí nič o úspechu/neúspechu transakcie.
Žiadosť [transactionId]
Vstupná hodnota transactionId sa vygeneruje v kroku 1 , Registrácia transakcie.
void stateRequest(String transactionId, IStateResultListener listener) throws RemoteException
Odpoveď [StateResultEntity]
Štáty
Keď sa zobrazí stav FINISHED (v súčasnosti hodnoty 6,7 a 8), mali by ste začať volať dotaz na podrobnosti transakcie, aby ste získali výsledok transakcie, pozri"4.Získanie podrobností o transakcii".
- Ak je Opakovateľné == true, potom môžete transakciu zopakovať s rovnakou hodnotou transactionId, pozri Krok 2: Žiadosť o transakciu
- Ak je Opakovateľné == false, potom nemôžete opakovať transakciu s rovnakou hodnotou transactionId, pozri Krok 2: Požiadajte o transakciu a musíte vygenerovať novú transakciuId, pozri Krok 1: Registrácia transakcie.
– Ak sa stav IN_PROGRESS vráti, musíte počkať na dokončenie transakcie, t.j. opýtať sa znova napríklad o 500 ms.
Ak je stav IN_PROGRESS starší ako 5 minút, môžete transakciu spracovať ako neúspešnú.
Príklad odpovede stavu:
{„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“}
Vysvetlenie: resultCode=0 znamená, že požiadavka bola úspešne spracovaná, status=8 znamená, že transakcia je v stave "error", code=43 uvádza podrobnú chybu, prečo úloha skončila s chybou podľa dokumentácie tu, hodnota "isRepeatable=false" znamená, že nemôžete znovu zavolať TransactionRequestV2 s rovnakou hodnotou TransactionID.