Привет, сообщество StackOverflow!Я давно работаю над своим сценарием PayPal IPN, но без особого успеха.Предполагается, что этот скрипт возвращает VALID и помещает его в stats.txt, но по какой-то причине этого не происходит, и вместо этого он вообще не работает.Я использовал песочницу PayPal, и foreach POST
, кажется, работает нормально.Я пытался вставить необработанный URL в свой браузер со всеми значениями GET, но по какой-то причине PayPal просто выдает ошибку тайм-аута и даже не возвращает INVALID
.Вот мой код:
// Get POST data and refine the GET value.
foreach ($_POST as $name => $value) {
$postdata = $name.'='.$value.'&';
$result .= substr('?'.$postdata, 0, -1);
}
// Verify that payment was really made.
$verify = file_get_contents('https://ipnpb.sandbox.paypal.com/cgi-bin/webscr/'.$result.'');
if ($verify == "VERIFIED") {
// Any code run here will only be run if payment is verified.
echo 'Payment success!';
$data = "Payment made successfully.";
$fp = fopen('stats.txt', 'a');
fwrite($fp, $data);
}
elseif ($verify == "INVALID") {
echo 'Payment Declined.';
$data = "The payment isn't valid.";
$fp = fopen('stats.txt', 'a');
fwrite($fp, $data);
}
else {
echo 'An unexpected error occured.';
$data = "A timeout error occured.";
$fp = fopen('stats.txt', 'a');
fwrite($fp, $data);
}
// Let PayPal know that the IPN was successful.
header("HTTP/1.1 200 OK");
После оплаты в stats.txt
я получаю следующий текст: Произошла ошибка тайм-аута.Кстати, бит вверху, то, что он делает, это получает данные POST, а затем форматирует их в URL-адрес GET (например:? Value1 = text1 & value2 = text2)Спасибо за вашу помощь!