Ruby on rails Rails-使用条带实现订阅

Ruby on rails Rails-使用条带实现订阅,ruby-on-rails,ruby,stripe-payments,subscription,Ruby On Rails,Ruby,Stripe Payments,Subscription,我即将使用Stripe实现订阅计费,我认为订阅是如何运作的 我知道我可以在Stripe的仪表板中指定所有可能的订阅计划。在我的应用程序中,当我发送条带请求时,条带将根据计划的参数“id”识别订阅计划的类型。这很清楚 但是-有没有办法将Stripe的仪表板中创建的所有订阅计划加载到我的Rails应用程序中,或者我需要先在Stripe的仪表板中创建所有订阅计划,然后在Rails表中创建一个数据库表,在该表中我将存储有关订阅计划的所有信息(因此这将是一种数据复制的事情)?根据我使用Stripe的经验,

我即将使用Stripe实现订阅计费,我认为订阅是如何运作的

我知道我可以在Stripe的仪表板中指定所有可能的订阅计划。在我的应用程序中,当我发送条带请求时,条带将根据计划的参数“id”识别订阅计划的类型。这很清楚


但是-有没有办法将Stripe的仪表板中创建的所有订阅计划加载到我的Rails应用程序中,或者我需要先在Stripe的仪表板中创建所有订阅计划,然后在Rails表中创建一个数据库表,在该表中我将存储有关订阅计划的所有信息(因此这将是一种数据复制的事情)?

根据我使用Stripe的经验,我喜欢限制我必须存储在Rails端的东西的数量。很多时候,我认为您只需在数据库中与每个用户一起记录一个条带客户ID即可。然后通过Stripe直接获取您需要的任何信息

这肯定会使一些客户端请求花费更长的时间,但会让你在更好地了解应用程序需要做什么才能获得最佳用户体验的同时拖延时间


然后,稍后您应该研究一种缓存策略,它可以抢先从条带中获取所需的信息。

一些重复操作可能会使典型的查询和操作更容易。在Rails方面,有些东西你永远都不想拥有(比如信用卡号码)。另一方面,订阅信息(如计划名称和可能的试用期)在本地很方便,因为您可能会经常显示/查看这些信息(“嗨,Martin,您的企业计划试用期还剩5天”)


如果/当您开始进行复制时,我仍然建议您将Stripe保留为关系中的“主”
,即将信息发送到Stripe,如果成功,则将其存储在本地。这应该可以避免最大的复制问题——两个系统之间不同步

但这让我想到了定期付款——我设置了一个月的订阅频率。这意味着每个月Stripe系统都会自动向客户的信用卡收费——但Stripe会在发生这种情况时通知我吗?我需要将月费信息保存到我的Rails应用程序的数据库中,这样,在客户付款时,我可以向他们显示一些扩展功能。当发生事情时,你可以通过。因此,当您收到Stripe的通知时,您可以将费用信息保存在本地。