Кнопка 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.