Wer Internetseiten für Shops erstellt oder pflegt, die auch eine PayPal-Zahlungsschnittstelle nutzen, muss möglicherweise Änderungen vornehmen.  PayPal erweitert den IP-Adresspool seiner Server. Als Teil dieses Übergangs plant der Zahlungsdienstleister, die Unterstützung des HTTP 1.0-Protokolls ab 1. Februar 2013 einzustellen.

Das wirkt sich auf die Instant Payment Notification (IPN) aus in den Zahlungsschnittstellen von Internetshops und Verkaufsstellen aus, die IPN nutzen.

PayPal hat sich in einem Foren-Eintrag und per Email bei Kunden, die IPN schon nutzen, dazu geäußert und weist insbesondere darauf hin, dass die IPN- Scripte nur noch funktionieren, wenn das HTTP 1.1-Protokoll verwendet wird, das den Header „Host: www.paypal.com“ im Request beinhalten muss.

Hier ein Auszug aus der Email, nach dem Programmierer ihre Zahlungsschnittstelle umstellen können:

 

Was bedeutet das im Detail?

Alle eingehenden Anfragen benötigen ab dem 1. Februar 2013 einen „Host“-Header, der den HTTP 1.1-Spezifikationen entspricht. Dieser Header wurde für HTTP 1.0 nicht benötigt. IPN- und PDT-Skripte, die nach dem 1. Februar 2013 HTTP 1.0 verwenden, werden möglicherweise die Fehlermeldung „HTTP/1.0 400 Bad Request“ erhalten. Aus diesem Grund können IPN-Benachrichtigungen nicht erfolgreich bestätigt werden oder PDT-Skripte können keine Transaktionsinformationen abrufen.

Erforderliche Maßnahmen vor dem 1. Februar 2013

Händler müssen Ihre IPN- und/oder PDT-Skripte aktualisieren, HTTP 1.1 verwenden und den „Host“-Header in dem IPN-Verifizierungsskript einfügen.

Beispiele:

ASP:

//Set values for the request back
req.Method=“POST“;
req.Host=“www.paypal.com„;
req.ContentType=“application/x-www-form-urlencoded“;

 

Perl:

$req=HTTP::Request->new(‚POST‘, ‚https://www.paypal.com/cgi-bin/webscr‘);
$req->content_type(‚application/x-www-form-urlencoded‘);
$req->header(Host=> ‚www.paypal.com‘);

 

PHP:

// post back to PayPal system to validate
$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„;

 

Java:

HttpsURLConnection  uc=(HttpsURLConnection) u.openConnection();
uc.setDoOutput(true);
uc.setRequestProperty(„Content-Type“,“application/x-www-form-urlencoded“);
uc.setRequestProperty(„Host“, „www.paypal.com„);

 

Die PayPal-Sandbox wurde konfiguriert, um alle HTTP-Anfragen ohne „Host“-Header mit dem Fehlercode „HTTP 400 Error“ abzulehnen. Händler können die Sandbox-Umgebung verwenden, um die Änderung der IPN- und PDT-Skripte zu testen.

Mehr Informationen zu PDT und IPN finden Sie unter  http://www.paypal.com/pdt und http://www.paypal.com/ipn. Weitere Informationen zu dieser Änderung finden Sie unter https://www.paypal.com/mts.