Zawiadomienie
Status transakcji jest ważnym wskaźnikiem dla aplikacji innych firm. Informuje, w jakim stanie znajduje się transakcja i czy można ją ponowić. Nie mówi nic o powodzeniu/niepowodzeniu transakcji.
Request [transactionId]
Wartość wejściowa TransactionId jest generowana w kroku 1 - Rejestracja transakcji.
void stateRequest(String transactionId, IStateResultListener listener) throws RemoteException
Response [StateResultEntity]
Państwa
Gdy otrzymany status to FINISHED (obecnie wartości 6,7 i 8), należy rozpocząć wywoływanie zapytania o szczegóły transakcji, aby uzyskać wynik transakcji, patrz"4.Pobieranie szczegółów transakcji".
- Jeśli isRepeatable == true, możesz powtórzyć transakcję z tą samą wartością transactionId, patrz Krok 2: Żądanie transakcji
- Jeśli isRepeatable == false, wówczas nie można powtórzyć transakcji z tą samą wartością transactionId, patrz Krok 2: Żądanie transakcji, i należy wygenerować nowy transactionId, patrz Krok 1: Rejestracja transakcji.
- Jeśli zwrócony zostanie status IN_PROGRESS, należy poczekać na zakończenie transakcji, tj. ponowić zapytanie np. za 500 ms.
Jeśli stan IN_PROGRESS jest starszy niż 5 minut, można przetworzyć transakcję jako niepowodzenie.
Przykład odpowiedzi na warunek:
{„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“}
Wyjaśnienie: resultCode=0 oznacza, że żądanie zostało przetworzone pomyślnie, status=8 oznacza, że transakcja jest w stanie "błędu", code=43 podaje szczegółowy błąd, dlaczego zadanie zakończyło się błędem zgodnie z dokumentacją tutaj, wartość "isRepeatable=false" oznacza, że nie można ponownie wywołać TransactionRequestV2 z tą samą wartością TransactionID.