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. Inicializar la librería Rest Client.
  2. Instanciar el objeto ExternalTokenData y pasarle como parámetro el contexto de la Aplicación.
  3. Consumir el método getExternalToken pasando como parámetro el API Key de tipo merchant.
  4. Configurar un observer para recibir la respuesta del método getExternalToken.
  5. Persistir localmente el token de autenticación usando el objeto Storage.

Ejemplo de implementación

import com.menta.android.common_cross.util.StatusType
import com.menta.android.core.viewmodel.ExternalTokenData
import com.menta.android.core.viewmodel.MasterKeyData
import com.menta.android.restclient.core.RestClientConfiguration.configure
import com.menta.android.restclient.core.Storage
 
 
configure(AppfinRestClientConfigure())
val externalTokenData = ExternalTokenData(this)
 
//Recuperar el token
externalTokenData.getExternalToken(merchantApiKey)
 
//Configurar el observer
externalTokenData.getExternalToken.observe(this) { token ->
    if (token.status.statusType != StatusType.ERROR) {
        //Guardar el token
        val storage = Storage(this)
        storage.putIdToken(token.idToken)
        storage.putTokenType(token.tokenType)
    } else {
        Log.i(TAG, "Get token ERROR: ${token.status.message}")
    }
}

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 token.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í: token.status.message