Getnet DocsGetnet Docs

Tokenizar credenciales de tarjeta

Esta guía explica cómo generar tokens de autenticación utilizando el AuthRepository. Los tokens permiten que tu aplicación se autentique de forma segura con servicios de terceros o sistemas de backend en nombre del comercio, sin manejar directamente datos sensibles de tarjetas.

Prerrequisitos

  • El TPV debe estar inicializado mediante InitializationRepository.
  • Debes tener acceso al AuthRepository.

Generación de un token

Para recuperar un token, utiliza la función getToken. Esta función se comunica con el Get Smart SDK Payment Service para emitir un token seguro utilizable por un tercero.

Pasos

  1. Llamar a getToken: Invoca la función suspend en tu instancia de AuthRepository.
  2. Gestionar el Resultado: La función devuelve un RepositoryResult<AuthResult>. Debes manejar el estado Success que contiene la interfaz sellada AuthResult.

Ejemplo de código

suspend fun retrieveToken() {
    // 1. Call getToken
    val result = authRepository.getToken()

    // 2. Handle the result
    when (result) {
        is RepositoryResult.Success -> {
            // The request was successful, check the specific AuthResult
            when (val authOutcome = result.data) {
                is AuthResult.AuthInfo -> {
                    println("✅ Token Retrieved Successfully")
                    println("Token: ${authOutcome.token}")
                    println("Merchant ID: ${authOutcome.merchantId}")
                    println("FUC: ${authOutcome.fuc}")
                    println("Terminal: ${authOutcome.terminal}") // Available in TpvInfo, context dependent
                }
                is AuthResult.TokenNotFound -> {
                    println("❌ Token Not Found: ${authOutcome.message}")
                }
            }
        }
        is RepositoryResult.ConnectionError -> {
            println("❌ Connection Error: Ensure the service is running.")
        }
        is RepositoryResult.ProtocolError -> {
            println("❌ Protocol Error: ${result.type}")
        }
        is RepositoryResult.Cancelled -> {
            println("❌ Operation Cancelled: ${result.message}")
        }
    }
}

Resolución de problemas

  • TokenNotFound: Esto puede indicar un problema de configuración con los parámetros del comercio en el host.

Próximos pasos