Od verze aplikace 1.75.2 a AIDL knihovny 1.28 je možné se pomocí app2app API přihlásit/odhlásit do aplikace přímo z Vašeho systému. Zároveň je možné si terminál uvolnit v případě, že se již používal na jiném zařízení.
Přihlášení do aplikace
Request
Vstupní hodnotou jsou parametry, které jsou obsaženy jako json v LoginEntity:
Povinné atributy:
-
- username: e-mail pro přihlášení do aplikace GP TOM
- password: heslo pro daného uživatele do aplikace GP TOM
- terminalId: TID/ id terminálu
Nepovinné atributy:
- authCode: Autentizační kód, který je použit k uvolnění obsazeného TID
void login(String username, String password, String terminalId)
LoginEntity(
/* username = */ username,
/* password = */ password,
/* terminalId = */ terminalId,
/* authCode = */ authCode
)
Response – stavy
Tabulka níže uvádí seznam stavů, které můžete obdržet. Jako úspěšný stav se považuje USER_LOGGED_IN nebo TID_ASSIGNED_AND_LOGGED_IN.
V případě, pokud obdržíte stavový kód TID_RELEASE_REQUEST, je nutné zavolat login API znova a tentokrát vyplnit parametr authCode, který je automaticky zaslán do emailu. Systém následně vrátí status TID_ASSIGNED_AND_LOGGED_IN – systém přiřadil TID danému uživateli a přihlásil jej.
Zbylé stavy indikují chybový stav a důvod vzniku této chyby.
Pokud v rámci přihlášení je vrácen stav PASSWORD_CHANGE_REQUIRED, jedná se o první přihlášení, v rámci kterého je nutné nejprve provést změnu hesla.
Prvotní přihlášení do aplikace se změnou hesla
Pokud obdržíte stav PASSWORD_CHANGE_REQUIRED, jedná se o první přihlášení daného uživatele a je třeba nastavit nové heslo. Nové heslo se nastavuje dvoukrokově.
void changePassword (String oldPass, String newPass, String authCode, boolean validationOnly)
V prvním kroku jsou v rámci requestu vyplněny atributy:
- oldPass – prvotní heslo uživatele
- newPass – nové heslo uživatele
- authCode – null
- validationOnly – true
Tím dojde k vygenerování autorizačního kódu, který je odeslán na email. V rámci tohoto kroku je vám vrácen stav PASSWORD_PENDING_CONFIRMATION.
Autorizační kód je nutné použít ve druhém kroku, kde jsou atributy vyplněny následovně:
- oldPass – prvotní heslo uživatele
- newPass – nové heslo uživatele
- authCode – kód zaslaný do emailu
- validationOnly – false
Pokud je validační kód správný je vám vrácen status PASSWORD_CHANGED. V tomto momentě má uživatel změněné heslo a můžete jej přihlásit do aplikace.
Wylogowywanie się z aplikacji
V rámci app2app API je také možné daného uživatele z vybraného TID odhlásit a to prostřednictvím endpointu.
void logout()
Po úspěšném odhlášení je vám vrácen stav USER_LOGGED_OUT. Pokud by odhlášení skončilo chybou je vrácen stav LOGOUT_FAILED.
Příklady použití
Login
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))
Zmiana hasła
// Step 1 – validation (request code)
val changePasswordValidationEntity = ChangePasswordEntity(
/* oldPass = */ currentPassword,
/* newPass = */ newPassword,
/* authCode = */ null,
/* validationOnly = */ true,
)
service?.changePassword(Gson().toJson(changePasswordValidationEntity))
// Step 2 – apply new password with code
val changePasswordEntity = ChangePasswordEntity(
/* oldPass = */ currentPassword,
/* newPass = */ newPassword,
/* authCode = */ authCode,
/* validationOnly = */ false,
)
service?.changePassword(Gson().toJson(changePasswordEntity))
Odhlášení
service?.logout()
Stavové kódy
EN: User successfully logged in.
EN: User successfully logged out.
EN: Login attempt failed.
EN: Logout attempt failed.
EN: Invalid username or password.
EN: Missing or invalid parameter.
EN: Terminal ID not linked to this user.
EN: Another TID/user is active on this device.
EN:Terminal successfully assigned and user logged in.
EN: Terminal ID not found.
EN: Terminal ID is inactive or disabled.
EN: No terminal selected for this session.
EN: If the Terminal ID is already occupied by someone else and no authorization Code is provided, the service will request an authorization code to release the TID.
EN: Wrong authCode for TID release was provided.
EN: User must change password before login.
EN: Confirmation code sent for password change.
EN: Password successfully changed.
EN: Password change attempt failed.
