PayPal IPN в PHP не может отправить запрос в IPNPB - PullRequest
0 голосов
/ 23 января 2019

У меня здесь есть сценарий PayPal IPN, но проблема в том, что он правильно получает запрос POST, но когда он пытается отправить запрос CURL в PayPal, кажется, что PayPal не дает никакого ответа (даже * 1001)* или что-нибудь еще!)

Вот мой код:

<?php
    // Format POST values
    foreach($_POST as $name => $value) {
        $data .= $name.'='.$value.'&';
    }
    $data = substr_replace($data, NULL, -1);
    $data = urlencode($data);


    // THE PROBLEM COMES HERE, I TRY TO MAKE A CURL REQUEST TO PAYPAL BUT NO RESPONSE RETURNED
    $ch = curl_init('https://sandbox.ipnpb.paypal.com/cgi-bin/webscr');
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));

    $res = curl_exec($ch);
    $res = curl_close($ch);

    file_put_contents('result.txt',$res);
    // There is nothing in my result.txt file for $res , but $data returns the POST data PayPal gave me
?>

Спасибо заранее за вашу помощь!

1 Ответ

0 голосов
/ 23 января 2019

Возможное решение изменено. Войдите в учетную запись Paypal и настройте IPN

. Для этого выполните следующие действия:

  1. Профиль шагов -> Профиль и настройки ->Мои инструменты продаж -> Мгновенные платежные уведомления -> обновить

  2. Нажмите «Выбрать настройки IPN»

  3. Установите в поле «URL-адрес уведомления» то, что у вас есть на«notify_url» в HTML-форме.
  4. Выберите «Получить сообщения IPN»
  5. Сохранить

Примечание. Если вы проверите историю IPN, она может появиться в очереди,Похоже, это глюк Sandbox или, возможно, он обрабатывает много запросов и имеет длинную очередь.Вы можете попробовать оплату в реальном времени с небольшим значением (например, 1 доллар).Смотрите здесь: Paypal IPN Status - в очереди

...