2016-11-11 63 views
0

您好,我使用Braintree在我的应用程序上每月订阅,该程序正常运行。我希望就某些事件的最佳做法提供一些建议,因为任何原因不按时支付款项。红宝石在轨道上。月度订阅最佳做法

我目前有一个User模型与subscribed:booleansubscribeddate:datesubscribedend:date

当用户通过braintree完成支付时,属性将更新为subscribed:truesubscribeddate:Date.todaysubscribedend:Sometime_way_in_the_future

当用户取消订阅,属性也得到更新,subscribed:falsesubscribedend:(a braintree attribute, billing_due_date)

这样我可以根据日期和订阅状态筛选我的应用程序的东西。我可以看到的唯一问题是Braintree试图在一个月内收取账户但失败。 Braintree有一个属性(.days_past_due),但我的应用程序无法知道这是否已经发生。

这是什么最佳实践?我应该每天执行计划任务来检查每个用户是否具有Braintree服务器上.days_past_due属性的值?如果我有很多用户,这会不会非常慢? 我可能会谈论这一切都是错误的,我只是想就此问题提出一些建议, 谢谢。

回答

0

完全披露:我在布伦特里工作。如果您有任何其他问题,请随时联系[email protected]

最好的办法就是实施Braintree的经常性计费webhooksWebhooks send you a notification通过HTTP POST发生的事件发生时,可能并未直接由API调用触发 - 例如客户通过其订阅收取费用,订阅取消或订阅逾期。这将允许您直接响应订阅事件,而无需执行每日检查以查看是否发生了任何更改。

要使用webhook,您需要选择要接收webhooks的事件,在您的服务器上指定我们将发送通知的端点,并使用代码将该webhook通知解析为可用的代码形成。有关详细信息,请参阅此guide的说明。

+0

发布后发现有关webhooks。我现在已经实施了它们。谢谢。 –