9 - Eventos

Fluxo completo de métodos e eventos de inicialização, criação de sessão e pagamento.

Esses eventos são enviados durante os fluxos nas callbacks onEvent dentro das funcionalidades de pagamento.

Quando os eventos são disparados

Os eventos de inicialização e criação de sessão podem ser disparados de duas formas:

Antes do pagamento

Quando você chama os métodos opcionais antes de iniciar o pagamento:

  • TapOnPhone.initialize() — opcional
  • TapOnPhone.activateSession() — opcional

Durante o pagamento

Quando TapOnPhone.pay() é chamado antes dos métodos opcionais serem finalizados. Nesse caso, os eventos são disparados automaticamente dentro do fluxo de pagamento.

Comportamento dos eventos

Dependendo de como você estrutura as chamadas dos métodos, você pode receber:

  • Eventos padrão (ex: ZoopActivationStarted) — sempre disparados durante o fluxo correspondente
  • Eventos duplicados — Se nenhum dos métodos opcionais for chamado antes de TapOnPhone.pay(), você receberá tanto o evento padrão quanto seu equivalente InPayment (ex: ZoopActivationStarted e ZoopActivationInPaymentStarted)
💡

Os eventos InPayment só são disparados quando a tela do SDK é aberta durante a execução de um desses processos.

Mapeamento de eventos padrão → InPayment

Cada evento padrão possui um equivalente InPayment. Veja o mapeamento completo:

val relatedEvents = mapOf<ApplicationEvent, ApplicationEvent>(
    ZoopActivationStarted to ZoopActivationInPaymentStarted,
    ZoopActivationSucceeded to ZoopActivationInPaymentSucceeded,
    ZoopActivationFailed to ZoopActivationInPaymentFailed,
    ZoopActivationFinished to ZoopActivationInPaymentFinished,
    KernelActivationStarted to KernelActivationInPaymentStarted,
    KernelActivationSucceeded to KernelActivationInPaymentSucceeded,
    KernelActivationFailed to KernelActivationInPaymentFailed,
    KernelActivationFinished to KernelActivationInPaymentFinished,
    SessionActivationStarted to SessionActivationInPaymentStarted,
    SessionActivationSucceeded to SessionActivationInPaymentSucceeded,
    SessionActivationFailed to SessionActivationInPaymentFailed,
    SessionActivationFinished to SessionActivationInPaymentFinished,
)

Fluxo de métodos e eventos

A tabela abaixo mostra o fluxo completo de métodos e os eventos associados a cada um.

Para maiores detalhes, consulte as páginas de fluxo de eventos.


setConfig()

TipoObrigatório
Eventos disparadosNenhum

initialize()

TipoOpcional
Eventos disparados

Terminal Activation

  • TerminalActivationStarted

Zoop Activation

  • ZoopActivationStarted
  • ZoopActivationSkipped (se aplicável)
  • ZoopActivationSucceeded ou ZoopActivationFailed
  • ZoopActivationFinished

Kernel Activation

  • KernelActivationStarted
  • KernelRestartProcessing (se aplicável)
  • KernelActivationSucceeded ou KernelActivationFailed
  • KernelActivationFinished

Attestation API (se aplicável)

  • AttestationApiStarted
  • AttestationApiSucceeded ou AttestationApiFailed
  • AttestationApiFinished

Terminal Activation (conclusão)

  • TerminalActivationSucceeded ou TerminalActivationFailed
  • TerminalActivationFinished

Diagrama de fluxo

Fluxograma do método initialize() mostrando os eventos de Terminal Activation, Zoop Activation, Kernel Activation e Attestation API

activateSession()

TipoOpcional
Eventos disparados

Session Activation

  • SessionActivationStarted
  • SessionActivationSucceeded ou SessionActivationFailed

Attestation API (se aplicável)

  • AttestationApiStarted
  • AttestationApiSucceeded ou AttestationApiFailed
  • AttestationApiFinished

Session Activation (conclusão)

  • SessionActivationFinished

Diagrama de fluxo

Fluxograma do método activateSession() mostrando os eventos de Session Activation e Attestation API

pay()

TipoObrigatório
💡

Se initialize() e activateSession() não foram chamados antes de pay(), todos os eventos de ativação e sessão serão disparados automaticamente durante o pagamento, com o sufixo InPayment nos nomes dos eventos.

Eventos de ativação InPayment (se aplicável)

Zoop Activation InPayment (se aplicável)

  • ZoopActivationInPaymentStarted
  • ZoopActivationInPaymentSucceeded ou ZoopActivationInPaymentFailed
  • ZoopActivationInPaymentFinished

Kernel Activation InPayment (se aplicável)

  • KernelActivationInPaymentStarted
  • KernelActivationInPaymentSucceeded ou KernelActivationInPaymentFailed
  • KernelActivationInPaymentFinished

Session Activation InPayment

  • SessionActivationInPaymentStarted
  • SessionActivationInPaymentSucceeded ou SessionActivationInPaymentFailed
  • SessionActivationInPaymentFinished
Eventos de pagamento

Leitura do cartão

  • LaunchBuiltInScreen
  • PaymentProcessStarted
  • CardReadingStarted
  • HoldCardSteady
  • VerifyDevice
  • CardReadingRetry (se aplicável)
  • TryAnotherCard (se aplicável)
  • CardReadingFinished

PIN e autorização

  • PinInputStarted (se aplicável)
  • PinInputCleared (se aplicável)
  • TransactionAborted (se aplicável)
  • AuthorisingPleaseWait
  • ApprovedPleaseSign (se aplicável)

Attestation API (se aplicável)

  • AttestationApiStarted
  • AttestationApiSucceeded ou AttestationApiFailed
  • AttestationApiFinished

Resultado do pagamento

  • PaymentProcessSucceeded ou PaymentProcessFailed

Confirmação

  • PaymentConfirmationStarted
  • PaymentConfirmationSucceeded ou PaymentConfirmationFailed
  • PaymentConfirmationFinished

Animação de bandeira (se aplicável)

  • BrandAnimationStarted
  • BrandAnimationFinished

Finalização

  • CloseBuiltInScreen
  • PaymentProcessFinished

Diagrama de fluxo

Fluxograma do método pay() mostrando os eventos de inicialização, leitura de cartão, autorização, confirmação e finalização

Notas importantes

⚙️

Ordem de chamada dos métodos

setConfig() deve ser chamado primeiro. Ele não dispara nenhum evento.

🔄

Métodos opcionais: initialize() e activateSession()

Ambos são opcionais. Se não forem chamados antes de pay(), ou se pay() for chamado enquanto algum deles ainda está em processamento, seus eventos serão disparados durante o pagamento com o sufixo InPayment. Por exemplo: ZoopActivationStartedZoopActivationInPaymentStarted.

💳

Comportamento do pay()

pay() sempre dispara os eventos de pagamento. Se os métodos anteriores já foram chamados, você receberá apenas os eventos de pagamento e criação de sessão. Se não foram chamados, receberá os eventos de ativação + pagamento.

⚠️

Ordem dos eventos de falha

Os eventos TransactionAborted, TerminalActivationFailed e demais eventos de falha podem ocorrer fora da ordem listada, caso sejam emitidos antes de algum fluxo ser concluído. Por exemplo: se PaymentProcessFailed for emitido, não haverá eventos de confirmação — apenas CloseBuiltInScreen e PaymentProcessFinished.