Я помещаю PayPal Checkout на свой сайт, но падаю со слушателем.
Для тех из вас, кто не знаком с системой Paypal IPN, в основном Paypal отправляет ваш скрипт с сообщением о транзакции, которое вы отправляете обратно с добавлением пары битов. Если Paypal получит правильный ответ, он ответит «ПРОВЕРЕНО», а если нет - «НЕДОПУСТИМО».
Мне удалось с первым битом. Мой код может получать информацию от PayPal, добавлять дополнения и публиковать их обратно. Тем не менее, я не получаю ответа от Песочницы, говорящего «ПРОВЕРЕНО» или «НЕВЕРНО». Я в значительной степени скопировал свой код с веб-сайта PayPal, поэтому я надеялся, что это будет довольно просто, поэтому, если вы могли бы потратить минуту, чтобы посмотреть на мой код, возможно, некоторые новые глаза могли бы определить, где я ошибся .
Вот код. Ничего особенного, он буквально просто получает информацию, корректирует ее, передает обратно и читает ответ (который он либо не получает, либо не осознает, что получает)
<?php
$debug=true;
//Put together postback info
$postback = 'cmd=_notify-validate';
foreach($_POST as $key =>$value){
$postback .= "&$key=$value";
}
// build the header string to post back to PayPal system to validate
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Host: www.sandbox.paypal.com\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($postback) . "\r\n\r\n";
$fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30);//open the connection
if(!$fp){ //no conn
die();
}
//post data back
fputs($fp, $header . $postback);
while(!feof($fp)){
$res=fgets ($fp, 1024);
if((strcmp($res, "VERIFIED")) == 0){ //verified!
if($debug){
$filename = 'debug/debug5_verified.txt'; //create a file telling me we're verified
$filehandle=fopen($filename, 'w');
fwrite($filehandle,'VERIFIED!');
fclose($filehandle);
}
}
}
?>
Заранее спасибо!