Passa al contenuto principale
In questa pagina

Gli eventi descrivono cosa fanno il cliente e il widget. Utilizzali per l'analisi, la diagnostica e le modifiche dell'interfaccia. Utilizza callback di successo e errore di tipo per l'interfaccia utente immediata e verifica lo stato finale dell'ordine sul tuo backend prima della spedizione.

Ciclo di vita dell'evento#

01 · client
Apri l'esperienza
Inizio del widget di pagamento, degli elementi, del codice promozionale o della prossima azione.
02 · SDK
Gestione degli eventi del ciclo di vita
L'SDK inoltra i nomi supportati e i relativi payload, specifici per l'esperienza.
03 · interface
Sviluppo locale con React
Aggiorna lo stato di caricamento, la validazione e l'analisi senza esporre i dati di pagamento.
04 · backend
Verifica il risultato
Recupera l'ordine o consuma un webhook verificato prima della spedizione.
Diagramma di sequenza
1Customer2Merchant app3DEUNA SDK4Merchant backendOpens paymentInitialize experiencecheckoutStarted /paymentMethodsStartedSelects and submitspaymentMethodsSelected /paymentProcessingonSuccess or onErrorVerify authoritativeorder stateConfirm fulfillment decision
Commerciante o clienteDEUNA

Iscrizione tramite piattaforma#

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

Le callback per Web e React Native espongono il nome dell'evento come stringa. Gli SDK nativi espongono tipi. CheckoutEvent o ElementsEvent Mantenere una versione predefinita in modo che un nuovo evento rilasciato non interrompa il tuo adattatore di analisi.

Segnali di integrazione stabile#

Preferire callback dedicati quando disponibili. Offrono un contratto più definito e strutturato rispetto al flusso di eventi grezzo.

SegnaleWeb WebiOSAndroidReazione nativoUtilizzo consigliato
onSuccessSì.Sì.Sì.Sì.Chiudere o sostituire l'esperienza, quindi verificare lo stato finale.
onErrorSì.Sì.Sì.Sì.Implementare un percorso di riprova o di recupero basato sull'envelope di errore documentato.
onClosedSì.Sì.Sì.Sì.Ripristinare l'interfaccia utente del commerciante dopo la chiusura da parte del cliente o dell'SDK.
onCardBinDetectedPagamento + ElementiPagamento + ElementiPagamento + ElementiPagamento + ElementiRicalcolare offerte o stili specifici per la carta.
onInstallmentSelectedPagamento + ElementiPagamento + ElementiPagamento + ElementiPagamento + ElementiRegistrare l'identificatore del piano selezionato senza memorizzare i dati della carta.
onPaymentProcessingPagamento + VoucherPagamentoPagamentoPagamento + VoucherDisabilitare azioni di invio duplicate.
onResizeSì.Ciclo di vita integratoCiclo di vita integratoSì.Mantenere un contenitore integrato allineato al contenuto.

Vedi Risposte dell'SDK per payload e gestione degli errori.

Eventi di ciclo di vita ad alto valore#

EventoSignificatoNote sull'esperienza
checkoutStartedL'esperienza di checkout ha iniziato a caricare o è stata inizializzata.Presente nei flussi di checkout Web e nativi.
paymentMethodsStartedLa fase del metodo di pagamento è diventata attiva.Flussi di checkout nativi e React Native.
paymentMethodsSelectedIl cliente ha selezionato un metodo di pagamento.Flussi di checkout Web e nativi.
onBinDetectedÈ stato rilevato il BIN della carta.Preferire onCardBinDetected quando disponibile.
onInstallmentSelectedIl cliente ha scelto un'opzione di rateizzazione.Preferire la callback specifica.
paymentProcessingL'invio è in corso.Disabilitare azioni duplicate; non inferire l'approvazione.
purchaseIl widget ha segnalato un'interazione di acquisto di successo.Uso onSuccess, quindi verificare l'ordine sul backend.
purchaseErrorL'interazione di acquisto è fallita.Uso onError per l'envelope di errore normalizzato.
purchaseRejectedIl checkout nativo ha segnalato un rifiuto.Disponibile nei flussi nativi e React Native, non nell'enum Web corrente.
vaultSaveSuccessGli elementi hanno segnalato un credenziale salvato.Flussi degli elementi Web e nativi.
vaultSaveErrorGli elementi non sono stati in grado di salvare il credenziale.Considerare il payload come specifico per l'esperienza.
linkCloseL'esperienza ospitata ha richiesto la chiusura.L'SDK invoca anche onClosed.

Cataloghi di eventi attuali#

Questi nomi rappresentano le enumerazioni pubbliche presenti nel codice sorgente dell'SDK mantenuto. Gli oggetti payload sono deliberatamente "raw" perché i loro campi variano in base all'esperienza e alla versione; fare affidamento su un campo payload solo quando un callback dedicato lo documenta.

SDK Web18 nomi di eventi

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

React Native · checkoutCurrent CheckoutEventType

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 · ElementsCurrent ElementsEventType

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 · checkoutCataloghi di eventi CheckoutType definiti

I cataloghi nativi includono gli eventi di checkout, login, fatturazione, spedizione, informazioni utente, APM, coupon, donazione, inserimento carta, rateizzazione, elaborazione, acquisto, rifiuto e fallimento esposti da ciascuna piattaforma. Android pubblica inoltre apmFailed, couponStarted, linkCriticalErrore userInfoPhoneInitiated; iOS pubblica custom. Utilizzare il codice corrispondente all'enumerazione fornita con il vostro SDK installato, anziché presumere che i due cataloghi nativi siano identici byte per byte.

iOS e Android · ElementsCataloghi di eventi ElementsType definiti

Entrambi gli SDK pubblicano eventi di inserimento carta, BIN, rateizzazione, checkout, ciclo di vita del vault e salvataggio credenziali. I loro cataloghi attuali includono paymentMethodSplitPayments, vaultClickRedirect3DS, vaultProcessing, vaultSaveClick, vaultSaveErrore vaultSaveSuccess.

Analitica e privacy#

  • Filtrare i nomi degli eventi prima di inoltrarli a una destinazione di analisi di terze parti.
  • Rimuovere i metadati relativi all'ordine, al cliente, al metodo di pagamento e al provider, a meno che il vostro contratto di dati non lo consenta esplicitamente.
  • Non registrare PAN, codici di sicurezza, token di wallet, token di accesso o il payload completo.
  • Includere la versione dell'app, la versione dell'SDK, l'ambiente e un ID di correlazione di proprietà del commerciante per la diagnostica.
  • Considerare i nomi di eventi sconosciuti come segnali compatibili con il futuro, non come errori fatali.

Contratti di origine pubblica#

I cataloghi sopra indicati vengono controllati rispetto alle enumerazioni pubbliche mantenute, anziché copiati da un elenco di eventi storici: