Aller au contenu principal
Sur cette page

Utilisez le widget "Prochaine action" lorsque l'une des commandes existantes nécessite qu'un client effectue une étape supplémentaire, telle qu'un défi 3DS ou un redirigement pris en charge. Réutilisez le jeton de commande original.

Flux de décision#

Diagramme de flux
1Create or submitpayment2-- Yes3Handle current orderstate4Open Next Actionwith same ordertoken5-- Error or close6Reconcile order onbackend7Retrieve statebefore retry8Fulfill only fromverified final state
RésultatRévision ou attente
01 · response
Détectez l'action requise
Utilisez la réponse de paiement ou l'état de commande documenté.
02 · SDK
Ouvrez la "Prochaine action"
Transmettre le token original order_token; do not create another order.
03 · customer
Compléter le défi
Assurer le bon fonctionnement des redirections, des fenêtres contextuelles et des transitions de cycle de vie de l'application.
04 · backend
Vérifier le résultat
Récupérer la commande ou consommer un webhook vérifié.

Voir l'expérience client#

Next Action fonctionne avec les widgets de paiement DEUNA comme avec les formulaires de paiement gérés par le marchand. Une fois le paiement envoyé par votre backend, ouvrez Next Action uniquement lorsque la réponse indique que le client doit effectuer une étape supplémentaire. Le widget présente alors le défi 3DS pris en charge ou la redirection vers un moyen de paiement alternatif (APM), puis communique le résultat au moyen de ses fonctions de rappel.

La démonstration suivante montre comment l’expérience se poursuit du checkout du marchand jusqu’à l’action post-paiement requise :

Next Action présente l’étape que le client doit effectuer après le lancement du paiement. Regardez la vidéo directement sur YouTube si le lecteur intégré n'est pas disponible.

La vidéo illustre la transition présentée au client. Votre intégration doit toujours utiliser la réponse de paiement, les fonctions de rappel et le rapprochement côté backend décrits ci-dessous ; ne déduisez pas l’état final du paiement à partir de ce que le client voit dans le widget.

Ouvrez la "Prochaine action"#

await DeunaSDK.initNextAction({
  orderToken,
  callbacks: {
    onSuccess: () => verifyOriginalOrder(),
    onError: (error) => recoverAfterVerification(error),
    onClosed: () => recoverAfterVerification(),
  },
});

Paramètres#

ParamètrePlateformesObligatoireObjectif
orderTokenTousOuiToken original pour la commande en attente d'action du client.
callbacksTousOuiPrise en charge des gestionnaires de succès, d'erreur, de fermeture, d'événements et de redimensionnement conformément au contrat de callback de base.
languageTousNonLocaliser l'expérience hébergée.
modeRéagir à l'initiéOuiChoisir la présentation modale ou intégrée prise en charge.
fraudCredentialsNative + React NativeNonUniquement pour une intégration de données de périphérique configurée.
customUserAgentiOS + AndroidNonOverride de l'agent utilisateur WebView approuvé.
domainTousNonOverride de l'environnement contrôlé ; ne pas utiliser en production normale.

Gérer toutes les situations#

RésultatCe que cela signifieAction correcte
onSuccessÉtape côté client terminée.Récupérer la commande originale et la rendre à son état actuel.
onErrorL'SDK ou le défi ont signalé une erreur normalisée.Journaliser les métadonnées sécurisées, récupérer l'état, puis proposer une tentative possible.
onClosedLe client ou l'SDK ont fermé l'expérience.Traiter comme ambigu jusqu'à ce que l'état côté serveur soit connu.
Délai d'attente ou interruption de l'applicationAucun résultat client fiable n'a atteint votre gestionnaire.Réconcilier à partir du serveur ; ne pas soumettre automatiquement à nouveau.

Exigences de redirection et de fenêtre contextuelle#

  • Permettre à l'SDK d'ouvrir sa surface d'authentification externe prise en charge.
  • Préserver l'état du cycle de vie de l'application pendant que le client quitte et revient.
  • Sur le Web, ouvrir à partir d'une action du client et ne pas sandboxer le widget d'une manière qui bloque les fenêtres contextuelles ou la navigation de premier niveau.
  • Sur React Native, maintenir le rendu SDK monté pendant que son contrôleur de redirection externe est actif.
  • Sur iOS et Android, utiliser le composant modale ou intégré maintenu du SDK au lieu de recréer le pont WebView interne.
  • Succès de la validation, du rejet, de l'annulation par le client, de l'expiration du délai par l'émetteur, de la perte de connexion et du retour depuis l'arrière-plan.

Présentation intégrée#

Le SDK Web prend en charge mode: 'target' plus target; iOS et Android exposent des composants de widget intégrés ; React Native utilise son DeunaWidget rendeuriseur. Prévoyez une hauteur initiale suffisante, réagissez aux modifications de taille et assurez-vous que l'hôte ne cache pas les contrôles de validation derrière une barre de navigation fixe ou un clavier sur écran.