Aller au contenu principal
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#

01 · client
Activer l'expérience
Début du widget de paiement, des éléments, du code promo ou de l'étape suivante.
02 · SDK
Gestion du cycle de vie des envois
L'SDK transmet les noms pris en charge et leurs données brutes, spécifiques à l'expérience.
03 · interface
Développement local avec React
Mettez à jour les fonctionnalités de chargement, de validation et d'analyse sans exposer les données de paiement.
04 · backend
Confirmer le résultat
Récupérer la commande ou consommer un webhook vérifié avant la finalisation.
Diagramme de séquence
1Customer2Merchant app3DEUNA SDK4Merchant backendOpens paymentInitialize experiencecheckoutStarted /paymentMethodsStartedSelects and submitspaymentMethodsSelected /paymentProcessingonSuccess or onErrorVerify authoritativeorder stateConfirm fulfillment decision
Marchand ou clientDEUNA

S'abonner via la plateforme#

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

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.

SignalSite WebiOSAndroidRéagir à l'initiéUtilisation recommandée
onSuccessOuiOuiOuiOuiFermez ou remplacez l'expérience, puis vérifiez l'état final.
onErrorOuiOuiOuiOuiGénérer un chemin de reprise ou de récupération à partir de l'enveloppe d'erreur documentée.
onClosedOuiOuiOuiOuiRestaurer l'interface utilisateur du commerçant après la fermeture du client ou du SDK.
onCardBinDetectedPaiement + ÉlémentsPaiement + ÉlémentsPaiement + ÉlémentsPaiement + ÉlémentsRecalculer les offres ou le style spécifiques à la carte.
onInstallmentSelectedPaiement + ÉlémentsPaiement + ÉlémentsPaiement + ÉlémentsPaiement + ÉlémentsEnregistrer l'identifiant du plan sélectionné sans stocker les données de la carte.
onPaymentProcessingPaiement + Code promoPaiementPaiementPaiement + Code promoDésactiver les actions de soumission multiples.
onResizeOuiCycle de vie intégréCycle de vie intégréOuiMaintenir 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énementSignificationNotes sur l'expérience
checkoutStartedL'expérience de paiement a commencé à se charger ou à s'initialiser.Présent dans les flux de paiement Web et natifs.
paymentMethodsStartedL'étape de la méthode de paiement est devenue active.Flux de paiement natifs et React Native.
paymentMethodsSelectedLe client a sélectionné une méthode de paiement.Flux de paiement Web et natifs.
onBinDetectedLe BIN de la carte a été détecté.Préférer onCardBinDetected si disponible.
onInstallmentSelectedLe client a choisi une option de financement.Préférer le callback de type dédié.
paymentProcessingLa soumission est en cours de traitement.Désactiver les actions multiples; ne pas déduire l'approbation.
purchaseLe widget a signalé une interaction d'achat réussie.Utilisation onSuccess, puis vérifier la commande côté serveur.
purchaseErrorL'interaction d'achat a échoué.Utilisation onError pour l'enveloppe d'erreur normalisée.
purchaseRejectedLe flux de paiement natif a signalé un rejet.Disponible dans les flux natifs et React Native, mais pas dans l'énumération Web actuelle.
vaultSaveSuccessLes éléments ont signalé un identifiant de connexion enregistré.Flux d'éléments Web et natifs.
vaultSaveErrorLes éléments n'ont pas pu enregistrer l'identifiant de connexion.Traiter la charge utile comme spécifique à l'expérience.
linkCloseL'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 Web18 noms d'événements

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

React Native · paiementCurrent 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 · ÉlémentsCurrent 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 et Android · paiementCatalogues de paiement de type

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émentsCatalogues de type d'événements

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 :