Fehlerbehebung
Nicht bestätigte Bestellungen nach einer Zahlung mit Redsys
Markieren Sie eine Bestellung nicht als bezahlt, nur weil der Käufer in den Shop zurückkehrt. Die Bestätigung muss aus der Server-zu-Server-Benachrichtigung von Redsys stammen und von der Anwendung validiert werden.
Zuerst die Benachrichtigung finden
- Suchen Sie den Vorgang im Verwaltungsportal von Redsys nach Bestellnummer, Händler und Terminal.
- Prüfen Sie die konfigurierte Benachrichtigungs-URL und ihr genaues Ergebnis. Notieren Sie die Uhrzeit und jeden Fehler.
- Gleichen Sie diese Uhrzeit mit dem Zugriffsprotokoll der Website und dem Protokoll des Zahlungsmoduls ab. Ein Test vom Hosting selbst aus beweist nicht, dass Redsys die URL erreichen konnte.
Sichere Konfiguration der Benachrichtigung
Verwenden Sie eine gepflegte Version der Redsys-Integration für PrestaShop, WooCommerce oder die jeweilige Anwendung. Konfigurieren Sie die Benachrichtigungs-URL mit HTTPS und einem gültigen Zertifikat als Sicherheitsmaßnahme von Hostsuar; stellen Sie die Rückmeldung nicht auf HTTP zurück, um einen Fehler zu verdecken. Wenn die Benachrichtigung nicht ankommt, prüfen Sie aus einem externen Netz die URL, das Zertifikat, die Zertifikatskette, DNS, Firewall und die Protokolle desselben Zeitpunkts.
Die Anwendung darf eine Bestellung nicht allein deshalb als bezahlt markieren, weil der Kunde die Rücksprung-URL aufruft. Bevor die Zahlung bestätigt wird, muss der Callback des Servers:
- Die kryptografische Signatur von Redsys mit dem konfigurierten Schlüssel prüfen und jede ungültige Signatur ablehnen.
- Prüfen, dass Bestellnummer, Händler, Terminal, Währung, Vorgangsart und genauer Betrag mit dem lokal gespeicherten offenen Vorgang übereinstimmen.
- Den Code
Ds_Responseanhand der Tabelle und der Vorgangsart von Redsys auswerten, bevor der Status der Bestellung geändert wird. - Wiederholungen verhindern: Speichern Sie die Kennung des Vorgangs und verarbeiten Sie jede Benachrichtigung idempotent, ohne dieselbe Bestellung zweimal zu belasten oder zu bestätigen.
Führen Sie nach jedem Update oder Wechsel des Moduls einen Testkauf durch und bestätigen Sie in den Protokollen, dass sowohl die HTTPS-Benachrichtigung als auch alle diese Prüfungen erfolgreich abgeschlossen werden.
Wenn Redsys die Zahlung zeigt, der Shop sie aber nicht bestätigt
Bitten Sie den Käufer nicht, erneut zu zahlen, ohne den Vorgang abzugleichen. Prüfen Sie zuerst das Ergebnis in Redsys und den lokalen Status, um eine doppelte Belastung zu vermeiden. Ein HTTP 200 des Callbacks belegt nur seine Web-Antwort; das Protokoll des Moduls muss auch die Validierung und die Statusänderung bestätigen.
Wenn das Portal das erneute Senden der Benachrichtigung erlaubt, nutzen Sie diese Funktion erst, nachdem Sie die Ursache behoben und bestätigt haben, dass die Integration Wiederholungen ohne doppelte Wirkung verarbeitet. Erstellen Sie keine Benachrichtigung von Hand und markieren Sie die Bestellung nicht anhand von Parametern aus der URL im Browser.
Diese URL behält den historischen Bezug auf SNI-Zertifikate, aber ein heutiger Fehler sollte SNI nur zugeschrieben werden, wenn ein TLS-Fehler das belegt. Siehe die Integrationsdokumentation von Redsys und halten Sie Schlüssel sowie Test- und Produktionsumgebung getrennt; geben Sie den Signaturschlüssel nie in einem Ticket oder Screenshot weiter.
Das könnte Ihnen auch helfen
- So beheben Sie den SSL-Zertifikatsfehler cURL 60 in WordPress So diagnostizieren und beheben Sie den WordPress-Fehler cURL 60, ohne die Prüfung von SSL-Zertifikat...
- 404-Fehler bei statischen Dateien verlangsamen die Website Erkennen Sie fehlende statische Ressourcen, die PHP starten und CPU verbrauchen, liefern Sie sie als...
- Composer installiert ein globales Paket, findet aber seinen Befehl nicht Prüfen Sie, ob die globale Binärdatei von Composer existiert, ermitteln Sie ihr tatsächliches Verzei...
- Den Debug-Modus von PrestaShop vorübergehend aktivieren Ermitteln Sie die genaue Exception, indem Sie _PS_MODE_DEV_ vorübergehend über das Backoffice oder d...
Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.