CSRF-Token mit PayPal

Hallo,

die gefühlt 1.000ste Frage zu dem Thema, aber ich konnte keine brauchbare Antwort auf das Problem finden. Die Warnungen über die config auszuschalten, halte ich nicht für brauchbar.

Wir nutzen unter Shopware 5.5.4 das Plugin PayPal in der Verion 2.0.3 - also alles aktuell.

Im Shopware-Log tauchen dann immer wieder diese Meldungen auf:

Auf dem Server, auf dem der Shop läuft, finde ich dazu folgende Meldungen:

2019-01-04 09:24:00    Access    173.0.81.1    301    POST /index.php?page=callback&page_action=xt_paypal HTTP/1.1        PayPal IPN ( https://www.paypal.com/ipn )    178     SSL/TLS-Zugriff für nginx
2019-01-04 09:24:01    Error    173.0.81.1    404    POST /index.php?page=callback&page_action=xt_paypal HTTP/1.0        PayPal IPN ( https://www.paypal.com/ipn )    620     SSL/TLS-Zugriff für Apache

Ich kann rausfinden, dass der anfragende Server auf PayPal registriert ist. Aber warum nginx geht und Apache nicht und die unterschiedlichen Antwortgrößen (oder Anfragegrößen?) versteh nicht nicht.

Wie bekomm ich das Problem gelöst?

Danke und weiße Grüße

Oliver

Hallo Oliver,

die aufgerufene URL ist auf jeden Fall keine mir bekannte Shopware URL oder eine URL von unserem PayPal Plugin. Auf Grund des „xt_“ Prefixes würde ich jetzt spotan auf xtCommerce oder sowas tippen. Evtl. habt ihr noch alte Webhooks bei PayPal aktiv?

Viele Grüße aus Schöppingen

cool Michael Telgmann

1 Like

Danke Michael,

nachdem ich jetzt seit 24 Stunden keine Meldungen mehr bekommen hab, dürfte das die Ursache gewesen sein.

Für alle mit dem gleichen Problem: Das neue Plugin wird über developer.paypal.com eingerichtet. Beim alten wurde direkt im PayPal-Konto die API eingerichtet. Und da war noch der Eintrag vom alten Shop drin. Aber Achtung: entweder müsst ihr da ein PAAR TAGE Geduld mitbringen, bis die Löschung tatsächlich greift ober der Kundendienst von PayPal hat nach meiner Nachfrage da händisch noch was geändert. Bei mir hat es jedenfalls nach dem Löschen drei Tage gedauert, bis keine solchen Fehler mehr aufgetaucht sind.

Hallo zusammen,

ich erhalte ebenfalls Fehler im Log (core_production-2019-01-27.log) hinsichtlich Paypal teilweise mehrere Einträge pro Stunde. Folgendes zeigt er an:

core - critical - The provided X-CSRF-Token for path “/ipn/” is invalid. Please go back, reload the page and try again.

core - error 

Shopware\Components\CSRFTokenValidationException: The provided X-CSRF-Token for path "/ipn/" is invalid. Please go back, reload the page and try again. in /engine/Shopware/Components/CSRFTokenValidator.php:149 Stack trace:
#0 /engine/Library/Enlight/Event/Handler/Default.php(91): Shopware\Components\CSRFTokenValidator->checkFrontendTokenValidation(Object(Enlight_Controller_ActionEventArgs))
#1 /engine/Library/Enlight/Event/EventManager.php(220): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#2 /engine/Library/Enlight/Controller/Action.php(176): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#3 /engine/Library/Enlight/Controller/Dispatcher/Default.php(549): Enlight_Controller_Action->dispatch('indexAction')
#4 /engine/Library/Enlight/Controller/Front.php(222): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#5 /engine/Shopware/Kernel.php(202): Enlight_Controller_Front->dispatch()
#6 /vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(102): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#7 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(Object(Shopware\Kernel), Object(Symfony\Component\HttpFoundation\Request), 1, true)
#8 /engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#9 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(238): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#10 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#11 /engine/Shopware/Components/HttpCache/AppCache.php(143): Symfony\Component\HttpKernel\HttpCache\HttpCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#12 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(181): Shopware\Components\HttpCache\AppCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#13 /engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#14 /html/shopware/shopware.php(122): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#15 {main}

Dann habe ich die Accesslogs durchsucht und habe gesehen folgender Eintrag ruft das ganze hervor:

173.0.81.0 - - [27/Jan/2019:15:38:40 +0100] "POST /ipn/ HTTP/1.1" 200 3669 "-" "PayPal/AUHR-214.0-50275941" best-lash.com
173.0.81.0 - - [27/Jan/2019:15:38:41 +0100] "POST /ipn/ HTTP/1.1" 200 3538 "-" "PayPal/AUHR-214.0-50275941" www.best-lash.com

Wie kann ich hier die Fehler beheben?

Hallo,

die Route /ipn/ wird von keinem unserer PayPal Plugins angelegt oder ausgelöst. Das Problem scheint an anderer Stelle zu liegen. 

Viele Grüße aus Schöppingen

cool Michael Telgmann

1 Like

Vielen Dank, Michael.

Hast du oder jemand im Forum einen Tipp für mich wie ich hier vorgehen kann um den Fehler einzugrenzen? Es reicht wirlich eine ganz grobe Vorgehensweise… vielen Dank.

Update:

Ich habe den Ursprung des Fehlers gefunden, falls auch andere evtl. diesen Error in den Logs haben. Das stammt aus einem alten PayPal-Webhook. Ob dieser durch eine frühere PayPal-Integration oder irgendwelchem Plugins herrührt kann ich nicht sagen. Dieser versuchte per REST auf die nicht existierende Seite zuzugreifen und hat ständig einen Error getriggert.

Ihr könnt das im PayPal Developer-Bereich in eurer REST-Config (Live) beheben indem ihr dort den Webhook einfach löscht.