Com a bé sabràs, la PSD2 va arribar ja fa gairebé un any i per quedar-se. Avui dia és totalment obligatori que el nostre terminal tingui actiu PSD2. Què és el que succeeix? Que a Redsys no està actiu per defecte, quan creen un nou terminal, han de configurar-ho tot, incloent tot el que representa la PSD2.
La PSD2 ha d’estar activa per no tenir problemes amb els cobraments, ja que, si no, els posseïdors de targetes com Visa o MasterCard no podran finalitzar els seus pagaments, ja que no se’ls requerirà l’autenticació, el challenge no serà el indicat o el flux no sigui el correcte.
Això encara s’agreuja més quan utilitzem InSite o pagament amb 1clic, ja que surten errors al propi lloc.
Com podem saber si tenim tot actiu de forma correcta? És molt senzill, encara que desitgem utilitzar InSite, haurem de realitzar una prova preliminar amb redirecció. En la realitat amb InSite també es pot veure, però entren tants factors en marxa, que millor utilitzar redirecció per a la comprovació.
Com el problema sempre es produirà amb targetes v2.1 i v2.2 subjectes a la PSD2, utilitzarem una targeta de proves d’aquest tipus, així que quan arribem a Redsys, introduirem la targeta 4548816131164386 amb data de caducitat 12/32 i CVV 123. Un cop introduït, ens portarà al Challenge, quan arribem a la pantalla del challenge, ja veurem si el nostre terminal està ben configurat, o no ho està. Cuidado, amb les targetes v.1.0.2 no ha de sortir tampoc aquesta pantalla de V1, només que no ens fallarà el pagament.
Si no està ben configurat, ens sortirà en vermell i parpellejant «Simulador d’autenticació V1»

Si ens surt això, ja podem contactar amb el banc, perquè segur que tindran molts clients per pagar.
En el cas de la targeta v2.2 que us he indicat, us hauria de sortir aquesta pantalla.

Ja pots veure ben clar que en l’autenticació indica la versió de la targeta.
Si la targeta és un V1.0.2, ens hauria de sortir l’autenticació Finanet

Veus que és força senzill comprovar en el terminal de proves, i amb redirecció si està funcionant o no tot el tema de la PSD2.
Però, ¿Com sé si està ben configurat mitjançant InSite o tokenització? Per això haurem de tirar de logs.
Lògicament ho podràs mirar si els logs estan actius i si és amb el meu plugin premium per a Redsys, desconec els altres plugins el nivell de debug que ofereixen.
Fixa’t en aquest log introduint una targeta v2.2 en un terminal que no està configurat de forma correcta:
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_v2En el primer pas, preguntem a Redsys quin tipus de targeta és
<DS_MERCHANT_EMV3DS>{“threeDSInfo”:”CardData”}</DS_MERCHANT_EMV3DS>
Això ho fem ja que hem de saber quina targeta és, ja que depenent de la versió de la targeta, haurem de procedir d’una forma o altra.
En aquest cas podem veure la resposta $respuesta->protocolVersion: NO_3DS_v2 on ens diu que és una NO_3DS_v2. Així que ja comencem malament. També hi ha molts números que no serem capaços de finalitzar el pagament.
Si fem el mateix en un terminal ben configurat, obtindrem el següent:
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.0Ja podem veure que la resposta és $respuesta->protocolVersion: 2.2.0 així que es veu molt ràpid la diferència. I també ens sortirà la pantalla de Challenge v2.2

Però encara hi ha més. Com he dit, hi ha diverses configuracions que han d’estar actives al lloc, i si qualsevol d’elles no està activa, pot portar problemes. Així que podria ser que aquest punt fos correcte, i tornés que el protocol a utilitzar és el 2.2, amb el que el meu plugin començaria a realitzar tots els passos per al protocol 2.2.
En un dels passos, si el terminal no estigués ben configurat pel nostre banc, ens podríem trobar amb aquesta resposta com aquesta (retallada):
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 - tractaPeticion 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"}Fixa’t en el codi anterior. És un log antic i no he trobat un de la v2.2, però és la 2.1 i el problema és el mateix, així que per mostrar-ho va bé. Al principi de tot veuràs això {“threeDSInfo”:”AuthenticationData”,”protocolVersion”:”2.1.0″... ja que és una targeta 2.1 (recordo que això ho vam aconseguir en el primer pas que he mostrat). Però fixa’t més avall en el $XML_RETORNO 13, podem veure que encara que a Redsys li estem dient que és una 2.1, ens indica un challenge per a una 1.0.2 {“threeDSInfo”:”ChallengeRequest”,”protocolVersion”:”1.0.2″,”acsURL”:… així que no està fent les coses com ha de.
Ojo, l’anterior pot succeir per dos motius diferents, un és que hàgiu modificat el checkout d’alguna forma, i no s’estiguin enviant una sèrie de dades necessàries ja que no s’han pogut aconseguir, provocant un fallback de la 2.1.0 (o 2.2) a la 1.0.2. I la segona raó és un error en la configuració de Redsys.
I et estaràs preguntant, ¿I com sol·licito això a Redsys per no tenir problemes? Haureu de sol·licitar 3 coses, dues en la realitat són les mateixes, però hi ha bancs que ho entenen de forma diferent. Heu de sol·licitar:
- Activació de PSD2
- Activació de protocol EMV 3DS.
- Activació de Flux PSD2.
Si t’activen de forma correcta l’anterior, no hauries de tenir problemes amb cap tipus de targeta, ni en redirecció, ni en InSite, ni amb pagament amb 1clic. Si alguna cosa no és correcta, tindran errors els teus clients.
Personalment no acabo d’entendre el motiu que això no estigui actiu per defecte a Redsys i s’hagi d’activar de forma manual, però és així i cal estar atent.
Ja saps que com a usuari del meu plugin premium, tens suport i inclou que te l’instal·li, configuri i provi i en moltíssimes ocasions entro en els fils de correu amb Redsys, ja que és la forma més ràpida de solucionar-ho. Així que encara que aquí tens una explicació de tot, obre un ticket i t’ajudaré sense problemes.







