Как обработать редирект при отправке данных формы через cURL?

Приветствую коллеги!

Есть форма с автоматической отправкой:
echo '<html><body>';
    echo '<center><form name="form" method="POST" action="https://paysite.ru/quickpay/confirm.xml">'
    . '<input type="hidden" name="receiver" value="123123123">'
    . '<input type="hidden" name="formcomment" value="Донат проекта">'
    . '<input type="hidden" name="short-dest" value="Донат проекта">'
    . '<input type="hidden" name="label" value="' . $ID . '">' //ID для обработки уведомления об оплате
    . '<input type="hidden" name="quickpay-form" value="donate">'
    . '<input type="hidden" name="targets" value="Добровольный взнос для поддержки проекта">'
    . '<input type="hidden" name="sum" value="1" data-type="number">'
    . '<input type="hidden" name="comment" value="Хотелось бы получить демонстрационный доступ.">'
    . '<input type="hidden" name="need-fio" value="false">'
    . '<input type="hidden" name="need-email" value="false">'
    . '<input type="hidden" name="need-phone" value="false">'
    . '<input type="hidden" name="need-address" value="false">'
    . '<div id="parent">'
    . '<input type="image" name="paymentType" value="AC" src="/donate.png" width="500" alt="Нажми для оплаты">'
    . '</div><br>'
    . '</form></center>';
    echo "<script>document.getElementsByTagName('form')[0].submit();</script>"; //Отправляем форму в автомате
    echo '</body></html>';


Решил переделать это с помощью cURL без подобных станиц заглушек:
$target_url = "https://paysite.ru/quickpay/confirm.xml";
$postfields = [
    receiver => '123123123',
    formcomment => 'Донат проекта',
    short-dest => 'Донат проекта',
    label => 'AKDHFAKJH3KHJ', //Для примера
    quickpay-form => 'donate',
    targets => 'Добровольный взнос для поддержки проекта',
    sum => 1,
    comment => 'Хотелось бы получить демонстрационный доступ',
    need-fio => 'false',
    need-email => 'false',
    need-phone => 'false',
    need-address => 'false',
    paymentType => 'AC'
];

$curl = send_cURL($target_url, $postfields); 

function send_cURL($url, $postfields = FALSE) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    if ($postfields) {
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
    }
    $result = curl_exec($curl);
    curl_close($curl);
    $result = json_decode($result, TRUE);
    return $result;
}


Страница https://paysite.ru/quickpay/confirm.xml после загрузки редиректит на https://paysite.ru/transfer/quickpay?requestId=343......

Как мне это обработать при вызове через cURL?
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
https://www.php.net/manual/ru/function.curl-setopt.php

Параметр CURLOPT_FOLLOWLOCATION
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы