Pular para o conteúdo principal
Nesta página

Os eventos descrevem o que o cliente e o widget estão fazendo. Utilize-os para análise, diagnóstico e alterações na interface. Utilize callbacks de sucesso e erro tipados para a interface do usuário, e verifique o estado final do pedido no seu backend antes da entrega.

Ciclo de vida do evento#

01 · client
Iniciar a experiência
Início do widget de pagamento, elementos, voucher ou próxima ação.
02 · SDK
Eventos do ciclo de entrega
O SDK encaminha os nomes suportados e seus payloads brutos, específicos para a experiência.
03 · interface
Desenvolvimento local com React
Atualize o carregamento, a validação e a análise sem expor dados de pagamento.
04 · backend
Verifique o resultado
Recupere o pedido ou consuma um webhook verificado antes da conclusão.
Diagrama de sequência
1Customer2Merchant app3DEUNA SDK4Merchant backendOpens paymentInitialize experiencecheckoutStarted /paymentMethodsStartedSelects and submitspaymentMethodsSelected /paymentProcessingonSuccess or onErrorVerify authoritativeorder stateConfirm fulfillment decision
Comerciante ou clienteDEUNA

Assine através da plataforma#

await DeunaSDK.initPaymentWidget({
  orderToken,
  callbacks: {
    onEventDispatch: (event, payload) => {
      analytics.track(`deuna.${event}`, sanitize(payload));
    },
  },
});

As chamadas de retorno da Web e do React Native expõem o nome do evento como uma string. Os SDKs nativos expõem tipos. CheckoutEvent ou ElementsEvent Valores padrão. Mantenha um ramo padrão para que um evento recém-lançado não interrompa seu adaptador de análise.

Sinais de integração estável#

Dê preferência a callbacks dedicados, quando disponíveis. Eles oferecem um contrato mais específico e estruturado do que o fluxo de eventos bruto.

SinalRedeiOSAndroidReagir nativoRecomendação de uso
onSuccessSimSimSimSimFinalize ou substitua a experiência, e verifique o estado final.
onErrorSimSimSimSimImplementar um caminho de tentativa ou recuperação com base no envelope de erro documentado.
onClosedSimSimSimSimRestaurar a interface do usuário do comerciante após o fechamento do cliente ou do SDK.
onCardBinDetectedPagamento + ElementosPagamento + ElementosPagamento + ElementosPagamento + ElementosRecalcular ofertas ou estilos específicos da carta.
onInstallmentSelectedPagamento + ElementosPagamento + ElementosPagamento + ElementosPagamento + ElementosRegistrar o identificador do plano selecionado sem armazenar dados da carta.
onPaymentProcessingPagamento + CupomPagamentoPagamentoPagamento + CupomDesativar ações de envio duplicadas.
onResizeSimCiclo de vida integradoCiclo de vida integradoSimManter um contêiner integrado alinhado com o conteúdo.

Veja Respostas do SDK para payloads e tratamento de erros.

Eventos de ciclo de vida de alto valor#

EventoSignificadoNotas sobre a experiência
checkoutStartedA experiência de checkout começou a carregar ou foi inicializada.Presente nos fluxos de checkout Web e nativos.
paymentMethodsStartedA etapa de método de pagamento foi ativada.Fluxos de checkout nativos e React Native.
paymentMethodsSelectedO cliente selecionou um método de pagamento.Fluxos de checkout Web e nativos.
onBinDetectedO BIN da carta foi detectado.Prefer onCardBinDetected quando disponível.
onInstallmentSelectedO cliente escolheu uma opção de parcelamento.Prefer o callback específico.
paymentProcessingA submissão está sendo processada.Desativar ações duplicadas; não inferir aprovação.
purchaseO widget relatou uma interação de compra bem-sucedida.Uso onSuccess, então verifique a ordem no backend.
purchaseErrorA interação de compra falhou.Uso onError para o envelope de erro normalizado.
purchaseRejectedO checkout nativo relatou uma rejeição.Disponível nos fluxos nativos e React Native, não no enum Web atual.
vaultSaveSuccessElementos relataram um credencial salvo.Fluxos de Elementos Web e nativos.
vaultSaveErrorElementos não conseguiram salvar o credencial.Tratar o payload como específico da experiência.
linkCloseA experiência hospedada solicitou o fechamento.O SDK também invoca onClosed.

