Подписки с Paypal IPN - PullRequest
       14

Подписки с Paypal IPN

53 голосов
/ 30 июня 2009

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

В данный момент учетная запись пользователя получает статус подписки после получения subscr_signup или subscr_payment и удаляется при получении subscr_cancel или subscr_failed. Я считаю, что это правильно, но лучше убедиться.

И что такое subscr_eot? Руководство IPN описывает его как «окончание срока подписки». Это срабатывает после окончания пробного периода?

Ответы [ 4 ]

78 голосов
/ 28 июля 2009

subscr_eot отправляется по истечении последнего оплаченного интервала пользователя. subscr_cancel отправляется, как только пользователь отменяет подписку - например:

Пользователь подписывается в первый день подписки, которая оплачивается один раз в месяц. subscr_signup отправляется немедленно, subscr_payment отправляется, как только происходит оплата (обычно также сразу).

В день 13 пользователь отменяет. subscr_cancel отправляется немедленно, хотя технически пользователь заплатил до 30-го дня. Отмена на этом этапе зависит от вас.

На 30-й день отправляется subscr_eot - пользователь отменил, и это тот день, когда его последний платеж выплачивался до.

Не так много изменений в пробных подписках - если пользователь отменяет работу до истечения пробной подписки, subscr_cancel отправляется немедленно, а subscr_eot отправляется в конце пробной версии.

35 голосов
/ 29 октября 2009

Также, одна интересная деталь - как subscr_eot работает с subscr_failed.

Похоже, subscr_eot идет после FINAL subscr_failed. Поэтому, если в вашей учетной записи вы настроили автоматическую повторную попытку неудавшихся платежей 3 раза, то это должно выглядеть следующим образом:

первый сбой платежа => subscr_failed второй неудачный платеж => subscr_failed третий неудачный платеж => subscr_failed и subscr_eot

так что в основном в вашем коде вы можете установить subscr_failed для запуска электронной почты, например

привет пользователь, пожалуйста, найдите время, чтобы проверить Ваша платежная информация, вам может понадобиться обновить срок действия кредитной карты дата и т. д. У вас еще есть доступ, мы попробуем еще раз через несколько дней.

И настройку subscr_eot, чтобы фактически отключить их подписку и вызвать электронное письмо типа

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

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

9 голосов
/ 04 мая 2011

Тема, опубликованная Крисом, была недавно обновлена.

В 2010 году PayPal прекратил использование subscr_eot, когда пользователь удалил свою учетную запись. После ряда жалоб они восстановили это, но для этого потребовалось 6 месяцев. Все это означает, что вы снова можете обрабатывать уведомления о подписке, как описано Питером в принятом ответе.

От представителя PayPal:

subscr_cancel означает, что профиль отменен и не будет будущего платежи. Однако, если покупатель уже оплачен за текущий счет цикл, как они заряжены заранее, тогда вы можете использовать subscr_eot для прекратить профиль.

Однако все еще не уверены, что произойдет в случае нескольких неудачных попыток оплаты. Документация PayPal на данный момент ужасна.

4 голосов
/ 12 июля 2010

Это зависит от учетной записи, является ли она новой или нет, будет ли отправлено сообщение subscr_eot, что мне не нравится?

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

...