Fehlerbehebung

Nicht bestätigte Bestellungen nach einer Zahlung mit Redsys

Geprüft am 4 Min. Lesezeit Zahlungsanbieter SSL

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

  1. Suchen Sie den Vorgang im Verwaltungsportal von Redsys nach Bestellnummer, Händler und Terminal.
  2. Prüfen Sie die konfigurierte Benachrichtigungs-URL und ihr genaues Ergebnis. Notieren Sie die Uhrzeit und jeden Fehler.
  3. 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_Response anhand 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

Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.