Aller au contenu principal
Sur cette page

L'intégration 3DS est un workflow d'état de paiement. Créez le paiement normalement, réagissez au retour de DEUNA pending_3ds, présentez l'action suivante renvoyée et attendez un statut de paiement final faisant autorité.

Diagramme de flux
processed or authorizedpending_3dsdenied, cancelled, orexpiredprocessed or authorizeddenied, cancelled, orexpired1Create payment2Payment status3Continue fulfillment4Present next_action5Stop payment flow6Shopper authenticateswith issuer7Webhook or Get order8Final payment status
Exception ou arrêt

1. Créez le paiement#

Utilisez l'un des modèles de paiement par carte pris en charge :

  1. Créez une commande avec Créer une commande, puis payez-le avec Créer un paiement.
  2. Utilisez la requête unique Créer un paiement flux quand cela correspond à votre intégration.

Envoyez des informations complètes sur l'acheteur, la facturation, la commande et l'appareil. Ces signaux aident l'émetteur à décider si l'authentification peut se faire sans friction.

2. Inspectez la réponse de paiement#

Une réponse capable de relever un défi suit cette forme :

JSON
{
  "order": {
    "order_id": "75029759-4a64-42cd-b0b6-9f12777707b7",
    "status": "pending",
    "payment": {
      "data": {
        "id": "75029759-4a64-42cd-b0b6-9f12777707b7",
        "method_type": "credit_card",
        "status": "pending_3ds",
        "next_action": {
          "action": "authorization_3ds",
          "authorization_3ds": {
            "version": "2.2.0",
            "url_challenge": "https://api.deuna.io/transactions/next-action/...",
            "three_ds_flow_id": "0f5a8f52-7f95-4a1f-9ee8-e92946547ea9"
          }
        }
      }
    }
  }
}

Utilisez ces champs comme source de vérité :

ChampSignificationAction
order.payment.data.statuspending_3ds signifie que l'authentification n'est pas terminée.Gardez le paiement non résolu et présentez l'action suivante.
order.payment.data.next_action.actionIdentifie l’action client requise.Poignée authorization_3ds avec le SDK DEUNA pris en charge ou les données de défi renvoyées.
order.payment.data.next_action.authorization_3ds.url_challengeURL DEUNA de courte durée pour l’expérience d’authentification.Ouvrez-le uniquement dans le mode de présentation pris en charge pour la connexion.
order.payment.data.next_action.authorization_3ds.three_ds_flow_idCorrèle le flux d’authentification.Conserver pour le dépannage ; ne l'utilisez pas comme preuve de paiement.

Pour des raisons de compatibilité, certaines intégrations peuvent également recevoir un niveau supérieur authorization_3ds objet. Les nouvelles implémentations devraient préférer next_action.

3. Présentez la prochaine action#

SDK Web

Utilisation initNextAction(...) lorsque vous souhaitez que DEUNA gère le comportement modal, iframe ou de redirection pris en charge. Voir le Référence du SDK Web.

Intégration directe du navigateur

Si vous gérez vous-même la prochaine action :

  1. Utilisez le retour url_challenge; ne construisez pas d'URL 3DS.
  2. Suivez le mode de présentation configuré. Ne forcez pas une page d'émetteur dans une iframe lorsqu'une redirection de niveau supérieur est requise.
  3. Préservez vos URL de succès, d’échec et de retour.
  4. Traitez une fenêtre fermée, un rappel ou une redirection comme un signal pour récupérer l'état, et non comme un succès de paiement.

Applications natives

Utilisez le SDK DEUNA pris en charge ou un navigateur système/une vue Web sécurisé. Configurez le lien de retour/profond et restaurez le contexte de paiement lorsque l'acheteur revient sur l'application.

4. Attendez le statut de paiement final#

Tant que l'authentification est ouverte, le paiement reste pending_3ds. Le succès de l'authentification permet uniquement à l'autorisation de continuer ; cela ne signifie pas que l'argent a été déplacé.

Utilisez les deux :

  • vérifié Webhooks DEUNA pour les changements de statut asynchrones ; et
  • Obtenir la commande lorsque le client revient ou lorsque votre système doit rapprocher un résultat incertain.
RésultatSignificationAction d'exécution
processedAchat terminé.Remplissez une fois vos chèques professionnels réussis.
authorizedLes fonds ont été autorisés mais n'ont pas été récupérés.Suivez votre stratégie de capture ; ne pas traiter comme capturé.
pending_3dsL'authentification est encore incomplète.Attendez; ne se remplissent pas ou ne redémarrent pas automatiquement.
processing ou authorizingLe paiement est toujours en cours.Poursuivre la réconciliation.
denied, cancelled, ou expiredLe paiement n'a pas été finalisé.Affichez un résultat récupérable et démarrez une nouvelle tentative uniquement lorsque cela est approprié.

Consultez Flux de travail et statuts de paiement pour chaque état et transition de paiement public.

5. Gérez l’authentification sans friction#

L'authentification sans friction pourrait ne pas revenir pending_3ds car l'émetteur peut s'authentifier et laisser l'autorisation se poursuivre dans la même demande. Votre code doit donc prendre en charge les deux résultats :

  • un statut de paiement final ou en cours immédiat ; ou
  • pending_3ds plus un authorization_3ds prochaine action.

N'exigez pas la présence d'une URL de défi pour déterminer si 3DS a été évalué.

6. Délais d'attente et tentatives#

Les fenêtres de contestation des émetteurs varient. DEUNA peut conserver un paiement pending_3ds jusqu'à la fenêtre d'authentification configurée ; la sauvegarde de service actuelle ne dépasse pas 10 minutes. Après l'expiration, le paiement passe à un état d'échec signalé et l'acheteur doit recommencer une nouvelle tentative de paiement.

  • Ne réutilisez pas une URL de défi expirée.
  • Ne créez pas de tentatives de paiement répétées alors que le premier paiement n’est pas résolu.
  • Utilisez le statut final et allow_retry/guide d'erreur standardisé lorsqu'il est disponible avant de proposer une autre tentative.
  • Si le routage sélectionne une autre connexion compatible, laissez DEUNA décider si un résultat d'authentification existant peut être réutilisé.

7. Interprétez les détails d’authentification en toute sécurité#

DEUNA Admin peut afficher les résultats techniques 3DS tels que la version du protocole, le type de flux, l'ECI, le résultat de l'authentification et les identifiants de transaction réseau. Utilisez-les pour l’assistance, la réconciliation et l’analyse des litiges.

Ne stockez pas et n'exposez pas de cryptogrammes bruts, de réponses d'authentification complètes et ne contestez pas le code HTML dans les journaux des commerçants. Un statut de paiement (et non un événement ECI ou de fin de défi) contrôle l'exécution.