Скрипт членства PHP + IPN PayPal, какую информацию я запрашиваю и сравниваю с ней?


Итак, у меня есть продукт. Для того чтобы пользователи могли его купить, им необходимо создать учетную запись. Эта учетная запись позже будет использована для доступа к моему продукту.

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

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

Короче говоря: Как мне обновлять учетную запись клиентов всякий раз, когда я получаю уведомление (установите для активного поля в базе данных значение TRUE или что-то), и с помощью какой информации я проверяю/подтверждаю?

Если мой вопрос недостаточно ясен, пожалуйста, не стесняйтесь, дайте мне знать. :)

Author: Jeff, 2011-06-05

1 answers

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

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

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

РЕДАКТИРОВАТЬ: Гораздо более подробная информация о прохождении информация для PayPal:

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

  1. Поля, которые применяются ко всей транзакции. См. Таблицу 4 в этом документе: https://www.x.com/docs/DOC-1332#id08A6HH0D0TA
  2. Поля, которые применяются к отдельному элементу. См. Таблицу 5 в том же документ.

Не вся эта информация передается вам обратно в IPN. Чтобы увидеть, что передается вам в IPN, посмотрите раздел "Пример сообщения IPN" здесь: https://cms.paypal.com/cgi-bin/marketingweb?cmd=_render-content&content_ID=developer/e_howto_admin_IPNIntro.

Вам нужна информация, которую а) вы передаете PayPal для уникальной идентификации пользователя и б) PayPal возвращает вам в IPN.

Я предлагаю вам использовать переменная, называемая для этой цели "пользовательской". (См. Таблицу 4: Переменные HTML для платежных транзакций.)

Что именно вы передаете в "пользовательской" переменной, зависит от вас. Вы можете отправить а) идентификатор пользователя в вашей таблице пользователей, б) его зарегистрированный адрес электронной почты на вашем сайте, в) некоторый хэш одного из них... на самом деле это не имеет значения, если он однозначно идентифицирует пользователя, так что, когда вы получите IP-адрес обратно, вы сможете сказать: "Я знаю, что этот платеж предназначен для пользователя X".

 5
Author: cailinanne, 2011-06-05 01:54:20