Contao 4, Paypal-IPN, Error 500
(Kommentare: 0)
Wenn in einer Contao-Installation unter Einstellungen "Anfrage-Tokens deaktivieren" nicht angehakt ist, wird jeder POST-Request geprüft, ob ein Request Token dabei ist. Wenn nicht, gibt es einen HTTP-Status-Code / Error 500.
Wenn ich aber zum Beispiel einen POST-Request von Paypal erwarte (Paypal Instant Payment Notification, IPN, Sofortige Zahlungsbestätigung), dann kommt dieser Request ohne das Contao-Request-Token und ergo funktioniert die IPN nicht.
In den Logfiles sehe ich dann die Fehlermeldung '...InternalServerErrorHttpException: "Invalid request token. Please reload the page and try again"'.
Ich muss also dafür sorgen, dass für eine bestimmte Seite - meine Paypal-IPN-Seite - kein Referer-/Request-Token-Check durchgeführt wird.
Lösung: ich editiere die ROOT/system/config/localconfig.php und setze nach der Zeile "### INSTALL SCRIPT STOP ###" z.B. folgendes ein:
if (preg_match('~/paypal-response.html~', $_SERVER['REQUEST_URI']))
$GLOBALS['TL_CONFIG']['disableRefererCheck'] = true;
Code, der vor und nach den ### INSTALL...###-Zeilen steht, wird auch beim Speichern der Einstellungen im Contao-Backend beibehalten.
Nebenbei: Wenn Strato im Spiel ist, dann ggf. mal schauen unter Paypal und Strato.
Verläufe der Sofortigen Zahlungsbestätigungen (IPN) bei Paypal finden
Nebenbei: ich habe lange versucht, im "Backend" von Paypal die Seite "Sofortige Zahlungsbestätigungen (IPN) - Verlauf" zu finden, wo ich sehen kann, welche IPN-Requests wann und mit welchem Erfolg gesendet wurden. Nach viel Googelei: Login in Paypal, dann folgende URL im Browser aufrufen:
https://www.paypal.com/ie/cgi-bin/webscr?cmd=_display-ipns-history&nav=0.3.2
Leider sehe ich dort keine Möglichkeit, einen Request manuell noch einmal los zu schießen, aber nun... Paypal macht ja irgendwann ein paar neue Versuche...
Man findet diese Seite auch über das Menü: Rechts oben über den Namen mousen, "Kontoeinstellungen", links im Menü "Benachrichtigungen", dort dann "Sofortige Zahlungsbestätigung", "bearbeiten". Wenn man das nach Eingabe einer Standard-Benachrichtigungs-URL aktiviert hat, erhält man hier eine Seite mit dem Text "Sie haben die Funktion "Sofortige Zahlungsbestätigung (IPN)" aktiviert. Sie können Ihre sofortigen Zahlungsbestätigungen auf der Verlaufsseite für sofortige Zahlungsbestätigungen (IPN) anzeigen" - dort ist der Link zur Übersicht / Liste der IPNs der vergangenen Tage und ich kann die Meldungen und ggf. Fehlermeldungen sehen!
Kommentare
Einen Kommentar schreiben