ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

การอัพเกรด 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);

สอบถามปัญหาได้ที่เว็บบอร์ด