Eventi SDK
Osserva il ciclo di vita dell'SDK DEUNA su Web, iOS, Android e React Native, senza considerare gli eventi di analisi come stato di pagamento.
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#
Iscrizione tramite piattaforma#
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
)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.
| Segnale | Web Web | iOS | Android | Reazione nativo | Utilizzo consigliato |
|---|---|---|---|---|---|
onSuccess | Sì. | Sì. | Sì. | Sì. | Chiudere o sostituire l'esperienza, quindi verificare lo stato finale. |
onError | Sì. | Sì. | Sì. | Sì. | Implementare un percorso di riprova o di recupero basato sull'envelope di errore documentato. |
onClosed | Sì. | Sì. | Sì. | Sì. | Ripristinare l'interfaccia utente del commerciante dopo la chiusura da parte del cliente o dell'SDK. |
onCardBinDetected | Pagamento + Elementi | Pagamento + Elementi | Pagamento + Elementi | Pagamento + Elementi | Ricalcolare offerte o stili specifici per la carta. |
onInstallmentSelected | Pagamento + Elementi | Pagamento + Elementi | Pagamento + Elementi | Pagamento + Elementi | Registrare l'identificatore del piano selezionato senza memorizzare i dati della carta. |
onPaymentProcessing | Pagamento + Voucher | Pagamento | Pagamento | Pagamento + Voucher | Disabilitare azioni di invio duplicate. |
onResize | Sì. | Ciclo di vita integrato | Ciclo di vita integrato | Sì. | 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#
| Evento | Significato | Note sull'esperienza |
|---|---|---|
checkoutStarted | L'esperienza di checkout ha iniziato a caricare o è stata inizializzata. | Presente nei flussi di checkout Web e nativi. |
paymentMethodsStarted | La fase del metodo di pagamento è diventata attiva. | Flussi di checkout nativi e React Native. |
paymentMethodsSelected | Il cliente ha selezionato un metodo di pagamento. | Flussi di checkout Web e nativi. |
onBinDetected | È stato rilevato il BIN della carta. | Preferire onCardBinDetected quando disponibile. |
onInstallmentSelected | Il cliente ha scelto un'opzione di rateizzazione. | Preferire la callback specifica. |
paymentProcessing | L'invio è in corso. | Disabilitare azioni duplicate; non inferire l'approvazione. |
purchase | Il widget ha segnalato un'interazione di acquisto di successo. | Uso onSuccess, quindi verificare l'ordine sul backend. |
purchaseError | L'interazione di acquisto è fallita. | Uso onError per l'envelope di errore normalizzato. |
purchaseRejected | Il checkout nativo ha segnalato un rifiuto. | Disponibile nei flussi nativi e React Native, non nell'enum Web corrente. |
vaultSaveSuccess | Gli elementi hanno segnalato un credenziale salvato. | Flussi degli elementi Web e nativi. |
vaultSaveError | Gli elementi non sono stati in grado di salvare il credenziale. | Considerare il payload come specifico per l'esperienza. |
linkClose | L'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 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
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 · Elements
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:
- Web Web
EventType - Reazione nativo
CheckoutEventTypeeElementsEventType - iOS
CheckoutEventeElementsEvent - Android
CheckoutEventeElementsEvent