Événements SDK
Observer le cycle de vie du SDK DEUNA sur le Web, iOS, Android et React Native, sans traiter les événements d'analyse comme des états de paiement.
Sur cette page
Les événements SDK décrivent ce que font le client et le widget. Utilisez-les pour l'analyse, le diagnostic et les modifications de l'interface. Utilisez des callbacks de succès et d'erreur typés pour l'interface utilisateur immédiate, et vérifiez l'état final de la commande sur votre backend avant la réalisation.
Cycle de vie des événements#
S'abonner via la plateforme#
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
)Les callbacks Web et React Native exposent le nom de l'événement sous forme de chaîne de caractères. Les SDK natifs exposent des types. CheckoutEvent ou ElementsEvent Valeurs. Prévoir une branche par défaut afin que les nouvelles versions d'événements ne perturbent pas votre adaptateur d'analyse.
Signaux d'intégration stables#
Privilégiez les appels de retour dédiés lorsque cela est possible. Ils offrent un contrat plus précis et structuré que le flux d'événements brut.
| Signal | Site Web | iOS | Android | Réagir à l'initié | Utilisation recommandée |
|---|---|---|---|---|---|
onSuccess | Oui | Oui | Oui | Oui | Fermez ou remplacez l'expérience, puis vérifiez l'état final. |
onError | Oui | Oui | Oui | Oui | Générer un chemin de reprise ou de récupération à partir de l'enveloppe d'erreur documentée. |
onClosed | Oui | Oui | Oui | Oui | Restaurer l'interface utilisateur du commerçant après la fermeture du client ou du SDK. |
onCardBinDetected | Paiement + Éléments | Paiement + Éléments | Paiement + Éléments | Paiement + Éléments | Recalculer les offres ou le style spécifiques à la carte. |
onInstallmentSelected | Paiement + Éléments | Paiement + Éléments | Paiement + Éléments | Paiement + Éléments | Enregistrer l'identifiant du plan sélectionné sans stocker les données de la carte. |
onPaymentProcessing | Paiement + Code promo | Paiement | Paiement | Paiement + Code promo | Désactiver les actions de soumission multiples. |
onResize | Oui | Cycle de vie intégré | Cycle de vie intégré | Oui | Maintenir un conteneur intégré aligné avec le contenu. |
Voir Réponses du SDK pour les charges utiles et la gestion des erreurs.
Événements de cycle de vie à haute valeur#
| Événement | Signification | Notes sur l'expérience |
|---|---|---|
checkoutStarted | L'expérience de paiement a commencé à se charger ou à s'initialiser. | Présent dans les flux de paiement Web et natifs. |
paymentMethodsStarted | L'étape de la méthode de paiement est devenue active. | Flux de paiement natifs et React Native. |
paymentMethodsSelected | Le client a sélectionné une méthode de paiement. | Flux de paiement Web et natifs. |
onBinDetected | Le BIN de la carte a été détecté. | Préférer onCardBinDetected si disponible. |
onInstallmentSelected | Le client a choisi une option de financement. | Préférer le callback de type dédié. |
paymentProcessing | La soumission est en cours de traitement. | Désactiver les actions multiples; ne pas déduire l'approbation. |
purchase | Le widget a signalé une interaction d'achat réussie. | Utilisation onSuccess, puis vérifier la commande côté serveur. |
purchaseError | L'interaction d'achat a échoué. | Utilisation onError pour l'enveloppe d'erreur normalisée. |
purchaseRejected | Le flux de paiement natif a signalé un rejet. | Disponible dans les flux natifs et React Native, mais pas dans l'énumération Web actuelle. |
vaultSaveSuccess | Les éléments ont signalé un identifiant de connexion enregistré. | Flux d'éléments Web et natifs. |
vaultSaveError | Les éléments n'ont pas pu enregistrer l'identifiant de connexion. | Traiter la charge utile comme spécifique à l'expérience. |
linkClose | L'expérience hébergée a demandé la fermeture. | Le SDK appelle également onClosed. |
Catalogues d'événements actuels#
Ces noms sont les énumérations publiques dans la source du SDK maintenue. Les objets de charge sont délibérément bruts car leurs champs varient en fonction de l'expérience et de la version ; ne dépendez d'un champ de charge que lorsqu'une documentation spécifique le décrit.
SDK Web
checkoutStarted, paymentMethodsEntered, onBinDetected, purchase, paymentProcessing, loginStarted, paymentMethodsSelected, loginOtpStarted, purchaseError, onInstallmentSelected, linkClose, checkoutReady, vaultSaveSuccess, vaultSaveError, checkoutFailed, openExternalPopup, closeExternalPopup, errorApmMissingReference.
React Native · paiement
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 · Éléments
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 et Android · paiement
Les catalogues natifs incluent les événements de paiement, de connexion, de facturation, d'expédition, d'informations utilisateur, APM, coupon, dons, saisie de carte, échéances, traitement, achat, rejet et échec exposés par chaque plateforme. Android publie également apmFailed, couponStarted, linkCriticalErroret userInfoPhoneInitiated; iOS publie custom. Utilisez l'énumération fournie avec votre SDK installé plutôt que de supposer que les deux catalogues natifs sont identiques.
iOS et Android · Éléments
Les deux SDK natifs publient les événements de saisie de carte, BIN, échéances, paiement, cycle de vie du coffre-fort et sauvegarde de données. Leurs catalogues actuels incluent paymentMethodSplitPayments, vaultClickRedirect3DS, vaultProcessing, vaultSaveClick, vaultSaveErroret vaultSaveSuccess.
Analytique et confidentialité#
- Autorisez les noms d'événements avant de les transmettre à une destination analytique tierce.
- Supprimez les métadonnées de commande, de client, de méthode de paiement et de fournisseur, sauf si votre contrat de données le permet explicitement.
- Ne conservez jamais le numéro PAN, le code de sécurité, les jetons de portefeuille, les jetons d'accès ou le payload brut complet.
- Incluez la version de votre application, la version du SDK, l'environnement et un ID de corrélation de votre entreprise pour le diagnostic.
- Traitez les noms d'événements inconnus comme des signaux compatibles avec les futures versions, et non comme des erreurs fatales.
Contrats de sources publiques#
Les catalogues ci-dessus sont vérifiés par rapport aux énumérations publiques maintenues, plutôt que copiés à partir d'une liste d'événements historiques :
- Site Web
EventType - Réagir à l'initié
CheckoutEventTypeetElementsEventType - iOS
CheckoutEventetElementsEvent - Android
CheckoutEventetElementsEvent