Кнопка PayPal, отправляющая пользовательскую переменную через IPN
Я попытался пройти через джунгли (на самом деле, PayPal, почему бы вам не избавиться от него...) в течение нескольких дней, чтобы найти решение моей довольно простой проблемы.
У меня есть сайт с подписками на членство.
Клиент подписывает свой адрес электронной почты и пароль на моем сайте.
Затем они отправляются в PayPal для оплаты своей подписки.
Моя проблема заключается в том, как передать ключ - их адрес электронной почты - через всю транзакцию, чтобы я знал, для кого предназначен платеж?
Это потому, что это может случиться, что они иногда подписываются с одним электронным письмом и платят другим.
И как сделать все это с помощью (безопасной) зашифрованной кнопки.
Я понял, что я могу зашифровать кнопку на странице PayPal " Создать платежную кнопку PayPal.
В Шаг 3, добавьте расширенные переменные Add (x-ed out real url):
notify_url=http://xxxxxxxxxx.com/xxxxx.php
test_ipn=1
Получить код:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="N6UMVCMXSWMYG">
<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>
и вставьте данный код на мою страницу php, но добавьте скрытое поле с именем " custom" и отправьте его по электронной почте и измените действие формы, чтобы перейти к песочнице.
Пример:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="custom" value="<?=$signUpEmail ?>">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="N6UMVCMXSWMYG">
<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>
Эта настраиваемая переменная, которую я могу позже получить на моей странице ipn, чтобы я знал, для кого это членство.
Я правильно думаю?
Или я должен сделать кнопку с "рукописным" кодом?
Или есть лучший способ?
Ответы
Ответ 1
Выше работает, хотя у меня возникли проблемы с Sandbox в PayPal, не принимающим "Регулярный PayPal" размещенный_button_id - что-то, что было решено, заново создав host_button_id в Песочнице.
<input type="hidden" name="hosted_button_id" value="RECREATENEWINPAYPALSANDBOX">
Ответ 2
В форме Paypal есть поле, в котором вы можете использовать все, что хотите.
Имя поданной является "обычай". Поэтому вы можете написать что-то вроде:
<input name="custom" value="blablabla" type="hidden">
Я предлагаю кодировать значение пользовательского значения. Например, какой-то base64_encode может быть полезен для того, чтобы оттолкнуть любопытных людей.
Тем не менее, есть также хорошее объяснение того, что вы можете сделать с Paypal в руководстве.
Эта ссылка и
один являются выдержкой.
Кроме того, как указано в комментариях, невозможно использовать переменную сеанса, связанную с вашим интерфейсом, в обратной связи между вашим сайтом и paypal.