Рубин на рельсах. Ежемесячная подписка лучшие практики
Здравствуйте, у меня есть ежемесячная подписка на мое приложение с помощью 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)
Таким образом, я могу фильтровать вещи в своем приложении по датам и статусу подписки. Единственная проблема, с которой я могу столкнуться, это то, что Брэйнтри пытается снять деньги с аккаунта один месяц, но не удается. Брейнтри имеет атрибут для этого (.days_past_due
), но мое приложение не может узнать, произошло это или нет.
Каковы лучшие практики для этого? Должен ли я выполнять запланированное задание каждый день, чтобы проверить, есть ли у каждого пользователя значение для .days_past_due
атрибут на сервере Брейнтри? Разве это не будет невероятно медленно, если у меня много пользователей? Возможно, я все об этом ошибаюсь, и я просто хотел бы дать несколько советов по этому вопросу, спасибо.
1 ответ
Полное раскрытие: я работаю в Braintree. Если у вас есть какие-либо дополнительные вопросы, не стесняйтесь обращаться по адресу support@braintreepayments.com.
Ваша лучшая ставка будет состоять в том, чтобы реализовать повторяющиеся платежные веб-уроки Брэйнтри. Webhooks отправляет вам уведомление через HTTP POST всякий раз, когда происходит событие, которое, возможно, не было вызвано прямым вызовом API, например, когда клиент платит за подписку, подписка отменяется или подписка просрочена. Это позволит вам напрямую реагировать на события подписки, не выполняя ежедневные проверки, чтобы увидеть, произошли ли какие-либо изменения.
Чтобы использовать веб-хуки, вам нужно выбрать, для каких событий вы хотите получать веб-хуки, назначить конечную точку на вашем сервере, куда мы будем отправлять уведомления, и настроить эту конечную точку с кодом для анализа уведомления о веб-крюках в пригодной для использования форме. Подробнее см. В этом руководстве с инструкциями.