Мой скрипт PHP IPN не работает - что вызывает его сбой? - PullRequest
0 голосов
/ 16 ноября 2018

Привет, сообщество 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)Спасибо за вашу помощь!

...