Я помещаю платежную систему PayPal на свой веб-сайт, но терплю неудачу со слушателем. {{ 1}} Для тех из вас, кто не знаком с системой 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);
}
}
}
?>
Заранее спасибо!