Paypal-IPN Änderungen ab 1.2.2013 und JTL-Shop2/3

Ab 01.02.2013 treten Änderungen bei Paypal in Kraft, welche die Zahlungsbestätigungen (IPN) betreffen. Diese Änderungen sind ab JTL-Shop3.16 bereits umgesetzt. Bei älteren JTL-Shop Versionen besteht Handlungsbedarf.
Von D. Hannappel vor fast 5 Jahren hinzugefügt

Ab 01. Februar 2013 treten Änderungen bei Paypal in Kraft, welche die Zahlungsbestätigungen (IPN) betreffen.
Detaillierte Informationen zum IPN-Verfahren finden Sie hier: https://www.paypalobjects.com/de_DE/html/IntegrationCenter/ic_ipn.html

Änderungsbedarf besteht in JTL-Shop2 sowie in JTL-Shop3 bis einschließlich Version 3.15.
Ab JTL-Shop3.16 sind die Änderungen bereits umgesetzt, hier besteht kein Handlungsbedarf.

Sofern Sie noch nicht JTL-Shop3.16 einsetzen, führen Sie bis zum 01.02.2013 ein Update auf JTL-Shop3.16 aus.

Wenn Sie bis zum 01.02.2013 nicht mehr auf JTL-Shop3.16 aktualisieren können, stellen Sie bitte sicher, dass die folgenden Änderungen in Ihrem JTL-Shop durchgeführt werden:

Anleitung für JTL-Shop3.00 bis JTL-Shop 3.15

Bearbeiten Sie in Ihrem JTL-Shop3 die folgende Datei: /includes/modules/paypal/PayPal.class.php
Zum Bearbeiten können Sie die Datei per FTP herunterladen, lokal bearbeiten und nach Bearbeitung wieder hochladen.

Suchen Sie in dieser Datei nach folgendem Codeabschnitt (in JTL-Shop3.15 Zeile 170-172):

        $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
        $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
        $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";

Ersetzen Sie diesen Codeabschnitt wie folgt:

        $header .= "POST /cgi-bin/webscr HTTP/1.1\r\n";
        $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
        $header .= "Host: " . (PP_MODE == 1 ? "www.sandbox.paypal.com" : "www.paypal.com") . "\r\n";
        $header .= "Content-Length: " . strlen($req) . "\r\n";
        $header .= "Connection: Close\r\n\r\n";

Laden Sie die geänderte Datei hoch (alte Datei überschreiben).

Prüfen Sie im Anschluss in Ihrem Paypal-Konto in den IPN-Einstellungen, ob IPN aktiv ist.
Bei der Zahlungsbestätigungsurl tragen Sie ein: http://www.IhreShopDomain.de/includes/modules/notify.php

Anleitung für JTL-Shop2

Bearbeiten Sie in Ihrem JTL-Shop2 die folgende Datei: /includes/modules/paypal/notify.php
Zum Bearbeiten können Sie die Datei per FTP herunterladen, lokal bearbeiten und nach Bearbeitung wieder hochladen.

Suchen Sie in dieser Datei nach folgendem Codeabschnitt (in JTL-Shop2.19 Zeile 34-36):

$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";

Ersetzen Sie diesen Codeabschnitt wie folgt:

$header .= "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Host: www.paypal.com\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n";
$header .= "Connection: Close\r\n\r\n";

Prüfen Sie im Anschluss in Ihrem Paypal-Konto in den IPN-Einstellungen, ob IPN aktiv ist.
Bei der Zahlungsbestätigungsurl tragen Sie ein: http://www.IhreShopDomain.de/includes/modules/paypal/notify.php

Häufige Fragen Paypal-IPN Shop3 / Shop2

Was passiert, wenn ich die Änderungen nicht umsetze?

Wenn Sie die Änderungen im JTL-Shop3 nicht umsetzen, dann wird Paypal nicht mehr über den Eingang der Zahlungsbenachrichtigung benachrichtigt bzw. lehnt die HTTP 1.0 Antwort Ihres Webservers ab 1. Februar 2013 strikt ab.

Paypal startet dann mehrfache Wiederholungsversuche, die Zahlungsbenachrichtigung zu senden und wird nach einer gewissen Zeit IPN in Ihrem Paypal-Konto deaktivieren.
Bis dahin kann es passieren, dass mehrfach Zahlungseingangs-E-Mails versendet werden.

Um dieses Problem zu verhindern, setzen Sie die Änderungen in dieser Anleitung beschrieben um. Sofern Sie die Änderung nicht rechtzeitig schaffen, deaktivieren Sie IPN in Ihrem Paypal-Konto, um das mehrfache Senden von Zahlungseingangs-Mails vorab zu verhindern.

Zahlungsbestätigung zu einer Zahlung wird mehrfach hintereinander gesendet

Wenn mehrfach hintereinander Zahlungsbestätigungen von Paypal gesendet werden, haben sich bei der Anpassung der notify.php wahrscheinlich Fehler eingeschlichen. Paypal geht in diesem Fall davon aus, dass die Zahlungsbestätigung nicht angekommen ist und sendet weiterhin Zahlungsbestätigungen.

Fehleranalyse:

1. Schalten Sie zur genaueren Fehleranalyse in Ihrem Shop in der Datei /includes/defines.php den Parameter für "display_errors" von 0 auf 1. Dafür müssen Sie die Datei per FTP bearbeiten und nach der Änderung abspeichern.
2. Prüfen Sie anschließend, ob Sie URL zur Datei notify.php in Ihrem Browser aufrufen können.
3. Wenn die Datei keine Syntaxfehler enthält, erscheint eine leere weiße Seite (JTL-Shop3) bzw. eine "1" bei JTL-Shop2.
4. Erscheint im Browser ein Fehler 404, prüfen Sie bitte, ob Sie die URL korrekt eingegeben haben.
5. Erscheint ein Fehler 500, wurden offenbar Syntaxfehler bei der Anpassung eingebaut. In der Fehlermeldung oder im Apache-Errorlog finden Sie genauere Hinweise zum Fehler.
6. erscheint ein Fehler 4xx Forbidden, dann darf nicht auf die Datei zugegriffen werden. Prüfen Sie die .htaccess-Datei, ob hier evtl der Zugriff verhindert wird.

Nach der Fehleranalyse stellen Sie in der Datei /includes/defines.php den Parameter für "display_errors" bitte wieder zurück auf 0.

Für Hilfe bei der Fehleranalyse erstellen Sie bitte ein Support-Ticket inkl. FTP-Daten zu Ihrem Shop + URL zu Ihrer notify.php

Mit Paypal bezahlte Bestellungen werden nicht mehr auf bezahlt gesetzt.

Bitte prüfen Sie in Ihrem Paypal-Account unter Zahlungsverlauf -> IPN Einstellungen, ob dort IPN aktiv ist.

Aktivieren Sie IPN und geben Sie bei der URL für Zahlungsbestätigungen folgendes ein:

JTL-Shop3: http://www.IhreShopDomain.de/includes/modules/notify.php
JTL-Shop2: http://www.IhreShopDomain.de/includes/modules/paypal/notify.php

Für Hilfe bei der Fehleranalyse erstellen Sie bitte ein Support-Ticket inkl. der folgenden Infos/Zugangsdaten:
  • URL zu Ihrer notify.php
  • Screenshot des IPN-Verlaufs in Ihrem Paypal-Konto + Screenshot der aktuellen IPN-Einstellungen im Paypal-Konto
  • FTP-Daten zu Ihrem Shop (FTP-Host, Benutzer, Passwort)

Kommentare