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:
- Inicializar la librería Rest Client.
- 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
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ó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í: token.status.message