Wie du sicherlich weißt, ist die PSD2 vor fast einem Jahr in Kraft getreten und bleibt bestehen. Heutzutage ist es absolut notwendig, dass unser Terminal die PSD2 aktiviert hat. Was passiert? Bei Redsys ist sie standardmäßig nicht aktiviert, wenn ein neues Terminal erstellt wird, müssen alle Einstellungen vorgenommen werden, einschließlich allem, was die PSD2 betrifft.
Die PSD2 muss aktiviert sein, um Probleme bei den Zahlungen zu vermeiden, da sonst Karteninhaber wie Visa oder MasterCard ihre Zahlungen nicht abschließen können, weil die Authentifizierung nicht erforderlich ist, die Herausforderung nicht die richtige sein wird oder der Ablauf nicht korrekt ist.
Dies wird noch schlimmer, wenn wir InSite oder Zahlung mit 1-Klick verwenden, da Fehler auf der eigenen Seite auftreten.
Wie können wir wissen, ob alles korrekt aktiviert ist? Es ist ganz einfach, auch wenn wir InSite verwenden möchten, müssen wir einen Vorabtest mit Weiterleitung durchführen. In der Realität kann man auch mit InSite sehen, aber es gibt so viele Faktoren, die ins Spiel kommen, dass es besser ist, die Weiterleitung zur Überprüfung zu verwenden.
Da das Problem immer mit Karten der Versionen 2.1 und 2.2, die der PSD2 unterliegen, auftreten wird, verwenden wir eine Testkarte dieses Typs. Wenn wir also zu Redsys gelangen, geben wir die Karte 4548816131164386 mit dem Ablaufdatum 12/32 und CVV 123 ein. Sobald wir dies eingegeben haben, gelangen wir zur Herausforderung. Wenn wir auf dem Bildschirm der Herausforderung ankommen, sehen wir, ob unser Terminal richtig konfiguriert ist oder nicht. Achtung, bei Karten der Version 1.0.2 sollte dieser Bildschirm der V1 ebenfalls nicht erscheinen, nur dass die Zahlung nicht fehlschlägt.
Wenn es nicht richtig konfiguriert ist, wird es rot und blinkend „Authentifizierungssimulator V1“ angezeigt.

Wenn uns dies angezeigt wird, können wir die Bank kontaktieren, denn sie werden sicher viele Kunden haben, die bezahlen möchten.
Im Fall der Karte v2.2, die ich euch angegeben habe, sollte dieser Bildschirm angezeigt werden.

Jetzt kannst du klar sehen, dass bei der Authentifizierung die Version der Karte angezeigt wird.
Wenn die Karte in einer V1.0.2 ist, sollte uns die Authentifizierung Finanet angezeigt werden.

