Как передать $_POST со страницы перенаправления

У меня есть форма, которая содержит информацию, которую пользователь заполняет о классе, и включает информацию об оплате, которая перенаправляется на ссылку PayPal Payflow. Перед тем, как добавить ссылку на payflow, я размещал информацию о форме на той же странице и отправлял информацию о классе на адрес электронной почты. Теперь при действии формы, установленной на ссылку payflow, информация о классе не отправляется мне по электронной почте, но информация об оплате передается на ссылку payflow.

Я думал, может быть, страница перенаправления будет работать с помощью <meta http-equiv="refresh" content="0; url=https://payflowlink.paypal.com">, но $_POST не передается на ссылку payflow. Как я могу получить информацию $_POST, переданную со страницы перенаправления на страницу payflowlink?

Прямо сейчас у меня есть страница формы, на которой информация размещается на странице перенаправления, страница перенаправления отправляет эту информацию по электронной почте, но $POST не передается в ссылку payflow. Страница payflowlink размещается в PayPal.

<!DOCTYPE html>
<html lang="en">

<head>
  <title>Registration</title>
  <meta http-equiv="refresh" content="0; url=https://payflowlink.paypal.com">

</head>

<body>
  <?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);

if ($_SERVER["REQUEST_METHOD"] == "POST") {

  if (isset($_POST["name"])) {
    $name = $_POST['name'];
    $EmailBody = "Parent's Name: ".$_POST["name"]."<br>";
  }

    $subject = "Registration";
    SendMail($email, $EmailBody, $subject);
    echo ($EmailBody);
}

?>

    <main id="main">
      <h1>Registration Form</h1>

      <p><a href="https://payflowlink.paypal.com">Click this link if you are not redirected</a></p>

    </main>

  </body>

</html>

2 ответа

Вы должны быть осторожны с платежными шлюзами. Вы не должны позволять пользователям публиковать конфиденциальные данные, такие как номера кредитных карт, непосредственно через ваш сервер. Вам нужно передать информацию непосредственно на шлюз, который будет выполнять обработку, затем перенаправить обратно на ваш сайт и передать по безопасному токену.

https://developer.paypal.com/docs/classic/payflow/integration-guide

Однако вы можете отправить электронное письмо, когда впервые запросите безопасный токен у шлюза. Вы также можете прикрепить событие onclick button к кнопке, которую пользователь нажимает, чтобы перенаправить с Ajax-запросом на сервер для отправки электронной почты, а затем при получении ответа от сервера перенаправить пользователя.

  <?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);

if ($_SERVER["REQUEST_METHOD"] == "POST") {

  if (isset($_POST["name"])) {
    $name = $_POST['name'];
    $EmailBody = "Parent's Name: ".$_POST["name"]."<br>";

    $subject = "Registration";
    SendMail($email, $EmailBody, $subject);
    //echo ($EmailBody);

    /* PAYPAL implementation here, instead header(); */
    header('Location: https://payflowlink.paypal.com');
  }


}

?>


<!DOCTYPE html>
<html lang="en">

<head>
  <title>Registration</title>

</head>

<body>

<main id="main">
  <h1>Registration Form</h1>

  <p><a href="https://payflowlink.paypal.com">Click this link if you are not redirected</a></p>

</main>

  </body>

</html>

Одна вещь, вы не можете повторить, перед перенаправлением. Но вы уже получаете $Emailbody как электронное письмо.

ОБНОВИТЬ

Чтобы передать информацию $_POST на страницу payflowlink, вы должны следовать соответствующему документу API.

Пример выше только для основного перенаправления.

Другие вопросы по тегам