Hinweis
Der Transaktionsstatus ist ein wichtiger Indikator für Drittanwendungen. Er gibt Auskunft darüber, in welchem Zustand sich die Transaktion befindet und ob sie erneut versucht werden kann. Sie sagt nichts über den Erfolg oder Misserfolg der Transaktion aus.
Anfrage [transactionId]
Der TransactionId-Eingabewert wird in Schritt 1 erzeugt - Registrierung von Vorgängen.
void stateRequest(String transactionId, IStateResultListener listener) throws RemoteException
Antwort [StateResultEntity]
Staaten
Sobald der Status, den Sie erhalten, lautet, ENDGÜLTIG (derzeit die Werte 6, 7 und 8), können Sie die Anfrage als abgeschlossen betrachten. Für den Fall, dass der Status ABGESCHLOSSEN (Status 6), sollten Sie die Abfrage der Transaktionsdetails aufrufen, um das Ergebnis der Transaktion zu erhalten, siehe „4. das Abrufen von Transaktionsdetails„
- Wenn isRepeatable == true ist, dann können Sie die Transaktion mit demselben transactionId-Wert wiederholen, siehe Schritt 2: Transaktionsanfrage
- Wenn isRepeatable == false ist, dann können Sie eine Transaktion mit demselben transactionId-Wert nicht wiederholen, siehe Schritt 2: Transaktionsanforderung, und Sie müssen eine neue transactionId erzeugen, siehe Schritt 1: Registrierung der Transaktion.
- Wenn der Staat zurückkehrt IN_PROGRESS, müssen Sie warten, bis die Transaktion abgeschlossen ist, d. h. Sie können z. B. in 500 ms erneut nachfragen.
Wenn der Status IN_PROGRESS älter als 5 Minuten ist, können Sie die Transaktion als Fehlschlag bearbeiten.
Beispiel für eine Reaktion auf eine Bedingung:
{„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“-Status befindet, code=43 gibt einen detaillierten Fehler an, warum die Aufgabe gemäß der Dokumentation fehlerhaft beendet wurde hier, Der Wert „isRepeatable=false“ bedeutet, dass Sie TransactionRequestV2 nicht noch einmal mit demselben TransactionID-Wert aufrufen können.
