Используйте Javascript для отправки формы - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь добавить Google reCAPTCHA в платежную систему своего сайта. Проблема в том, что мне нужно отправить платежный запрос поставщику платежей через форму POST. Итак, мне нужно проверить ответ captcha, но он возвращается на страницу, и мне нужно выяснить, была ли проверка captcha завершена успешно или нет, прежде чем отправлять их моему поставщику платежей (у меня был кто-то, кто спамил систему украденными кредитными картами) .

Итак, я поискал решения в Интернете. Один мне очень понравился из другого вопроса. У человека, спрашивающего, была аналогичная настройка, и ему было рекомендовано создать новую страницу, которая получит проверку Google, и, если капча передана, автоматически заставит форму отправить.

HEre - это код для всей страницы

    <head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"> </script>
</head>
<body >
<?php


     if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])){

        $secret = 'supersecretcode';
        $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
        $responseData = json_decode($verifyResponse);
        if($responseData->success)
        {
            ?>

                <form id="theForm" action="https://www.beanstream.com/scripts/process_transaction.asp" method="post">
                <?php
                    foreach ($_POST as $a => $b) {
                        echo '<input type="hidden" name="'.htmlentities($a).'" value="'.htmlentities($b).'">';
                    }
                ?>
                </form>

                <script type="text/javascript">
                    //alert("send");
                    document.getElementById('theForm').submit();

                </script>
            <?
        }
        else
        {
            echo 'Robot verification failed, please try again.';
        }
   }
?>
</body>

Я пробовал несколько способов принудительной отправки, найденных в различных запросах помощи. Закомментированное предупреждение работает, но не выполняет «отправку».

В чем проблема? Просматривал звонок, должно работать

...