2010-05-19 6 views
0

Я пытаюсь понять, как использовать IPN PayPal, и я столкнулся с стеной.PayPal IPN «FAIL»

Я хочу, чтобы покупатель был отправлен на страницу успеха после совершения покупки, и я хочу, чтобы эта страница отображала детали их транзакции. Я выбираю IPN вместо PDT, потому что я также хочу сделать некоторые другие вещи за кулисами с их данными.

В любом случае, вот код, который я использую - я тестирую в режиме песочницы, но каждый раз возвращает «FAIL».

$req = 'cmd=_notify-validate'; 
foreach ($_POST as $key => $value) { 
$value = urlencode(stripslashes($value)); 
$req .= "&$key=$value"; 
} 
// post back to PayPal system to validate 
$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"; 

$fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30); 

if (!$fp) { 
// HTTP ERROR 
} else { 
fputs ($fp, $header . $req); 
while (!feof($fp)) { 
$res = fgets ($fp, 1024); 
if (strcmp ($res, "VERIFIED") == 0) { 

// PAYMENT VALIDATED & VERIFIED! 

echo "Validated!"; 

} 

else if (strcmp ($res, "INVALID") == 0) { 

// PAYMENT INVALID & INVESTIGATE MANUALY! 

echo "Invalid!"; 

} 
} 
fclose ($fp); 
} 

ответ

0

Я не понимал, что песочница счет я настраивал было проверенно. Я переделал предварительно сконфигурированную учетную запись sandbox, а затем начал работать отлично.

0

я получил ту же проблему в тестовой среде, потому что мой item_name имеет особенный характер, тогда я изменить ITEM_NAME только английское слово и число. он отлично работает.

но в реальной среде я все еще нахожу эту проблему, я прочитал https://www.x.com/docs/DOC-1551, но я до сих пор не знаю, почему

+0

Спасибо за подсказку. Мое item_name - все английские буквы, поэтому я не думаю, что это вызывает проблему. – HWD

 Смежные вопросы

  • Нет связанных вопросов^_^