Eventos do SDK
Monitore o ciclo de vida do SDK da DEUNA em Web, iOS, Android e React Native, sem tratar os eventos de análise como estado de pagamento.
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#
Assine através da plataforma#
await DeunaSDK.initPaymentWidget({
orderToken,
callbacks: {
onEventDispatch: (event, payload) => {
analytics.track(`deuna.${event}`, sanitize(payload));
},
},
});await deunaSDK.initPaymentWidget({
orderToken,
callbacks: {
onEventDispatch: (event, payload) => {
analytics.track(`deuna.${event}`, sanitize(payload));
},
},
});let callbacks = PaymentWidgetCallbacks()
callbacks.onEventDispatch = { event, payload in
Analytics.track("deuna.\(event.rawValue)", sanitize(payload))
}
deunaSDK.initPaymentWidget(
orderToken: orderToken,
callbacks: callbacks
)val callbacks = PaymentWidgetCallbacks().apply {
onEventDispatch = { event, payload ->
analytics.track("deuna.${event.value}", sanitize(payload))
}
}
deunaSDK.initPaymentWidget(
context = this,
orderToken = orderToken,
callbacks = callbacks
)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.
| Sinal | Rede | iOS | Android | Reagir nativo | Recomendação de uso |
|---|---|---|---|---|---|
onSuccess | Sim | Sim | Sim | Sim | Finalize ou substitua a experiência, e verifique o estado final. |
onError | Sim | Sim | Sim | Sim | Implementar um caminho de tentativa ou recuperação com base no envelope de erro documentado. |
onClosed | Sim | Sim | Sim | Sim | Restaurar a interface do usuário do comerciante após o fechamento do cliente ou do SDK. |
onCardBinDetected | Pagamento + Elementos | Pagamento + Elementos | Pagamento + Elementos | Pagamento + Elementos | Recalcular ofertas ou estilos específicos da carta. |
onInstallmentSelected | Pagamento + Elementos | Pagamento + Elementos | Pagamento + Elementos | Pagamento + Elementos | Registrar o identificador do plano selecionado sem armazenar dados da carta. |
onPaymentProcessing | Pagamento + Cupom | Pagamento | Pagamento | Pagamento + Cupom | Desativar ações de envio duplicadas. |
onResize | Sim | Ciclo de vida integrado | Ciclo de vida integrado | Sim | Manter 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#
| Evento | Significado | Notas sobre a experiência |
|---|---|---|
checkoutStarted | A experiência de checkout começou a carregar ou foi inicializada. | Presente nos fluxos de checkout Web e nativos. |
paymentMethodsStarted | A etapa de método de pagamento foi ativada. | Fluxos de checkout nativos e React Native. |
paymentMethodsSelected | O cliente selecionou um método de pagamento. | Fluxos de checkout Web e nativos. |
onBinDetected | O BIN da carta foi detectado. | Prefer onCardBinDetected quando disponível. |
onInstallmentSelected | O cliente escolheu uma opção de parcelamento. | Prefer o callback específico. |
paymentProcessing | A submissão está sendo processada. | Desativar ações duplicadas; não inferir aprovação. |
purchase | O widget relatou uma interação de compra bem-sucedida. | Uso onSuccess, então verifique a ordem no backend. |
purchaseError | A interação de compra falhou. | Uso onError para o envelope de erro normalizado. |
purchaseRejected | O checkout nativo relatou uma rejeição. | Disponível nos fluxos nativos e React Native, não no enum Web atual. |
vaultSaveSuccess | Elementos relataram um credencial salvo. | Fluxos de Elementos Web e nativos. |
vaultSaveError | Elementos não conseguiram salvar o credencial. | Tratar o payload como específico da experiência. |
linkClose | A 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 Web
checkoutStarted, paymentMethodsEntered, onBinDetected, purchase, paymentProcessing, loginStarted, paymentMethodsSelected, loginOtpStarted, purchaseError, onInstallmentSelected, linkClose, checkoutReady, vaultSaveSuccess, vaultSaveError, checkoutFailed, openExternalPopup, closeExternalPopup, errorApmMissingReference.
React Native · checkout
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 · Elements
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 · checkout
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 · Elements
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:
- Rede
EventType - Reagir nativo
CheckoutEventTypeeElementsEventType - iOS
CheckoutEventeElementsEvent - Android
CheckoutEventeElementsEvent