Comme vous le savez, la PSD2 est arrivée il y a presque un an et elle est là pour rester. Aujourd’hui, il est totalement obligatoire que notre terminal ait la PSD2 activée. Que se passe-t-il ? Que chez Redsys, elle n’est pas activée par défaut, lorsque vous créez un nouveau terminal, vous devez tout configurer, y compris tout ce qui concerne la PSD2.
La PSD2 doit être active pour ne pas avoir de problèmes avec les paiements, car sinon, les détenteurs de cartes comme Visa ou MasterCard ne pourront pas finaliser leurs paiements, car l’authentification ne sera pas requise, le challenge ne sera pas le bon ou le flux ne sera pas correct.
Cela s’aggrave encore plus lorsque nous utilisons InSite ou le paiement en 1 clic, car des erreurs apparaissent sur le site lui-même.
Comment pouvons-nous savoir si tout est correctement activé ? C’est très simple, même si nous souhaitons utiliser InSite, nous devrons effectuer un test préliminaire avec redirection. En réalité, avec InSite, nous pouvons également voir, mais il y a tant de facteurs en jeu qu’il vaut mieux utiliser la redirection pour la vérification.
Comme le problème se produira toujours avec les cartes v2.1 et v2.2 soumises à la PSD2, nous utiliserons une carte de test de ce type, donc lorsque nous arriverons à Redsys, nous introduirons la carte 4548816131164386 avec une date d’expiration 12/32 et un CVV 123. Une fois introduite, cela nous mènera au Challenge, lorsque nous arriverons à l’écran du challenge, nous verrons si notre terminal est bien configuré ou non. Attention, avec les cartes v.1.0.2, cet écran de V1 ne doit pas non plus apparaître, sauf que le paiement ne doit pas échouer.
Si ce n’est pas bien configuré, cela apparaîtra en rouge et clignotant « Simulateur d’authentification V1 »

Si cela apparaît, nous pouvons déjà contacter la banque, car ils auront sûrement beaucoup de clients à payer.
Dans le cas de la carte v2.2 que je vous ai indiquée, cet écran devrait apparaître.

Vous pouvez déjà voir clairement que l’authentification indique la version de la carte.
Si la carte est en V1.0.2, l’authentification Finanet devrait apparaître

