Od verzie aplikácie 1.75.2 a knižnice AIDL 1.28 je možné pomocou rozhrania app2app API prihlásiť sa do aplikácie alebo z nej odhlásiť priamo z vášho systému. Zároveň je možné uvoľniť terminál v prípade, že sa už používal na inom zariadení.
Prihlásenie do aplikácie
Žiadosť
Vstupnými hodnotami sú parametre, ktoré sú obsiahnuté vo formáte JSON v LoginEntity:
Povinné atribúty:
-
- užívateľské meno: e-mail na prihlásenie do aplikácie GP TOM
- heslo: heslo pre daného používateľa do aplikácie GP TOM
- terminalId: TID/ identifikačný kód terminálu
Nepovinné atribúty:
- authCode: Autentizačný kód, ktorý sa používa na uvoľnenie obsadeného TID
void login(String username, String password, String terminalId)
LoginEntity(
/* username = */ username,
/* heslo = */ heslo,
/* terminalId = */ terminalId,
/* authCode = */ authCode
)
Odpoveď – stavy
V tabuľke nižšie je uvedený zoznam stavov, ktoré môžete dostať. Za úspešný stav sa považuje USER_LOGGED_IN alebo TID_PRIDELENÉ_A_PRIHLÁSENÉ.
V prípade, že dostanete stavový kód TID_ŽIADOSŤ_O_UVEREJNENIE, je potrebné znovu zavolať API prihlásenia a tentoraz vyplniť parameter authCode, ktorý sa automaticky odošle na e-mail. Systém následne vráti stav TID_PRIDELENÉ_A_PRIHLÁSENÉ – systém priradil danému používateľovi TID a prihlásil ho.
Zostávajúce stavy označujú chybový stav a príčinu tejto chyby.
Ak sa v rámci prihlásenia vráti stav PASSWORD_CHANGE_REQUIRED, ide o prvé prihlásenie, pri ktorom je najskôr potrebné zmeniť heslo.
Prvé prihlásenie do aplikácie so zmenou hesla
Ak dostanete stav PASSWORD_CHANGE_REQUIRED, ide o prvé prihlásenie daného používateľa a je potrebné nastaviť nové heslo. Nové heslo sa nastavuje v dvoch krokoch.
void changePassword (String staréHeslo, String novéHeslo, String overovacíKód, boolean lenOverenie)
V prvom kroku sa v rámci požiadavky vyplnia atribúty:
- oldPass – počiatočné heslo používateľa
- newPass – nové heslo používateľa
- authCode – null
- len overenie – true
Týmto sa vygeneruje autorizačný kód, ktorý sa odošle na e-mail. V rámci tohto kroku sa vám vráti stav HESLO_ČAKÁ_NA_POTVRDENIE.
Autorizačný kód je potrebné použiť v druhom kroku, kde sú atribúty vyplnené takto:
- oldPass – počiatočné heslo používateľa
- newPass – nové heslo používateľa
- authCode – kód zaslaný na e-mail
- len overenie – false
Ak je overovací kód správny, zobrazí sa vám stav PASSWORD_CHANGED. V tomto momente má používateľ zmenené heslo a môžete ho prihlásiť do aplikácie.
Odhlásenie z aplikácie
V rámci rozhrania app2app API je tiež možné daného používateľa z vybraného TID odhlásiť prostredníctvom koncového bodu.
void logout()
Po úspešnom odhlásení sa vám obnoví stav USER_LOGGED_OUT. Ak by sa odhlásenie skončilo chybou, vráti sa stav LOGOUT_FAILED.
Príklady použitia
Prihlásenie
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,
/* heslo = */ heslo,
/* terminalId = */ terminalId,
/* authCode = */ authCode
)
service?.login(Gson().toJson(loginEntity))
Zmena hesla
// Krok 1 – overenie (kód požiadavky)
val changePasswordValidationEntity = ChangePasswordEntity(
/* oldPass = */ currentPassword,
/* newPass = */ newPassword,
/* authCode = */ null,
/* validationOnly = */ true,
)
service?.changePassword(Gson().toJson(changePasswordValidationEntity))
// Krok 2 – nastavenie nového hesla pomocou kódu
val changePasswordEntity = ChangePasswordEntity(
/* oldPass = */ currentPassword,
/* newPass = */ newPassword,
/* authCode = */ authCode,
/* validationOnly = */ false,
)
service?.changePassword(Gson().toJson(changePasswordEntity))
Odhlásenie
service?.logout()
Stavové kódy
EN: Používateľ sa úspešne prihlásil.
EN: Používateľ sa úspešne odhlásil.
EN: Pokus o prihlásenie sa nepodaril.
EN: Pokus o odhlásenie sa nepodaril.
EN: Neplatné používateľské meno alebo heslo.
EN: Chýbajúci alebo neplatný parameter.
EN: ID terminálu nie je priradené k tomuto používateľovi.
EN: Na tomto zariadení je aktívny iný používateľ TID.
EN:Terminál bol úspešne priradený a používateľ sa prihlásil.
EN: ID terminálu sa nenašlo.
EN: Identifikátor terminálu je neaktívny alebo deaktivovaný.
EN: Pre túto reláciu nebol vybraný žiadny terminál.
EN: Ak je identifikátor terminálu (TID) už obsadený inou osobou a nie je zadaný autorizačný kód, služba požiada o autorizačný kód na uvoľnenie TID.
EN: Bol zadaný nesprávny autorizačný kód pre uvoľnenie TID.
EN: Používateľ musí pred prihlásením zmeniť heslo.
EN: Bol odoslaný potvrdzovací kód na zmenu hesla.
EN: Heslo bolo úspešne zmenené.
EN: Pokus o zmenu hesla sa nepodaril.
