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.


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...

Wer das hier liest und einen Tipp hat, wie man die o.g. Seite im Menü bei Paypal findet und/oder wie man eine IPN erneut manuell absenden kann, gerne hier rein kommentieren... Danke im voraus!

 

 

 

 

Zurück

Kommentare

Einen Kommentar schreiben