Από την έκδοση 1.75.2 της εφαρμογής και την έκδοση 1.28 της βιβλιοθήκης AIDL, είναι δυνατή η σύνδεση/αποσύνδεση από την εφαρμογή απευθείας από το σύστημά σας μέσω του API app2app. Παράλληλα, είναι δυνατή η απελευθέρωση του τερματικού, σε περίπτωση που χρησιμοποιούνταν ήδη σε άλλη συσκευή.
Σύνδεση στην εφαρμογή
Αίτημα
Ως τιμές εισόδου χρησιμοποιούνται οι παράμετροι που περιλαμβάνονται σε μορφή JSON στο LoginEntity:
Υποχρεωτικά χαρακτηριστικά:
-
- όνομα χρήστη: διεύθυνση ηλεκτρονικού ταχυδρομείου για τη σύνδεση στην εφαρμογή Genius mobile pay
- κωδικός πρόσβασης: ο κωδικός πρόσβασης του συγκεκριμένου χρήστη για την εφαρμογή Genius mobile pay
- terminalId: TID/ κωδικός τερματικού
Προαιρετικά χαρακτηριστικά:
- authCode: Κωδικός πιστοποίησης που χρησιμοποιείται για την απελευθέρωση ενός κατειλημμένου TID
void login(String username, String password, String terminalId)
LoginEntity(
/* username = */ username,
/* password = */ password,
/* terminalId = */ terminalId,
/* authCode = */ authCode
)
Response – καταστάσεις
Ο παρακάτω πίνακας παρουσιάζει μια λίστα με τις καταστάσεις που μπορεί να εμφανιστούν. Ως επιτυχής κατάσταση θεωρείται USER_LOGGED_IN ή TID_ΑΝΑΤΕΘΕΝ_ΚΑΙ_ΣΥΝΔΕΔΕΜΕΝΟΣ.
Σε περίπτωση που λάβετε έναν κωδικό κατάστασης TID_ΑΙΤΗΣΗ_ΕΚΔΟΣΗΣ, είναι απαραίτητο να καλέσετε ξανά το API σύνδεσης και αυτή τη φορά να συμπληρώσετε την παράμετρο authCode, το οποίο αποστέλλεται αυτόματα στο email. Στη συνέχεια, το σύστημα επιστρέφει την κατάσταση TID_ΑΝΑΤΕΘΕΝ_ΚΑΙ_ΣΥΝΔΕΔΕΜΕΝΟΣ – το σύστημα απέδωσε τον αριθμό TID στον συγκεκριμένο χρήστη και τον συνδέθηκε.
Οι υπόλοιπες καταστάσεις υποδηλώνουν την ύπαρξη σφάλματος και τον λόγο για τον οποίο προέκυψε αυτό το σφάλμα.
Εάν κατά τη διαδικασία σύνδεσης επιστραφεί η κατάσταση ΑΠΑΙΤΕΙΤΑΙ ΑΛΛΑΓΗ ΚΩΔΙΚΟΥ ΠΡΟΣΒΑΣΗΣ, πρόκειται για την πρώτη σύνδεση, κατά την οποία πρέπει πρώτα να αλλάξετε τον κωδικό πρόσβασής σας.
Πρώτη σύνδεση στην εφαρμογή με αλλαγή κωδικού πρόσβασης
Εάν λάβετε την κατάσταση ΑΠΑΙΤΕΙΤΑΙ ΑΛΛΑΓΗ ΚΩΔΙΚΟΥ ΠΡΟΣΒΑΣΗΣ, πρόκειται για την πρώτη σύνδεση του συγκεκριμένου χρήστη και πρέπει να οριστεί νέος κωδικός πρόσβασης. Ο νέος κωδικός πρόσβασης ορίζεται σε δύο βήματα.
void changePassword (String oldPass, String newPass, String authCode, boolean validationOnly)
Στο πρώτο βήμα, συμπληρώνονται τα ακόλουθα χαρακτηριστικά στο πλαίσιο του αιτήματος:
- oldPass – αρχικός κωδικός πρόσβασης του χρήστη
- newPass – νέος κωδικός πρόσβασης χρήστη
- authCode – null
- μόνο επικύρωση – true
Με αυτόν τον τρόπο δημιουργείται ένας κωδικός εξουσιοδότησης, ο οποίος αποστέλλεται στο email σας. Στο πλαίσιο αυτού του βήματος, σας επιστρέφεται η κατάσταση PASSWORD_PENDING_CONFIRMATION.
Ο κωδικός εξουσιοδότησης πρέπει να χρησιμοποιηθεί στο δεύτερο βήμα, όπου τα πεδία συμπληρώνονται ως εξής:
- oldPass – αρχικός κωδικός πρόσβασης του χρήστη
- newPass – νέος κωδικός πρόσβασης χρήστη
- authCode – ο κωδικός που στάλθηκε στο email
- μόνο επικύρωση – false
Εάν ο κωδικός επικύρωσης είναι σωστός, σας επιστρέφεται η κατάσταση ΑΛΛΑΓΗ ΚΩΔΙΚΟΥ ΠΡΟΣΒΑΣΗΣ. Σε αυτό το σημείο, ο χρήστης έχει αλλάξει τον κωδικό πρόσβασής του και μπορείτε να τον συνδέσετε στην εφαρμογή.
Αποσύνδεση από την εφαρμογή
Στο πλαίσιο του API app2app, είναι επίσης δυνατό να αποσυνδεθεί ο συγκεκριμένος χρήστης από τον επιλεγμένο TID μέσω ενός endpoint.
void logout()
Μετά την επιτυχή αποσύνδεση, η κατάστασή σας επαναφέρεται Ο χρήστης έχει αποσυνδεθεί. Εάν η αποσύνδεση ολοκληρωθεί με σφάλμα, επιστρέφεται η κατάσταση LOGOUT_FAILED.
Παραδείγματα χρήσης
Σύνδεση
val intent = Intent(„com.globalpayments.atom.BIND_TO_LOGIN_SERVICE“) context.bindService(intent, connection, Context.BIND_AUTO_CREATE)
service?.registerCallback(callback)
val loginEntity = LoginEntity(
/* username = */ username,
/* password = */ password,
/* terminalId = */ terminalId,
/* authCode = */ authCode
)
service?.login(Gson().toJson(loginEntity))
Αλλαγή κωδικού πρόσβασης
// Βήμα 1 – επικύρωση (κωδικός αιτήματος)
val changePasswordValidationEntity = ChangePasswordEntity(
/* oldPass = */ currentPassword,
/* newPass = */ newPassword,
/* authCode = */ null,
/* validationOnly = */ true,
)
service?.changePassword(Gson().toJson(changePasswordValidationEntity))
// Βήμα 2 – εφαρμογή νέου κωδικού πρόσβασης με κωδικό
val changePasswordEntity = ChangePasswordEntity(
/* oldPass = */ currentPassword,
/* newPass = */ newPassword,
/* authCode = */ authCode,
/* validationOnly = */ false,
)
service?.changePassword(Gson().toJson(changePasswordEntity))
Αποσύνδεση
service?.logout()
Κωδικοί κατάστασης
EN: Ο χρήστης συνδέθηκε με επιτυχία.
EN: Ο χρήστης αποσυνδέθηκε με επιτυχία.
EN: Η προσπάθεια σύνδεσης απέτυχε.
EN: Η απόπειρα αποσύνδεσης απέτυχε.
EN: Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης.
EN: Λείπει ή είναι άκυρη η παράμετρος.
EN: Ο κωδικός τερματικού δεν έχει συνδεθεί με αυτόν τον χρήστη.
EN: Υπάρχει άλλος χρήστης TID ενεργός σε αυτή τη συσκευή.
EN:Ο τερματικός σταθμός εκχωρήθηκε με επιτυχία και ο χρήστης συνδέθηκε.
EN: Δεν βρέθηκε ο αναγνωριστικός κωδικός τερματικού.
EN: Ο κωδικός τερματικού είναι ανενεργός ή απενεργοποιημένος.
EN: Δεν έχει επιλεγεί τερματικό για αυτή τη συνεδρία.
EN: Εάν ο κωδικός τερματικού (TID) χρησιμοποιείται ήδη από κάποιον άλλο και δεν έχει δοθεί κωδικός εξουσιοδότησης, η υπηρεσία θα ζητήσει κωδικό εξουσιοδότησης για την απελευθέρωση του TID.
EN: Παρέχθηκε λανθασμένος κωδικός εξουσιοδότησης (authCode) για την απελευθέρωση του TID.
EN: Ο χρήστης πρέπει να αλλάξει τον κωδικό πρόσβασής του πριν συνδεθεί.
EN: Αποστάλθηκε κωδικός επιβεβαίωσης για την αλλαγή κωδικού πρόσβασης.
EN: Ο κωδικός πρόσβασης άλλαξε με επιτυχία.
EN: Η προσπάθεια αλλαγής κωδικού πρόσβασης απέτυχε.
