Benachrichtigung
Der Transaktionsstatus ist ein wichtiger Indikator für Anwendungen von Drittanbietern. Es sagt Ihnen, in welchem Zustand sich die Transaktion befindet und ob die Transaktion wiederholt werden kann. Es sagt nichts über den Erfolg / Misserfolg der Transaktion aus.
Request [transactionId]
Der transactionId-Eingabewert wird in Schritt 1 , Transaktionsregistrierung generiert.
void stateRequest(String transactionId, IStateResultListener listener) throws RemoteException
Response [StateResultEntity]
Staaten
Sobald der Status, den Sie erhalten, BEENDET ist (derzeit Werte von 6,7 und 8), sollten Sie mit dem Aufruf der Transaktionsdetailabfrage beginnen, um das Ergebnis der Transaktion zu erhalten, siehe "4.Abrufen von Transaktionsdetails"
- Wenn isRepeatable == true, dann können Sie die Transaktion mit dem gleichen transactionId-Wert wiederholen, siehe Schritt 2: Anfordern einer Transaktion
- Wenn isRepeatable == false, dann können Sie eine Transaktion mit demselben transactionId-Wert nicht wiederholen, siehe Schritt 2: Anfordern einer Transaktion und Sie müssen eine neue transactionId generieren, siehe Schritt 1: Registrieren der Transaktion.
– Wenn der Status der IN_PROGRESS zurückkehrt, müssen Sie warten, bis die Transaktion abgeschlossen ist, d.h. fragen Sie zum Beispiel in 500 ms erneut nach.
Wenn der Status der IN_PROGRESS älter als 5 Minuten ist, können Sie die Transaktion als nicht erfolgreich verarbeiten.
Beispiel für eine Statusantwort:
{“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”}
Erläuterung: resultCode=0 bedeutet, dass die Anfrage erfolgreich bearbeitet wurde, status=8 bedeutet, dass sich die Transaktion im "Fehler"-Zustand befindet, code=43 gibt einen detaillierten Fehler an, warum die Aufgabe gemäß der vorliegenden Dokumentation mit einem Fehler endete, der Wert "isRepeatable=false" bedeutet, dass Sie TransactionRequestV2 nicht noch einmal mit demselben TransactionID-Wert aufrufen können.