Uwaga
Status transakcji jest ważnym wskaźnikiem dla aplikacji innych firm. Informuje, w jakim stanie jest 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
Po otrzymaniu statusu, ZAKOŃCZONE (obecnie wartości 6,7 i 8), można uznać żądanie za zakończone. W przypadku statusu ZAKOŃCZONE (stan 6), 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żna powtórzyć transakcję z tą samą wartością transactionId, zob. 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, zob. Krok 1: Rejestracja transakcji.
- Jeśli status zwróci wartość 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“, kod=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.
