Headless SDK (Enrollment Android)

Esta página fornece um guia para o registro do Yuno Headless SDK Android.

O Yuno Headless SDK Android oferece uma solução flexível e sem interface de usuário para cadastrar métodos de pagamento e tokenizar cartões.

Esse SDK oferece controle total sobre o processo de registro de métodos de pagamento, o que o torna ideal para comerciantes que:

  • Precisa de controle total sobre a IU e a experiência do usuário
  • Deseja implementar fluxos de registro personalizados
  • Exigir recursos avançados de integração

Headless SDK recursos essenciais como:

  • Tokenização de cartões
  • Registro de método de pagamento seguro
  • Acesso direto à API
  • Tratamento de erros personalizado

Para os comerciantes que precisam de uma solução de interface do usuário pré-criada ou de uma integração mais simples, considere usar nossas outras implementações de SDK:

Requisitos

Antes de iniciar a integração do Yuno Android SDK, certifique-se de que seu projeto atenda aos requisitos técnicos. Além disso, certifique-se de que os seguintes pré-requisitos estejam em vigor:

  • Você deve ter uma conta Yuno ativa
  • Você precisa das suas credenciais da API Yuno:
    • account_id
    • public-api-key
    • private-secret-key

Você pode obter essas credenciais na seção Desenvolvedores do painel do Yuno. Elas são necessárias para:

  • Criar um customerque é necessário antes de registrar os métodos de pagamento
  • Criar um customer_sessionque inicializa o fluxo de registro
📘

Informações sobre a versão do SDK

Verifique a versão atual do SDK acessando as notas de lançamento ou visitando o repositório do Yuno Android SDK.

Etapa 1: Criar um cliente

Crie um cliente usando o endpoint Criar cliente endpoint cadastrar métodos de pagamento.

Pré-requisitos:

  • Conta Yuno ativa
  • Credenciais da API

Necessário para:

  • Identificar a pessoa que está registrando o método de pagamento
  • Ativação da funcionalidade de método de pagamento salvo
  • Rastreamento do histórico de matrículas
  • Armazene o ID do cliente de forma segura para a próxima etapa.

Etapa 2: Criar uma sessão de cliente

Criar um novo customer_session usando o Criar sessão do cliente endpoint:

Pré-requisitos:

  • ID do cliente da Etapa 1
  • Credenciais da API

Ações necessárias:

  • Incluir o ID do cliente na solicitação
  • Armazene o customer_session ID
  • Gerar um novo customer_session para cada registro de método de pagamento.

Etapa 3: Adicione o SDK ao seu projeto

Pré-requisitos:

  • Configuração do projeto Android
  • Acesso à configuração do Gradle
  1. Adicione a fonte do repositório:
maven { url "https://yunopayments.jfrog.io/artifactory/snapshots-libs-release" }
  1. Adicione a dependência do SDK:
dependencies {
    implementation 'com.yuno.payments:android-sdk:{last_version}'
}
📘

Permissão de Internet necessária

O Yuno SDK inclui automaticamente o INTERNET necessária para solicitações de rede. Certifique-se de que seu AndroidManifest.xml contenha:

<uses-permission android:name="android.permission.INTERNET" />

Etapa 4: Initialize Headless SDK a chave pública

Recupere suas chaves públicas de API no painel do Yuno.

Se você não tiver implementado um aplicativo personalizado, crie um. Na seção onCreate() de sua classe de aplicativo, chame a função initialize (Yuno.initialize):

class CustomApplication : Application() {
  override fun onCreate() {
    super.onCreate()
    Yuno.initialize(
      this,
      PUBLIC_API_KEY,
      config: YunoConfig,
    )
  }
}

Etapa 5: Criar uma sessão de cliente

Para iniciar o processo de inscrição:

  1. Criar um cliente usando o Criar o cliente endpoint. A resposta incluirá o cliente id.

  2. Crie uma sessão de cliente usando:

endpoint do endpoint fornecerá o customer_session valor necessário para a inscrição.

🚧