Vous voyez qu’il est assez simple de vérifier sur le terminal de test, et avec redirection si tout le sujet de la PSD2 fonctionne ou non.
Mais, comment savoir si c’est bien configuré via InSite ou tokenisation ? Pour cela, nous devrons consulter les logs.
Logiquement, vous pourrez vérifier si les logs sont actifs et si c’est avec mon plugin premium pour Redsys, je ne connais pas le niveau de débogage offert par les autres plugins.
Regardez ce log en introduisant une carte v2.2 dans un terminal qui n’est pas configuré correctement :
12-02-2021 @ 12:29:28 - /****************************
12-02-2021 @ 12:29:28 - The XML
12-02-2021 @ 12:29:28 - /****************************
12-02-2021 @ 12:29:28 -
12-02-2021 @ 12:29:28 - <REQUEST><DATOSENTRADA><DS_MERCHANT_AMOUNT>3685</DS_MERCHANT_AMOUNT><DS_MERCHANT_ORDER>100000000058</DS_MERCHANT_ORDER><DS_MERCHANT_MERCHANTCODE>XXXXXXXXXXXXXXX</DS_MERCHANT_MERCHANTCODE><DS_MERCHANT_TERMINAL>1</DS_MERCHANT_TERMINAL><DS_MERCHANT_TRANSACTIONTYPE>0</DS_MERCHANT_TRANSACTIONTYPE><DS_MERCHANT_CURRENCY>978</DS_MERCHANT_CURRENCY><DS_MERCHANT_IDOPER>XXXXXXXXXXXXXXXXXXXXXXX</DS_MERCHANT_IDOPER><DS_MERCHANT_EMV3DS>{"threeDSInfo":"CardData"}</DS_MERCHANT_EMV3DS></DATOSENTRADA><DS_SIGNATUREVERSION>HMAC_SHA256_V1</DS_SIGNATUREVERSION><DS_SIGNATURE>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</DS_SIGNATURE></REQUEST>
12-02-2021 @ 12:29:28 - $XML_RETORNO 14 IniciaPeticion: SimpleXMLElement Object
(
[CODIGO] => 0
[INFOTARJETA] => SimpleXMLElement Object
(
[Ds_Order] => 100000000058
[Ds_MerchantCode] => 036763159
[Ds_Terminal] => 1
[Ds_TransactionType] => 0
[Ds_EMV3DS] => {"protocolVersion":"NO_3DS_v2","threeDSInfo":"CardConfiguration"}
[Ds_Card_PSD2] => Y
[Ds_Signature] => E0KE/r+s7nNE9G3uXwBXvd6TTM1NDQoG6RV9EwfINxY=
)
)
12-02-2021 @ 12:29:28 - $respuesta: stdClass Object
(
[protocolVersion] => NO_3DS_v2
[threeDSInfo] => CardConfiguration
)
12-02-2021 @ 12:29:28 - $respuesta->protocolVersion: NO_3DS_v2Au premier pas, nous demandons à Redsys quel type de carte c’est
<DS_MERCHANT_EMV3DS>{“threeDSInfo”:”CardData”}</DS_MERCHANT_EMV3DS>
Nous faisons cela car nous devons savoir quelle carte c’est, car selon la version de la carte, nous devrons procéder d’une manière ou d’une autre.
Dans ce cas, nous pouvons voir la réponse $respuesta->protocolVersion: NO_3DS_v2 où il nous dit que c’est une NO_3DS_v2. Donc, nous commençons mal. Il y a aussi beaucoup de numéros qui ne nous permettront pas de finaliser le paiement.
Si nous faisons la même chose sur un terminal bien configuré, nous obtiendrons ce qui suit :
12-02-2021 @ 16:46:42 - /****************************
12-02-2021 @ 16:46:42 - The XML
12-02-2021 @ 16:46:42 - /****************************
12-02-2021 @ 16:46:42 -
12-02-2021 @ 16:46:42 - <REQUEST><DATOSENTRADA><DS_MERCHANT_AMOUNT>10000</DS_MERCHANT_AMOUNT><DS_MERCHANT_ORDER>100000003156</DS_MERCHANT_ORDER><DS_MERCHANT_MERCHANTCODE>XXXXXXXXXXXX</DS_MERCHANT_MERCHANTCODE><DS_MERCHANT_TERMINAL>1</DS_MERCHANT_TERMINAL><DS_MERCHANT_TRANSACTIONTYPE>0</DS_MERCHANT_TRANSACTIONTYPE><DS_MERCHANT_CURRENCY>978</DS_MERCHANT_CURRENCY><DS_MERCHANT_IDOPER>XXXXXXXXXXXXXXXXXXXXXXX</DS_MERCHANT_IDOPER><DS_MERCHANT_EMV3DS>{"threeDSInfo":"CardData"}</DS_MERCHANT_EMV3DS></DATOSENTRADA><DS_SIGNATUREVERSION>HMAC_SHA256_V1</DS_SIGNATUREVERSION><DS_SIGNATURE>XXXXXXXXXXXXXXXXXXXXXXXXX</DS_SIGNATURE></REQUEST>
12-02-2021 @ 16:46:42 - $XML_RETORNO 14 IniciaPeticion: SimpleXMLElement Object
(
[CODIGO] => 0
[INFOTARJETA] => SimpleXMLElement Object
(
[Ds_Order] => 100000003156
[Ds_MerchantCode] => 349567461
[Ds_Terminal] => 1
[Ds_TransactionType] => 0
[Ds_EMV3DS] => {"protocolVersion":"2.2.0","threeDSServerTransID":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","threeDSInfo":"CardConfiguration"}
[Ds_Card_PSD2] => Y
[Ds_Signature] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
)
)
12-02-2021 @ 16:46:42 - $respuesta: stdClass Object
(
[protocolVersion] => 2.2.0
[threeDSServerTransID] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[threeDSInfo] => CardConfiguration
)
12-02-2021 @ 16:46:42 - $respuesta->protocolVersion: 2.2.0Nous pouvons déjà voir que la réponse est $respuesta->protocolVersion: 2.2.0 donc la différence est très rapide à voir. Et l’écran de Challenge v2.2 apparaîtra également.

Mais il y a encore plus. Comme je l’ai dit, il y a plusieurs configurations qui doivent être actives sur le site, et si l’une d’elles n’est pas active, cela peut poser des problèmes. Donc, il se peut que ce point soit correct et renvoie que le protocole à utiliser est le 2.2, ce qui amènerait mon plugin à commencer à réaliser toutes les étapes pour le protocole 2.2.
Dans l’une des étapes, si le terminal n’était pas bien configuré par notre banque, nous pourrions nous retrouver avec cette réponse (écourtée) :
acctInfo: : {"threeDSInfo":"AuthenticationData","protocolVersion":"2.1.0","browserAcceptHeader":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","browserColorDepth":"24","browserIP":"80.XX.XX.XX",...}}
11-05-2021 @ 13:22:18 - traitePeticion 10: <REQUEST><DATOSENTRADA><DS_MERCHANT_AMOUNT>900</DS_MERCHANT_AMOUNT><DS_MERCHANT_ORDER>100000000136</DS_MERCHANT_ORDER><DS_MERCHANT_MERCHANTCODE>XXXXXXXXXXXX</DS_MERCHANT_MERCHANTCODE><DS_MERCHANT_TERMINAL>1</DS_MERCHANT_TERMINAL><DS_MERCHANT_TRANSACTIONTYPE>0</DS_MERCHANT_TRANSACTIONTYPE><DS_MERCHANT_CURRENCY>978</DS_MERCHANT_CURRENCY><DS_MERCHANT_IDOPER>XXXXXXXXXXXXXXXXXXXXXXXX</DS_MERCHANT_IDOPER><DS_MERCHANT_EXCEP_SCA>LWV</DS_MERCHANT_EXCEP_SCA><DS_MERCHANT_EMV3DS>{"threeDSInfo":"AuthenticationData","protocolVersion":"2.1.0",...}</DS_MERCHANT_EMV3DS></DATOSENTRADA><DS_SIGNATUREVERSION>HMAC_SHA256_V1</DS_SIGNATUREVERSION><DS_SIGNATURE>Ckba7sIir5FtBpCyPRqisFVQaMngw3NPc6MbfBUJjBQ=</DS_SIGNATURE></REQUEST>
11-05-2021 @ 13:22:23 -
11-05-2021 @ 13:22:23 - $XML_RETORNO 13: SimpleXMLElement Object
(
[CODIGO] => 0
[OPERACION] => SimpleXMLElement Object
(
[Ds_Amount] => 900
[Ds_Currency] => 978
[Ds_Order] => 100000000136
[Ds_Signature] => gwkc5JNecdaPp9vuntavjIFg2urNiADau+hB1yv8Gws=
[Ds_MerchantCode] => 124770314
[Ds_Terminal] => 2
[Ds_TransactionType] => 0
[Ds_EMV3DS] => {"threeDSInfo":"ChallengeRequest","protocolVersion":"1.0.2","acsURL":"https://sas.redsys.es/sas/Secure","PAReq":"eJxVUttuwjAM/ZWq7yMXyrjIZOoo0/oQhqDbe5RG0AlSlrRb+fs5UHZ5SOJjW8f2ceChOx6iT+N8Vdt5zAY0jozVdVnZ3Tx+LZ7uJvGDgGLvjMm2RrfOCJDGe7UzUVXOY1d6VXVfyjNlNRsnCUs45YwxOkKLsymllN+zWMA63ZgPAX0tgaUGHMgNIqnTe2UbAUp/POYrMWKUsiGQHsLRuDwT2+VGLtepXG4Wz+mqAHJ1g1VHIxYvcr1Jo7d8mxfpFsjFCbpubePOYswTIDcArTuIfdOc/IyQprVmV+uq9nipw8CaBkhIAPLb1roNlkfCriqFfE/Pslh2MnvtVll+lu+SySz9wjMHEjKgVI0RNzEiNpxxPuM40MUP6hg6EdMBpTjjFcAp1Ej7SAj8dQCq73A5ZzEdT3CSGwLTnWprMAP1/LGhNF7jAP3z2/3iOUisG1Tt76b4EDc1YjwZJ5NkEmS/pATyCvXilA4v7AEACSSk3yjp/wNa//7JN5c+wi4=","MD":"8098f2fb1bf6c7988c026be7944cd61e7231b05f"}Regardez le code ci-dessus. C’est un ancien log et je n’ai pas trouvé un de la v2.2, mais c’est la 2.1 et le problème est le même, donc cela fonctionne bien pour montrer. Au début, vous verrez cela {“threeDSInfo”:”AuthenticationData”,”protocolVersion”:”2.1.0″... car c’est une carte 2.1 (je me souviens que nous avons obtenu cela dans le premier pas que j’ai montré). Mais regardez plus bas dans le $XML_RETORNO 13, nous pouvons voir que même si nous disons à Redsys que c’est une 2.1, cela indique un challenge pour une 1.0.2 {“threeDSInfo”:”ChallengeRequest”,”protocolVersion”:”1.0.2“,”acsURL”:… donc cela ne fonctionne pas comme cela devrait.
Attention, ce qui précède peut se produire pour deux raisons différentes, l’une est que vous avez modifié le checkout d’une manière ou d’une autre, et qu’une série de données nécessaires ne sont pas envoyées car elles n’ont pas pu être obtenues, provoquant un fallback de la 2.1.0 (ou 2.2) à la 1.0.2. Et la deuxième raison est une erreur dans la configuration de Redsys.
Et vous vous demandez sûrement, comment puis-je demander cela à Redsys pour ne pas avoir de problèmes ? Vous devrez demander 3 choses, deux en réalité sont les mêmes, mais certaines banques le comprennent différemment. Vous devez demander :
- Activation de la PSD2
- Activation du protocole EMV 3DS.
- Activation du Flux PSD2.
Si vous activez correctement ce qui précède, vous ne devriez avoir aucun problème avec aucun type de carte, ni en redirection, ni en InSite, ni avec le paiement en 1 clic. Si quelque chose n’est pas correct, vos clients auront des erreurs.
Personnellement, je ne comprends pas pourquoi cela n’est pas activé par défaut chez Redsys et doit être activé manuellement, mais c’est comme ça et il faut être vigilant.
Vous savez déjà qu’en tant qu’utilisateur de mon plugin premium, vous avez un support et cela inclut que je l’installe, le configure et le teste, et dans de nombreux cas, j’entre dans les fils de courrier avec Redsys, car c’est la façon la plus rapide de le résoudre. Donc, même si vous avez ici une explication de tout, ouvrez un ticket et je vous aiderai sans problème.







