การอัพเกรด IPN ของทาง PAYPALPaypal โดยเปลี่ยนมาตรฐาน ของ IPN จาก แต่เดิมใช้ HTTP1.0 มาเป็น HTTP1.1 ทำให้เกิดปัญหา กับโค้ด IPN เก่าๆ
สิ่งที่ต้องทำคือ การกำหนดส่วนของ header โดยต้องกำหนด Host และ Connection ดังนี้
// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Host: www.paypal.com\r\n";
$header .= "Connection: close\r\n\r\n";
และส่วนของการ VERIFIED ค่าระหว่าง Host ต้องตัดช่องว่างออก
โดยเปลี่ยน
if (strcmp ($res, "VERIFIED") == 0) {
..
else if (strcmp (trim($res), "INVALID") == 0) {
เป็น
if (strcmp (trim($res), "VERIFIED") == 0) {
..
else if (strcmp (trim($res), "INVALID") == 0) {
และส่วนของการ connect ไปยัง Paypal ต้องใช้
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
สอบถามปัญหาได้ที่เว็บบอร์ด