Getnet DocsGetnet Docs

Tokenizar Credenciais de Cartão

Este guia explica como gerar tokens de autenticação utilizando o AuthRepository. Os tokens permitem que sua aplicação se autentique de forma segura com serviços de terceiros ou sistemas de backend em nome do estabelecimento, sem a necessidade de manipular diretamente dados sensíveis de cartões.

Pré-requisitos

  • O TPV deve estar inicializado via InitializationRepository.
  • Você deve ter acesso ao AuthRepository (via Dagger Hilt ou RepositoryProvider).

Gerando um Token

Para recuperar um token, utilize a função getToken. Esta função comunica-se com o Get Smart SDK Payment Service para emitir um token seguro utilizável por terceiros.

Passos

  1. Chamar getToken: Invoque a função suspend em sua instância de AuthRepository.
  2. Tratar o Resultado: A função retorna um RepositoryResult<AuthResult>. Você deve tratar o estado de Success, que contém a interface selada AuthResult.

Exemplo 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}")
        }
    }
}

Entendendo a Resposta

A interface selada AuthResult fornece dois desfechos possíveis:

DesfechoClasseDescrição
SucessoAuthInfoContém o token, fuc, merchantId, merchantName, merchantCountry e merchantCurrency.
FalhaTokenNotFoundIndica que um token válido não pôde ser gerado ou encontrado. Contém uma string de mensagem de erro.

Resolução de Problemas

  • ConnectionError: Se você receber este erro, verifique se o Get Smart SDK Payment Service está instalado e em execução no dispositivo.
  • TokenNotFound: Isso pode indicar um problema de configuração nos parâmetros do estabelecimento no host da Getnet.

Próximos Passos