2012-06-28 3 views
11

Я попытался пройти через джунгли (на самом деле, PayPal, почему бы вам не избавиться от него) ... в течение нескольких дней, чтобы найти решение моей довольно простой проблемы.Кнопка PayPal, отправляющая пользовательскую переменную через IPN

У меня есть сайт с подписками на членство. Клиент подписывает свой адрес электронной почты и пароль на моем сайте. Затем они отправляются в PayPal, чтобы оплатить подписку.

Моя проблема заключается в том, как передать ключ - их адрес электронной почты - через всю транзакцию, чтобы я знал, за какой платеж?

Это связано с тем, что они иногда регистрируются с одним электронным письмом и платят другим. И как сделать все это с помощью (безопасной) зашифрованной кнопки.

Что я понял, так это то, что я могу сделать зашифрованную кнопку на PayPal «Создать кнопку оплаты PayPal».

В Шаг 3, Добавить (х-е изд из реального 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, так что я знаю, кто членство для ..

Могу ли я думать, не так ли? Или я должен сделать кнопку с «рукописным» кодом? Или есть лучший способ?

ответ

3

Над образом работает, хотя у меня были некоторые проблемы с PayPal Sandbox не принимает на «Регулярный PayPal» hosted_button_id - то, что было разобрано путем повторного создания hosted_button_id в песочнице.

<input type="hidden" name="hosted_button_id" value="RECREATENEWINPAYPALSANDBOX"> 
12

Существует поле, в котором вы можете использовать форму Paypal, чтобы разместить все, что захотите. Название поданной заявки является «обычай». Поэтому вы можете написать что-то вроде:

<input name="custom" value="blablabla" type="hidden"> 

Я предлагаю кодировать значение пользовательского значения. Например, какой-то base64_encode может быть полезен для того, чтобы оттолкнуть любопытных людей. Тем не менее, есть также хорошее объяснение того, что вы можете сделать с Paypal в руководстве. Этот link и этот one являются выдержкой.

Кроме того, как предложено в комментариях, невозможно использовать переменную сеанса, связанную с вашим интерфейсом, в обратной связи между вашим сайтом и PayPal.

Смежные вопросы