Привет, у меня есть ежемесячная подписка на мое приложение с использованием Braintree, который работает нормально. Я хотел бы получить рекомендации относительно наилучшей практики для случая, когда платежи не принимаются вовремя по любой причине.Рубин на рельсах. Рекомендации по ежемесячной подписке
В настоящее время у меня есть модель User
с subscribed:boolean
subscribeddate:date
и subscribedend:date
.
Когда пользователь завершает платеж через braintree, атрибуты обновляются до subscribed:true
subscribeddate:Date.today
и subscribedend:Sometime_way_in_the_future
.
Когда пользователь отменяет подписку, атрибуты обновляются тоже subscribed:false
и subscribedend:(a braintree attribute, billing_due_date)
Таким образом, я могу фильтровать вещи в моем приложении в соответствии с датами и статуса подписки. Единственная проблема, которую я вижу в этом, заключается в том, что Braintree пытается взимать счет за один месяц, но терпит неудачу. У Braintree есть атрибут для этого (.days_past_due
), но у моего приложения нет способа узнать, произошло это или нет.
Каковы наилучшие методы для этого? Должен ли я выполнять запланированную задачу каждый день, чтобы проверить, имеет ли каждый пользователь значение для атрибута .days_past_due
на сервере Braintree? Не будет ли это невероятно медленным, если у меня будет много пользователей? Возможно, я ошибаюсь, и мне бы хотелось немного посоветоваться по этому поводу, Спасибо.
Обнаружено о веб-камерах после публикации этого. Теперь я их реализовал. Благодарю. –