У меня уже несколько дней возникают проблемы со скриптом прослушивания IPN Paypal.Для тех из вас, кто не знаком с системой Paypal IPN, в основном Paypal отправляет ваш скрипт с сообщением о транзакции, которое вы отправляете обратно с добавлением пары битов.Если Paypal получит правильный ответ, он ответит «VERIFIED», а если нет, то скажет «INVALID».
Сначала я думал, что проблема, с которой я столкнулся, была с командой «fsockopen»:$ fp = fsockopen ('ssl: //sandbox.paypal.com', 443, $ errno, $ errstr, 30);Тем не менее, сократив весь мой код до этой строки, похоже, все в порядке.Проблема возникает с командами «feof» и «fgets».Сценарий просто зависает, и я не знаю почему.Я по сути скопировал код, предложенный на веб-сайте Paypal IPN Listener, поэтому предположил, что он будет работать!Если бы вы могли помочь мне понять, почему feof или fgets вызывают его остановку, то ваша помощь будет высоко оценена.
Вот полный сценарий:
$postback = 'cmd=_notify-validate'; //doesn't matter what these include for now
$header='abc';
//Script has been activated, create debug
$filename = 'debug/debug1_script.txt';
$filehandle=fopen($filename, 'w');
fwrite($filehandle,$postback);
fclose($filehandle);
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);//open the connection
//no connection, create debug file
if(!$fp){
$filename = 'debug/debug2_fpfail.txt';
$filehandle=fopen($filename, 'w');
fwrite($filehandle, $errstr.'('.$errno.')');
fclose($filehandle);
die();
}
//post data back
fputs($fp, $header . $postback);
//create debug file
$filename = 'debug/debug3_postback.txt';
$filehandle=fopen($filename, 'w');
fwrite($filehandle, $header.$postback);
fclose($filehandle);
//script hangs with either of the two following lines included
while(!feof($fp)){
$res=fgets($fp,1024);
}
Заранее большое спасибо!