2016-11-11 4 views
0

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

В настоящее время у меня есть модель User с subscribed:booleansubscribeddate:date и subscribedend:date.

Когда пользователь завершает платеж через braintree, атрибуты обновляются до subscribed:truesubscribeddate: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? Не будет ли это невероятно медленным, если у меня будет много пользователей? Возможно, я ошибаюсь, и мне бы хотелось немного посоветоваться по этому поводу, Спасибо.

ответ

0

Полное раскрытие информации: Я работаю в Braintree. Если у вас есть дополнительные вопросы, не стесняйтесь обращаться на [email protected]

Ваш лучший выбор - осуществить повторное выставление счетов Braintree webhooks. Webhooks send you a notification через HTTP POST всякий раз, когда происходит событие, которое, возможно, не было напрямую вызвано вызовом API, например, заказчиком, получающим оплату через их подписку, отмену подписки или просрочку подписки. Это позволит вам напрямую отвечать на события подписки, не выполняя ежедневные проверки, чтобы увидеть, произошли ли какие-либо изменения.

Чтобы использовать веб-узлы, вам необходимо выбрать, какие события вы хотите получать, а также указать конечную точку на вашем сервере, на которой мы отправим уведомления, и настройте эту конечную точку с кодом для разбора уведомления веб-хоста в пригодный для использования форма. Для получения дополнительной информации см. Инструкцию guide.

+0

Обнаружено о веб-камерах после публикации этого. Теперь я их реализовал. Благодарю. –

Смежные вопросы