2009-02-19 2 views
9

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

Сообщение подтверждения IPN имеет имя, адрес электронной почты, идентификатор PayPal, идентификатор повторяющегося платежа, но, похоже, не дает уникальный идентификатор, так как я не знаю, откуда приходит идентификатор Paypal или идентификатор возвращаемого платежа, и это может не быть быть тривиальным, чтобы однозначно сопоставлять имя/адрес электронной почты, которые пользователь имеет в своей учетной записи PayPal (или вводил там), с именем/адресом электронной почты, которое у меня есть для них на моем сайте (может быть много Джона Смита, и человек может выбрать использование другая электронная почта.)

1) Когда я отправляю запрос на первоначальный платеж в Paypal, я могу прикрепить уникальный URL-адрес UUID в URL-адресе, который я прошу отправить мне обратно, поэтому, если я сохраню этот уникальный идентификатор для этого пользователя, я могу сопоставьте это подтверждение платежа с пользователем, который его инициировал. Я делаю это сложнее, чем это? Есть ли более простой способ?

2) Кроме того, для периодической/абонентской платы paypal всегда использует URL-адрес, указанный мной с начальным инициированием платежа? Кто-нибудь имеет практический опыт использования повторяющихся платежей Paypal с IPN, повторно использует ли этот уникальный URL-адрес? Или мне нужно связать идентификаторы Paypal с пользователем после получения первого периодического платежа?

ответ

2

Недавно я также создал несколько повторных платежей с помощью Paypal.

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

Что делает мой скрипт IPN, это генерировать уникальный код активации, привязанный к идентификатору подписки Paypal в таблице Activations, затем он отправляет этот код тому, кто платил за подписку, с инструкциями по активации.

В момент активации вам необходимо зарегистрироваться или войти под своим логином. В этот момент идентификатор пользователя добавляется в соответствующую строку в таблице Activations.

Когда уведомление EndOfTerm IPN входит в скрипт IPN, он просматривает идентификатор пользователя из таблицы Activations на основе идентификатора SubscriberID, указанного в IPN. Затем я могу сделать все, что мне нужно, чтобы этот пользователь отключил их подписку.

Во все времена URL-адрес сценария IPN остается неизменным.

+0

хорошее решение тоже. – Tim

+0

Какие статусные коды txn_type вы реагируете? Мне сложно ответить на этот вопрос. http://stackoverflow.com/questions/13855287/parsing-paypal-subscription-ran-out – Volomike

0

1) Вы можете отправить параметр item_number с начальной настройкой подписки, которая будет передана вам. Я бы предложил внедрить в него идентификационный токен.

2) Если вы имеете в виду параметр «return», нет, это значит, что пользователь должен отправить его по завершении настройки подписки. Обновление является автоматическим и не «ping» на этой странице.

+0

У меня нет голосов, но я думаю, что это правильно. – Tim

3

Прикрепление уникальных данных к платежному запросу в значительной степени является принятым способом его выполнения.

У меня нет опыта с повторяющимися платежами.

+0

У меня нет голосов, иначе я бы +1 – Tim

+0

Знаете ли вы, как распространять некоторые данные вместе с другими данными PayPal, в первоначальном запросе PayPal, сгенерированном одним нажатием кнопки PayPal «Оплатить сейчас»? –

+1

@VladimirDespotovic. Появляется дополнительное поле как в кнопке «Оплатить сейчас», так и в API запросов платежей, где вы можете добавлять пользовательские данные. Эти пользовательские данные отправляются вам в * каждый * ответ, связанный с транзакцией. – greyfade

0

1) Вы хотите использовать параметр item_number. Установите это в своей HTML-форме, показанной клиенту, и оно будет возвращено вам с помощью IP-адреса paypal, поэтому вы можете поместить здесь идентификатор строки базы данных и использовать его для соответствия правильному человеку позже.