Du siehst, dass es ziemlich einfach ist, im Testterminal zu überprüfen, ob alles in Bezug auf die PSD2 funktioniert oder nicht.
Aber wie weiß ich, ob es über InSite oder Tokenisierung richtig konfiguriert ist? Dafür müssen wir die Protokolle überprüfen.
Logischerweise kannst du dies überprüfen, wenn die Protokolle aktiv sind und wenn es mit meinem Premium-Plugin für Redsys ist, kenne ich die anderen Plugins und deren Debug-Niveau nicht.
Achte auf dieses Protokoll, indem du eine Karte v2.2 in ein Terminal eingibst, das nicht korrekt konfiguriert ist:
12-02-2021 @ 12:29:28 - /****************************
12-02-2021 @ 12:29:28 - Die 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_v2Im ersten Schritt fragen wir Redsys, um welchen Kartentyp es sich handelt.
<DS_MERCHANT_EMV3DS>{“threeDSInfo”:”CardData”}</DS_MERCHANT_EMV3DS>
Wir tun dies, weil wir wissen müssen, um welche Karte es sich handelt, da wir je nach Version der Karte unterschiedlich verfahren müssen.
In diesem Fall können wir die Antwort sehen $respuesta->protocolVersion: NO_3DS_v2, was uns sagt, dass es eine NO_3DS_v2 ist. Das fängt schon schlecht an. Es gibt auch viele Nummern, die wir möglicherweise nicht abschließen können.
Wenn wir dasselbe in einem gut konfigurierten Terminal tun, erhalten wir Folgendes:
12-02-2021 @ 16:46:42 - /****************************
12-02-2021 @ 16:46:42 - Die 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.0Jetzt können wir sehen, dass die Antwort $respuesta->protocolVersion: 2.2.0 ist, sodass der Unterschied sehr schnell sichtbar wird. Und auch der Bildschirm der Herausforderung v2.2 wird angezeigt.

Aber es gibt noch mehr. Wie gesagt, es gibt mehrere Konfigurationen, die auf der Seite aktiviert sein müssen, und wenn eine davon nicht aktiv ist, kann es zu Problemen führen. Es könnte also sein, dass dieser Punkt korrekt ist und zurückgibt, dass das zu verwendende Protokoll 2.2 ist, sodass mein Plugin alle Schritte für das Protokoll 2.2 ausführen würde.
In einem der Schritte, wenn das Terminal von unserer Bank nicht richtig konfiguriert ist, könnten wir mit dieser Antwort konfrontiert werden (gekürzt):
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 - trataPeticion 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"}Achte auf den vorherigen Code. Es ist ein altes Protokoll und ich habe kein Protokoll der v2.2 gefunden, aber es ist die 2.1 und das Problem ist dasselbe, sodass es gut zur Veranschaulichung dient. Am Anfang wirst du dies sehen {“threeDSInfo”:”AuthenticationData”,”protocolVersion”:”2.1.0″... da es sich um eine Karte 2.1 handelt (ich erinnere mich, dass wir dies im ersten Schritt gezeigt haben). Aber achte weiter unten auf das $XML_RETORNO 13, wir können sehen, dass, obwohl wir Redsys sagen, dass es eine 2.1 ist, uns eine Herausforderung für eine 1.0.2 angezeigt wird {“threeDSInfo”:”ChallengeRequest”,”protocolVersion”:”1.0.2“,”acsURL”:… sodass es nicht so funktioniert, wie es sollte.
Vorsicht, das vorherige kann aus zwei verschiedenen Gründen passieren: Einer ist, dass ihr den Checkout auf irgendeine Weise geändert habt und eine Reihe notwendiger Daten nicht gesendet werden, da sie nicht erfasst werden konnten, was zu einem Fallback von 2.1.0 (oder 2.2) auf 1.0.2 führt. Der zweite Grund ist ein Fehler in der Konfiguration von Redsys.
Und du fragst dich vielleicht, wie ich dies bei Redsys anfordere, um keine Probleme zu haben? Du musst drei Dinge anfordern, zwei davon sind in der Realität dasselbe, aber es gibt Banken, die es unterschiedlich verstehen. Du solltest anfordern:
- Aktivierung der PSD2
- Aktivierung des EMV 3DS Protokolls.
- Aktivierung des PSD2 Flows.
Wenn dir das vorherige korrekt aktiviert wird, solltest du mit keiner Art von Karte Probleme haben, weder bei der Weiterleitung, noch bei InSite, noch bei der Zahlung mit 1-Klick. Wenn etwas nicht korrekt ist, werden deine Kunden Fehler haben.
Persönlich verstehe ich nicht ganz, warum dies nicht standardmäßig bei Redsys aktiviert ist und manuell aktiviert werden muss, aber es ist so und man muss darauf achten.
Du weißt, dass du als Benutzer meines Premium-Plugins Support hast und es beinhaltet, dass ich es installiere, konfiguriere und teste. In vielen Fällen bin ich in den E-Mail-Threads mit Redsys, da dies der schnellste Weg ist, es zu lösen. Auch wenn du hier eine Erklärung zu allem hast, öffne ein Ticket und ich helfe dir ohne Probleme.







