Paypal + PHP: как получить ценность при успешной продаже - PullRequest
0 голосов
/ 08 февраля 2010

У меня есть кнопка PayPal на моем сайте в форме. Форма имеет дополнительный ввод с именем ID, где пользователь должен ввести определенное значение.

После завершения продажи Paypal возвращает пользователя на domain.com/credits?done

.

Как я могу получить исходное значение ID, введенное пользователем в / credits? Готово? нужно, чтобы он автоматически изменил свою запись в базе данных.

Спасибо.

Ответы [ 3 ]

1 голос
/ 11 февраля 2010

Если идентификатор, на который вы ссылаетесь, является уникальной ссылкой, которую вы используете, то передайте ее между Paypal и вашим сайтом, используя элемент item_number.

Установите идентификатор в HTML-форме, которую вы показываете своему клиенту, и обратите внимание, что вы также можете указать 3 URL:

<input type="hidden" name="item_name" value="Box of stuff"></input>
<input type="hidden" name="item_number" value="12345"></input>
<input type="hidden" name="return" value="http://www.blah.com/paypal_thanks.asp"></input>
<input type="hidden" name="notify_url" value="http://www.blah.com/paypal_callback.asp"></input>
<input type="hidden" name="cancel_return" value="http://www.blah.com/paypal_cancel.asp"></input>

Там, где я использовал «paypal_callback.asp» выше, это переопределяет IPN-ссылку, которую вы можете установить при входе в Paypal и редактировании своих настроек. Так что это значение не является обязательным.

Scrpt paypal_callback.asp (при условии, что написано в ASP) может просто сказать:

iAdvertId = Request.Form("item_number")

Обратите внимание, что эта страница не показана пользователю! За кулисами попадают серверы Paypals. Раздражает то, что paypal_callback.asp не будет немедленно вызван Paypal. Это может произойти через 3 дня ... или месяц спустя, они могут отозвать платеж.

Клиент будет перенаправлен либо на paypal_thanks.asp, либо на paypal_cancel.asp в моем примере. На эти страницы не будет передана форма или строка запроса, поэтому единственный способ получить номер, который вы помещаете в item_number, - это также сохранить его в файле cookie, ДО того как пользователь отправит форму для покупки.

Когда вы получаете электронное письмо от Paypal, item_number будет упомянуто в теме письма и в теле письма (в конце строки описания).

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

1 голос
/ 13 февраля 2010

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

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

Чтобы упростить интеграцию, вы можете рассмотреть возможность использования Мика Каррика Paypal IPN Class . По сути, это тот же код, что и в PayPal, но он заключен в класс, так что вы можете просто использовать его на своей странице.

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