Recuperar Token

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:

  1. Instanciar el objeto ExternalTokenData y pasarle como parámetro el contexto de la Aplicación.
  2. Consumir el método getExternalToken pasando como parámetro el API Key de tipo merchant.
  3. Configurar un observer para recibir la respuesta del método getExternalToken.
  4. 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ódigoDescripción
StatusType.ERRORFalló el proceso.
StatusType.SUCCESSEl proceso se realizó exitosamente.

Para el caso de error, se puede recuperar el mensaje de error así: loginResponse.status.message