Получение пользовательского ввода с целью кодирования в пользовательскую переменную Paypal - PullRequest
0 голосов
/ 09 июля 2020

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

<?php
    $firstName = "Lucas";
    $lastName = "Harvmaster";
    $email = "shrike321@hotmail.com";
    $companyName = "Matchbox";
    $password = "123Cupcakes";
    $arr = array('firstName' => $firstName, 'lastName' => $lastName, 'email' => $email, 'companyName' => $companyName, 'password' => $password);
    $data = json_encode($arr);
?>

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
    <input name="custom" type="hidden" value='<?php echo $data ?>'>
    <input type="hidden" name="cmd" value="_s-xclick">
    <input type="hidden" name="hosted_button_id" value="89924XE27QRNY">
    <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
    <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

Это работает, но у меня возникает проблема. Как мне go установить переменные php динамически на основе того, что пользователь вводит в форму, а не просто их жестко кодировать? Похоже, что на самом деле нет никакого способа запечь эту функциональность в форме PayPal, потому что мне нужно собрать данные от пользователя, затем скомпилировать их вместе, чем передать их в PayPal, что, похоже, мне нужно две формы, чтобы я мог делать что-то с переменными в середине. Мне интересно, просто создать какую-то страницу подтверждения, чтобы я мог также передавать поля формы и размещать кнопку PayPal на этой странице? Но я подозреваю, что могут быть другие способы решения проблемы, которые ни я, ни мой гугл-фу не откопали. Заранее спасибо :)

Изменить: вот что я пытаюсь сделать с Javascript. Я невероятно новичок в Javascript, и код говорит мне, что у меня нет разрешения на доступ к PayPal, когда я его запускаю. Вероятно, у меня было много ошибок, очевидно, что я не знаком с Javascript :)

First name: <input type="text" name="firstName" id="firstName">
Last name: <input type="text" name="lastName" id="lastName">
Email: <input type="text" name="email" id="email">
Company name: <input type="text" name="companyName" id="companyName">
Password: <input type="text" name="password" id="password">

<script>
    var firstName = document.getElementsByName("firstName")[0].value;
    var lastName = document.getElementsByName("lastName")[0].value;
    var email = document.getElementsByName("email")[0].value;
    var companyName = document.getElementsByName("companyName")[0].value;
    var password = document.getElementsByName("password")[0].value;
    var output = JSON.stringify(firstName, lastName, email, companyName, password);
</script>

<input name="custom" type="hidden" value='<script>output</script>'>

1 Ответ

0 голосов
/ 09 июля 2020

Есть как минимум 10 различных способов сделать это, включая использование javascript на стороне клиента вместо PHP для кодирования значения custom, чтобы все это могло произойти на стороне клиента за один вместо двухэтапного процесса.

А использование умной кнопки обеспечит гораздо лучший опыт, чем старые устаревшие кнопки, которые перенаправляют с вашего сайта.

Насколько комплексное решение вы выберете, будет зависеть от ваших потребностей. Трудно go вдаваться в какую-либо конкретную деталь, не зная больше ничего о потребностях вашего решения (вещи, не обсуждаемые в вашем вопросе), поскольку существует как минимум 10 различных способов решения этой проблемы.

Но что ж, для чего-то особенного эквивалент JavaScript для выполнения всего вышеперечисленного на стороне клиента: JSON.stringify()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...