Geração de sessões de clientes

Você precisa gerar um novo customer_session toda vez que você registrar um método de pagamento.

Etapa 6: Crie um objeto de método de pagamento de registro

Crie um objeto de método de pagamento de inscrição usando o endpoint Enroll Payment Method endpoint configurar a Headless SDK para inscrição. Ao criar esse objeto, especifique em qual tipo de método de pagamento seu cliente pode se inscrever. Atualmente, o Headless SDK suporta Headless SDK o tipo de método de pagamento CARD.

📘

Verificação de cartão

Para verificar os cartões (autorização de valor zero) antes do registro, inclua o verify ao criar o objeto de método de pagamento para a sessão do cliente. Saiba mais

Etapa 7: Inicie o processo de registro

Use o apiClientEnroll função para iniciar o processo de inscrição. Essa função requer parâmetros de configuração que definem como a inscrição será processada. A tabela a seguir descreve os parâmetros necessários:

ParâmetroDescrição
country_codeEsse parâmetro determina o país para o qual o processo de pagamento está sendo configurado. A lista completa de países compatíveis e seus respectivos country_code está disponível no site Cobertura do país página.
customer_sessionRefere-se ao registro atual sessão do cliente recebido como resposta ao Criar sessão do cliente endpoint. Exemplo: 438413b7-4921-41e4-b8f3-28a5a0141638

O bloco de código a seguir mostra um exemplo da configuração dos parâmetros:

override fun onCreate(savedInstanceState: Bundle?) {
	val apiClientEnroll = Yuno.apiClientEnroll(
  	country_code = "CO",
    
    customerSession = "eec6578e-ac2f-40a0-8065-25b5957f6dd3",

    context = this 
  )
 }

Etapa 8: Gerar um token armazenado

Depois de coletar todas as informações necessárias sobre o cliente, crie um vaulted_token usando o apiClientEnroll.continueEnrollment função. Como essa é uma função assíncrona, use um try/catch bloco para lidar com quaisquer erros que possam ocorrer. O exemplo a seguir mostra como criar um vaulted_token:

apiClientEnroll.continueEnrollment( 
 collectedData = EnrollmentCollectedData(
    customerSession = "customer_session",
    métodoDePagamento = MétodoDeInscrição(
           tipo = "CARTÃO",
           cartão = DadosDoCartão(
               salvar = verdadeiro,
               detalhes = Detalhes(
                   mêsDeVencimento = 11,
                   anoDeVencimento = 55,
                   número = "4111111111111111",
                   securityCode = "123",
                   holderName = "Nome Sobrenome",
                   type = CardType.DEBIT
               ),
           customer = Customer(
               id = "id",
               merchantCustomerId = "merchant_customer_id",
               firstName = "firstName",
 email "[email ]",
               país = "CO",
documento = Documento(
tipo de documento = "PAS",
número do documento = "PAS12312"),

telefone = Telefone(
número = "321123321123",
código do país = "57")
)
),

contexto = este
 )

O apiClientEnroll.continueEnrollment retorna um tipo Observable que estende LiveData. Você pode observar a resposta como um padrão LiveData com tipo SingleLiveEvent<Map<String, Any?>>. Este LiveData emite apenas uma vez e retorna um Map contendo a resposta completa. Abaixo está um exemplo de resposta da chamada apiClientEnroll.continueEnrollment:

{
  "vaulted_token": "9104911d-5df9-429e-8488-ad41abea1a4b",
  "status": "SUCCEEDED",
  "customer": {
    "session": "eec6578e-ac2f-40a0-8065-25b5957f6dd3"
  }
}

O bloco de código a seguir mostra um exemplo de observação da resposta:

apiClientPayment.continueEnrollment(data, context).observe(context) { response ->
   val status = response["status"] as String?
   val vauldtedtoken = response["vaulted_token"] as String?
}
📘

Rastreamento de status do webhook

Considere usar o status de registro recebido via Webhooks. A Yuno recomenda sempre usar esse status para basear e tomar decisões de negócios em sua plataforma.