Od wersji aplikacji 1.75.2 i biblioteki AIDL 1.28 można za pomocą interfejsu API app2app zalogować się do aplikacji lub wylogować się z niej bezpośrednio z systemu. Jednocześnie można zwolnić terminal, jeśli był już używany na innym urządzeniu.
Zalogowanie się do aplikacji
Żądanie
Wartościami wejściowymi są parametry zawarte w formacie JSON w klasie LoginEntity:
Atrybuty obowiązkowe:
-
- nazwa użytkownika: adres e-mail do logowania się do aplikacji GP TOM
- hasło: hasło danego użytkownika do aplikacji GP TOM
- terminalId: TID/identyfikator terminala
Atrybuty nieobowiązkowe:
- authCode: Kod uwierzytelniający służący do zwolnienia zajętego identyfikatora TID
void login(String nazwa_użytkownika, String hasło, String identyfikator_terminala)
LoginEntity(
/* nazwa użytkownika = */ nazwa użytkownika,
/* hasło = */ hasło,
/* terminalId = */ terminalId,
/* authCode = */ authCode
)
Odpowiedź – stany
W poniższej tabeli przedstawiono listę statusów, które można otrzymać. Za status pomyślny uznaje się USER_LOGGED_IN lub TID_PRZYPISANY_I_ZALOGOWANY.
W przypadku otrzymania kodu stanu TID_RELEASE_REQUEST, należy ponownie wywołać interfejs API logowania i tym razem podać parametr authCode, który jest automatycznie wysyłany na adres e-mail. Następnie system zwraca status TID_PRZYPISANY_I_ZALOGOWANY – system przypisał danyemu użytkownikowi identyfikator TID i zalogował go.
Pozostałe stany wskazują na stan błędu oraz przyczynę jego wystąpienia.
Jeśli w ramach logowania zwracany jest stan PASSWORD_CHANGE_REQUIRED, jest to pierwsze logowanie, w ramach którego należy najpierw zmienić hasło.
Pierwsze zalogowanie się do aplikacji i zmiana hasła
Jeśli otrzymasz komunikat o stanie PASSWORD_CHANGE_REQUIRED, jest to pierwsze logowanie danego użytkownika i konieczne jest ustawienie nowego hasła. Nowe hasło ustawia się w dwóch krokach.
void changePassword (String oldPass, String newPass, String authCode, boolean validationOnly)
W pierwszym kroku w ramach żądania wypełniane są następujące atrybuty:
- oldPass – hasło początkowe użytkownika
- newPass – nowe hasło użytkownika
- authCode – null
- tylko sprawdzanie poprawności – true
W ten sposób zostanie wygenerowany kod autoryzacyjny, który zostanie wysłany na adres e-mail. W ramach tego kroku otrzymają Państwo informację o statusie HASŁO_OCZEKUJĄCE_NA_POTWIERDZENIE.
Kod autoryzacyjny należy wprowadzić w drugim kroku, w którym atrybuty należy wypełnić w następujący sposób:
- oldPass – hasło początkowe użytkownika
- newPass – nowe hasło użytkownika
- authCode – kod wysłany na adres e-mail
- tylko sprawdzanie poprawności – false
Jeśli kod weryfikacyjny jest poprawny, otrzymujesz komunikat o statusie PASSWORD_CHANGED. W tym momencie hasło użytkownika zostało zmienione i można go zalogować do aplikacji.
Wylogowywanie się z aplikacji
W ramach interfejsu API app2app można również wylogować danego użytkownika z wybranego identyfikatora TID za pośrednictwem punktu końcowego.
void logout()
Po pomyślnym wylogowaniu przywracany jest stan USER_LOGGED_OUT. Jeśli wylogowanie zakończyło się błędem, zwracany jest stan LOGOUT_FAILED.
Przykłady zastosowań
Zaloguj się
val intent = Intent(„com.globalpayments.atom.BIND_TO_LOGIN_SERVICE“) context.bindService(intent, connection, Context.BIND_AUTO_CREATE)
service?.registerCallback(callback)
val loginEntity = LoginEntity(
/* nazwa użytkownika = */ nazwa użytkownika,
/* hasło = */ hasło,
/* terminalId = */ terminalId,
/* authCode = */ authCode
)
service?.login(Gson().toJson(loginEntity))
Zmiana hasła
// Krok 1 – walidacja (kod żądania)
val changePasswordValidationEntity = ChangePasswordEntity(
/* oldPass = */ currentPassword,
/* newPass = */ newPassword,
/* authCode = */ null,
/* validationOnly = */ true,
)
service?.changePassword(Gson().toJson(changePasswordValidationEntity))
// Krok 2 – zastosuj nowe hasło za pomocą kodu
val changePasswordEntity = ChangePasswordEntity(
/* oldPass = */ currentPassword,
/* newPass = */ newPassword,
/* authCode = */ authCode,
/* validationOnly = */ false,
)
service?.changePassword(Gson().toJson(changePasswordEntity))
Wylogowanie
service?.logout()
Kody stanu
EN: Użytkownik pomyślnie się zalogował.
EN: Użytkownik pomyślnie się wylogował.
EN: Próba logowania nie powiodła się.
EN: Próba wylogowania nie powiodła się.
EN: Nieprawidłowa nazwa użytkownika lub hasło.
EN: Brakujący lub nieprawidłowy parametr.
EN: Identyfikator terminala nie jest powiązany z tym użytkownikiem.
EN: Na tym urządzeniu jest aktywny inny użytkownik TID.
EN:Terminal został pomyślnie przypisany, a użytkownik zalogował się.
EN: Nie znaleziono identyfikatora terminala.
EN: Identyfikator terminala jest nieaktywny lub wyłączony.
EN: Nie wybrano terminala dla tej sesji.
EN: Jeśli identyfikator terminala (TID) jest już zajęty przez inną osobę i nie podano kodu autoryzacyjnego, usługa zażąda kodu autoryzacyjnego w celu zwolnienia TID.
EN: Podano nieprawidłowy kod autoryzacyjny (authCode) dla zwolnienia TID.
EN: Użytkownik musi zmienić hasło przed zalogowaniem się.
EN: Wysłano kod potwierdzający w celu zmiany hasła.
EN: Hasło zostało pomyślnie zmienione.
EN: Nie udało się zmienić hasła.
