Définir la cinématique du paiement avec authentification 3D Secure

La cinématique du paiement avec authentification 3D Secure est la suivante :

Figure 1. Cinématique du paiement avec authentification 3D Secure
  1. L’acheteur valide sa commande et saisit les données de sa carte sur le site marchand pour procéder au paiement.
  2. Le site marchand contacte la plateforme de paiement.

    Il appelle l'opération createPayment. Il valorise l'attribut mode de l'objet threeDSRequest à ENABLED_CREATE.

  3. La plateforme de paiement, via son MPI, interroge le directory serveur VISA, Mastercard ou AMEX (SafeKey).
    • Si la carte n’est pas enrôlée, la plateforme de paiement procède à la demande d’autorisation et retourne le résultat du paiement au site marchand.
      • l'attribut threeDSEnrolled de l'objet authenticationRequestData de threeDSResponse est valorisé à N.
    • Si la carte est enrôlée :
      la plateforme de paiement renvoie au marchand les informations suivantes :
      • l'attribut threeDSEnrolled de l'objet authenticationRequestData de threeDSResponse est valorisé à Y,
      • l’URL du site internet de la banque du porteur (ACS) vers laquelle le marchand devra rediriger l’acheteur,
      • le message PAReq encodé (threeDSEncodedPareq),
      • l’identifiant de la requête (threeDSRequestId).
  4. Le site marchand sauvegarde dans le champ MD :
    • l’identifiant de session contenu dans l’en-tête HTTP de la réponse (JSESSIONID ),
    • l’identifiant de la requête (threeDSRequestId ) contenu dans la réponse authenticationRequestData.
      MD est l'abréviation de MerchantData. Il s'agit d'un champ créé pour la requête.
  5. Le site marchand envoie au navigateur de l’acheteur une requête HTTP POST avec les champs :
    • PaReq
    • TermUrl
    • MD
  6. L’acheteur est redirigé vers le site de la banque émettrice (ACS) et s’authentifie.
  7. A la fin de l’authentification, l’acheteur est redirigé vers le site marchand. Son navigateur effectue une requête POST à destination du site marchand contenant les champs MD et PaRes.
  8. Le site marchand récupère ces deux champs et les transmet à la plateforme de paiement pour vérifier l’authentification et créer la transaction.
    Pour créer la transaction, il doit :
    • rappeler l'opération createPayment en renseignant l'attribut mode de l'objet threeDSRequest à ENABLED_FINALIZE,
    • renseigner l'attribut requestId de l'objet threeDSRequest,
    • renseigner l'attribut pares de l'objet threeDSRequest,
  9. Le MPI de la plateforme de paiement vérifie les données contenues dans le PaRes :
    • l’acheteur ne s’est pas authentifié, le paiement est refusé.
    • l’acheteur s’est authentifié, la plateforme de paiement procède à la demande d’autorisation.
  10. La plateforme de paiement renvoie le résultat au site marchand (authenticationResultData).