Ανακοίνωση
Η κατάσταση της συναλλαγής είναι ένας σημαντικός δείκτης για τις εφαρμογές τρίτων. Σας ενημερώνει σε ποια κατάσταση βρίσκεται η συναλλαγή και αν μπορεί να επαναληφθεί η συναλλαγή. Δεν σας λέει τίποτα για την επιτυχία/αποτυχία της συναλλαγής.
Αίτημα [transactionId]
Η τιμή εισόδου TransactionId παράγεται στο Βήμα 1 - Καταχώρηση συναλλαγής.
void stateRequest(String transactionId, IStateResultListener listener) throws RemoteException
Απάντηση [StateResultEntity]
Κράτη
Μόλις η κατάσταση που λαμβάνετε είναι ΟΛΟΚΛΗΡΩΣΗ (επί του παρόντος τιμές 6,7 και 8), θα πρέπει να αρχίσετε να καλείτε το ερώτημα για τα στοιχεία της συναλλαγής για να λάβετε το αποτέλεσμα της συναλλαγής, βλέπε"4.Λήψη στοιχείων συναλλαγής".
- Εάν isRepeatable == true, τότε μπορείτε να επαναλάβετε τη συναλλαγή με την ίδια τιμή transactionId, βλέπε Βήμα 2: Αίτηση συναλλαγής
- Εάν isRepeatable == false, τότε δεν μπορείτε να επαναλάβετε μια συναλλαγή με την ίδια τιμή transactionId, βλέπε Βήμα 2: Αίτηση συναλλαγής, και πρέπει να δημιουργήσετε ένα νέο transactionId, βλέπε Βήμα 1: Καταχώρηση συναλλαγής.
- Εάν επιστραφεί η κατάσταση IN_PROGRESS, θα πρέπει να περιμένετε να ολοκληρωθεί η συναλλαγή, δηλαδή να ζητήσετε ξανά σε 500 ms για παράδειγμα.
Εάν η κατάσταση IN_PROGRESS είναι παλαιότερη από 5 λεπτά, μπορείτε να επεξεργαστείτε τη συναλλαγή ως αποτυχία.
Παράδειγμα απόκρισης σε μια συνθήκη:
{„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“}
Επεξήγηση: resultCode=0 σημαίνει ότι η αίτηση επεξεργάστηκε επιτυχώς, status=8 σημαίνει ότι η συναλλαγή βρίσκεται σε κατάσταση "σφάλματος", code=43 δίνει ένα λεπτομερές σφάλμα για το οποίο η εργασία έληξε με σφάλμα σύμφωνα με την τεκμηρίωση εδώ, η τιμή "isRepeatable=false" σημαίνει ότι δεν μπορείτε να καλέσετε ξανά το TransactionRequestV2 με την ίδια τιμή TransactionID.