Подписки через Paypal IPN
-
21-08-2019 - |
Вопрос
Я добавляю подписки на сайт, используя Paypal IPN, который работает очень хорошо, я могу успешно создать новую подписку и проверить ее.Подписка имеет двухнедельную бесплатную пробную версию.К сожалению, руководство было немного расплывчатым относительно статусов подписки.
На данный момент учетная запись пользователя получает статус подписки после получения subscr_signup или subscr_paying и удаляется, когда получено сообщение subscr_cancel или subscr_failed.Я считаю, что это правильно, но лучше убедиться.
И что такое subscr_eot?Руководство IPN описывает его как «подписку на конец срока». Это запускается после окончания пробного периода?
Решение
subscr_eot
отправляется, когда истек последний оплаченный интервал пользователя. subscr_cancel
отправляется, как только пользователь отменяет подписку — например:
Пользователь оформляет подписку в первый день, счет за которую взимается раз в месяц.subscr_signup
отправляется немедленно, subscr_payment
отправляется сразу после прохождения платежа (обычно тоже сразу).
На 13-й день пользователь отменяет подписку. subscr_cancel
отправляется немедленно, хотя технически пользователь оплатил до 30-го дня.Отмена на этом этапе зависит от вас.
На 30 день, subscr_eot
отправлено — пользователь отменил подписку, и это день, до которого был оплачен его последний платеж.
При использовании пробной подписки особых изменений не происходит: если пользователь отменяет ее до истечения срока действия пробной подписки, subscr_cancel
отправляется немедленно и subscr_eot
отправляется в конце судебного разбирательства.
Другие советы
Кроме того, есть одна интересная деталь: как subscr_eot
работает с subscr_failed
.
Это выглядит как subscr_eot
приходит после того, как ФИНАЛ subscr_failed
.Итак, если в вашей учетной записи вы установили автоматическую повторную попытку неудачного платежа 3 раза, то это должно выглядеть следующим образом:
первая неудачная оплата => subscr_failed второй неудачный платеж => subscr_failed третий неудачный платеж => subscr_failed и subscr_eot
так что в основном в вашем коде вы можете установить subscr_failed
чтобы вызвать электронное письмо типа
Привет, пользователь, пожалуйста, рассмотрите возможность, чтобы проверить информацию о платеже, вам может потребоваться обновить дату истечения срока кредитной карты и т. Д.У вас все еще есть доступ, мы попробуем еще раз через несколько дней.
И настройка subscr_eot
чтобы на самом деле отключить подписку и вызвать электронное письмо типа
Извините, мы все еще не получили оплату и сняли ваш профиль.Вы все еще можете переопределить его, входя в систему и обновив информацию о платеже
По сути, это «хороший» способ сделать это, чтобы у клиентов был льготный период, и их учетная запись не была неожиданно отключена только из-за истекшего срока действия кредитной карты или чего-то в этом роде.
Тема, опубликованная Крисом, недавно была обновлена.
Где-то в 2010 году PayPal прекратил использовать subscr_eot, когда пользователь закрыл свою учетную запись.После ряда жалоб они это восстановили, но на это ушло 6 месяцев.Все это означает, что вы снова можете обрабатывать уведомления о подписке, как описано Питером в принятом ответе.
От представителя PayPal:
subscr_cancel означает, что профиль отменено и будущего не будет платежи.Однако, если покупатель имеет уже оплачен текущий биллинг цикл по мере того как они заряжены вверх-фронт, затем вы можете использовать subscr_eot для завершить профиль.
Однако все еще неясно, что произойдет в случае нескольких неудачных попыток оплаты.Документация PayPal на данный момент ужасна.
От аккаунта зависит, новый он или нет. subscr_eot
отправляется, что немного выше моего понимания?
Я еще не нашел подходящего способа управления подписками.Расчет дат на сервере может очень быстро пойти не так, если произойдет задержка платежа.