Recuperar Token
Este proceso es obligatorio
El proceso de integración con el SDK Full se inicia con la obtención del token de autenticación, un recurso clave que facilita el acceso a las APIs de Menta, como operaciones de pago, anulación, devolución y reversa.
Para llevar a cabo este paso, es necesario utilizar la API Key de tipo merchant, la cual forma parte de los pre requisitos. Es responsabilidad del cliente garantizar el acceso y la gestión adecuada de esta clave durante el proceso de integración.
Requisitos
- API Key de tipo merchant.
Resultado
- Token de autenticación listo para ser usado en los siguientes pasos.
Cómo obtener el token
Pasos para recuperar el token:
- Instanciar el objeto
ExternalTokenData
y pasarle como parámetro el contexto de la Aplicación. - Consumir el método
getExternalToken
pasando como parámetro el API Key de tipo merchant. - Configurar un observer para recibir la respuesta del método
getExternalToken
. - Persistir localmente el token de autenticación usando el objeto
Storage
.
Ejemplo de implementación
RestClientConfiguration.configure(new AppRestClientConfigure());
ExternalTokenData externalTokenData = new ExternalTokenData(getReactApplicationContext().getApplicationContext());
externalTokenData.getExternalToken(apiKey);
TokenObserver tokenObserver = new TokenObserver(getReactApplicationContext().getApplicationContext());
LiveData<LoginResponse> loginResponse = externalTokenData.getExternalToken();
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
loginResponse.observeForever(tokenObserver);
}
});
loginResponse.observeForever(tokenObserver);
@Override
public void onChanged(LoginResponse loginResponse) {
if (loginResponse.getStatus().getStatusType() != StatusType.ERROR) {
//get data
Storage storage = new Storage(context); // almacenar token
storage.putTokenType(loginResponse.getTokenType()); // tokenType recuperado en el punto anterior
storage.putIdToken(loginResponse.getIdToken()); // idToken recuperado en el punto anterior
} else {
loginResponse.getStatus().getMessage();
}
}
Ejemplo de response
El resultado que se recibe es el objeto LoginResponse mediante el observer configurado. Este tendrá 2 valores: el tipo de token y el token.
LoginResponse(
tokenType="Bearer",
idToken="eyJraWQiOiJHVThWK2pib2xIUlRkaWhLMHVaVVVZZVVVUm9VbExOdmo2U2swVDVyU0k4PSIsImFsZyI6IlJTMjU2In0.eyJjb3VudHJ5IjoiQVJHIiwic3ViIjoiOThmNmM0ZWEtNGI1My00ZDdkLTllZDgtZWRkOWZjZjhiZjdhIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX1RsbEZDMWJhZyIsImNvZ25pdG86dXNlcm5hbWUiOiI5OGY2YzRlYS00YjUzLTRkN2QtOWVkOC1lZGQ5ZmNmOGJmN2EiLCJtZXJjaGFudF9pZCI6ImMyMTkyY2Y4LWUyMjEtNGNjYy04M2Q0LTFjMjEwNWQ0NmI5YSIsIm9yaWdpbl9qdGkiOiJlZmZlOTQzNy1jZmUxLTRiZDctYjc1ZS1mN2EyMGJjNTdlMWQiLCJhdWQiOiI3NzQzNjJybmJlYWF1dHVqZGpwbmpwNXZjOCIsInVzZXJfdHlwZSI6Ik1FUkNIQU5UIiwiZXZlbnRfaWQiOiJiODUxYWU2OS1lMzVlLTQzM2MtOTJlMi00ZGFmNWMzNDMwNGYiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY4NTY1MDk4MCwiY3VzdG9tZXJfaWQiOiIxZDMwZTdkNy0wNjkzLTQ2OTItOGMzNi01OGUxYmEyMDFkYTEiLCJleHAiOjE2ODU3MzczODAsImlhdCI6MTY4NTY1MDk4MCwianRpIjoiNjAyNzNmOGUtNTA0Yy00MGYzLWFlYTktOTcwMjI5YzIyZGRhIiwiZW1haWwiOiJkaWVnby5zY2hpbGxlckBtZW50YS5nbG9iYWwifQ.gTr1JYkeVHqlnYjxyjrWZMbSsUEQ7Z6g4iC_MFZjV9-o1Y2LqfPXXcYy5-TKvBgzn6UerMR1SSSen5AQXCfzlH4Wpd8X-GfiXSRooCPsDiIHQ-i0QQ9oyJHAKm6gM4O0naePYSnpl8VOByQadfWPxQRiG_AqmTOCoNlJUfZ4nXndvqpH4CcIES5nUgYGFVP3nDXLqaJmgYYl_1XQp0ejWdIdsqz_zeMWkl6gWCDql0gGuWYa8HKKLu1Z0m2uLUgCvJCgn7ORqamxqqCD2GvfegUtN5uI6jmF7qvX-3rKHmGR-0ynBiWpADS73fpUYP56P6NPbaJLYQubIwk7W-mkxg"
)
Códigos de respuesta
El resultado se recibe mediante el objeto LoginResponse.
En la siguiente tabla se muestran los diferentes códigos de error que se recuperan de loginResponse.status.type
Código | Descripción |
---|---|
StatusType.ERROR | Falló el proceso. |
StatusType.SUCCESS | El proceso se realizó exitosamente. |
Para el caso de error, se puede recuperar el mensaje de error así: loginResponse.status.message