Catálogos de eventos atuais#

Esses nomes são as enumerações públicas no código-fonte do SDK mantido. Os objetos de payload são intencionalmente "brutos" porque seus campos variam de acordo com a experiência e a versão; dependa apenas de um campo de payload quando um callback dedicado o documenta.

SDK Web18 nomes de eventos

checkoutStarted, paymentMethodsEntered, onBinDetected, purchase, paymentProcessing, loginStarted, paymentMethodsSelected, loginOtpStarted, purchaseError, onInstallmentSelected, linkClose, checkoutReady, vaultSaveSuccess, vaultSaveError, checkoutFailed, openExternalPopup, closeExternalPopup, errorApmMissingReference.

React Native · checkoutEventType de Checkout atual

custom, purchase, purchaseError, linkClose, linkFailed, purchaseRejected, paymentProcessing, paymentMethodsAddCard, paymentMethodsCardExpirationDateInitiated, paymentMethodsCardNameEntered, apmSuccess, apmSuccessful, changeAddress, changeCart, paymentClick, apmClickRedirect, paymentMethodsCardNumberInitiated, paymentMethodsCardNumberEntered, paymentMethodsEntered, checkoutStarted, linkStarted, paymentMethodsStarted, paymentMethodsSelected, adBlock, paymentMethods3dsInitiated, pointsToWinStarted, paymentMethodsCardSecurityCodeInitiated, paymentMethodsCardSecurityCodeEntered, paymentMethodsCardExpirationDateEntered, paymentMethodsCardNameInitiated, paymentMethodsNotAvailable, paymentMethodsShowMore, paymentMethodsShowMyCards, benefitsStarted, donationsStarted, donationsUsed, onBinDetected, onInstallmentSelected, onDownloadVoucher, errorApmMissingReference.

React Native · ElementsEventType de Elements atual

vaultClosed, vaultProcessing, vaultSaveClick, vaultStarted, vaultFailed, cardSuccessfullyCreated, changeAddress, changeCart, vaultSaveError, vaultSaveSuccess, vaultClickRedirect3DS, cardCreationError, paymentMethodsCardIdentityNumberInitiated, paymentMethodsCardIdentityNumberEntered, paymentMethodsCardNameInitiated, paymentMethodsCardNameEntered, paymentMethodsCardSecurityCodeInitiated, paymentMethodsCardSecurityCodeEntered, paymentMethodsCardExpirationDateEntered, paymentMethodsCardExpirationDateInitiated, paymentMethodsCardNumberEntered, paymentMethodsCardNumberInitiated, paymentMethodsEntered, paymentMethodsStarted.

iOS e Android · checkoutCatálogos de eventos de Checkout tipados

Os catálogos nativos incluem os eventos de checkout, login, faturamento, envio, informações do usuário, APM, cupom, doação, entrada de cartão, parcelamento, processamento, compra, rejeição e falha expostos por cada plataforma. O Android também publica apmFailed, couponStarted, linkCriticalErrore userInfoPhoneInitiated; O iOS publica custom. Use o enum fornecido com o SDK instalado, em vez de assumir que os dois catálogos nativos são idênticos.

iOS e Android · ElementsCatálogos de eventos de Elements tipados

Ambos os SDKs nativos publicam os eventos de entrada de cartão, BIN, parcelamento, checkout, ciclo de vida do vault e salvamento de credenciais. Seus catálogos atuais incluem paymentMethodSplitPayments, vaultClickRedirect3DS, vaultProcessing, vaultSaveClick, vaultSaveErrore vaultSaveSuccess.

Análise e privacidade#

  • Permita os nomes de eventos antes de enviá-los para um destino de análise de terceiros.
  • Remova metadados de pedido, cliente, método de pagamento e provedor, a menos que seu contrato de dados o permita explicitamente.
  • Nunca registre o PAN, código de segurança, tokens de carteira, tokens de acesso ou o payload bruto completo.
  • Inclua a versão do seu aplicativo, versão do SDK, ambiente e um ID de correlação de propriedade do comerciante para fins de diagnóstico.
  • Trate nomes de eventos desconhecidos como sinais compatíveis com o futuro, e não como erros fatais.

Contratos de código aberto#

Os catálogos acima são verificados em relação aos enums públicos mantidos, em vez de serem copiados de uma lista histórica: