【问题标题】:Rails - implementing subscriptions with StripeRails - 使用 Stripe 实现订阅
【发布时间】:2014-09-03 14:33:49
【问题描述】:

我即将使用 Stripe 实现订阅计费,订阅的运作方式是怎样的一种思考方式。

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

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

【问题讨论】:

    标签: ruby-on-rails ruby stripe-payments subscription


    【解决方案1】:

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

    这肯定会使某些客户端请求花费更长的时间,但在您更好地了解您的应用需要做什么才能获得最佳用户体验时,可以让您停下来。

    然后你应该看看一个缓存策略,它可以从 Stripe 抢先获取你需要的信息。

    【讨论】:

    • 但这让我想到了定期付款——我将订阅频率设置为一个月。这意味着每个月 Stripe 系统都会自动从客户的信用卡中扣款——但是当这种情况发生时,Stripe 会通知我吗?我需要将有关每月费用的信息保存到我的 Rails 应用程序的数据库中,这样我就可以在客户付款时向他们展示一些扩展功能。
    • 当事情发生时,您可以通过 events API 让 Stripe 通知您的应用。因此,当您收到 Stripe 的通知时,也许您可​​以在本地保存费用信息。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-10
      • 2016-10-18
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 2017-07-03
      相关资源
      最近更新 更多