PHP POST на URL с перенаправлением пользователя - PullRequest
0 голосов
/ 15 сентября 2011

Итак, я делаю заказ на моем сайте. Я использую PayPal в качестве платежной системы, но перед тем, как переводить клиентов в PayPal, я получаю их данные. Для этого я отправляю POST из index.php в index.php, запускаю свой код, чтобы получить информацию POSTed и сохранить ее в базе данных, а теперь хочу перенаправить клиента в PayPal.

К сожалению, вы должны отправить все данные корзины в PayPal:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">

Единственный способ, который я вижу в этом, - это опубликовать в index.php, собрать данные пользователя, а затем отобразить кнопку с надписью «Нажмите здесь, чтобы оплатить через PayPal». Это еще один дополнительный шаг, которого я хочу избежать.

Есть ли способ отправить POST на index.php, собрать данные, а затем опубликовать информацию о PayPal на веб-сайте PayPal? Или какие-нибудь другие идеи?

Спасибо

Ответы [ 3 ]

2 голосов
/ 15 сентября 2011

вам понадобятся 2 формы на вашей странице, одна форма, которая отправляет обратно в index.php, и вторая форма, которая отправляет в paypal

после того, как первая форма отправляется обратно в index.php, echo javascript втег body для отправки формы PayPal при загрузке

    <?php
   if(isset($_POST['mydatafield'])){

        do database stuff

        $LOAD = 'document.paypal.submit();';
    }
    ?>
    <body onload="<?php echo $LOAD ?>">
    <form name="paypal" action="paypal.com?yadayada">
    paypal fields
    </form>
    <form name="myform" action="index.php">
    your form stuff
    submit button
    </form>
0 голосов
/ 15 сентября 2011

Вы не нуждаетесь в re -постите свою форму от клиента в смысле, упомянутом в других ответах. Вместо этого вы можете использовать cURL до POST данные для PayPal и сделать их все прозрачными для пользователя. Вроде как пересылка выложенной формы. Вы воздействуете на данные (сохраняете их, манипулируете ими и т. Д.) И пересылаете сообщение в Paypal все за одну транзакцию пользователя.

Вот простой пример: http://davidwalsh.name/execute-http-post-php-curl

0 голосов
/ 15 сентября 2011

Вы можете запретить отправку программно с помощью JavaScript, например:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="paypal_form">
...
<script type="text/javascript">
function submitPay(){
  document.getElementById("paypal_form").submit();
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...