Stripe 定期/订阅计费最佳设计/实践?

Posted

技术标签:

【中文标题】Stripe 定期/订阅计费最佳设计/实践?【英文标题】:Stripe recurring/subscription billing best design/practices? 【发布时间】:2012-05-04 17:24:42 【问题描述】:

我打算将我的第一个网站与 Stripe 放在一起,但我觉得我可以设计出比我更好的 Stripe 集成。我遇到的主要问题是,我如何维护条带帐户的状态(试用和过期等)什么是重要的 webhook(以及处理所有事件的最佳方法),以及我应该有多少数据在我的数据库中复制,我应该从 Stripe 数据库中提取多少。

很想就什么是最好的提出一些想法。 作为参考,我在 Ruby on rails 中开发了我的网站,部署到 heroku,使用 send grid heroku add on 发送有关账单、逾期付款等的电子邮件通知。

对于那些在 RoR 上使用 Stripe 的人来说,这里有一些我用过的好资源(虽然我还没有找到真正涵盖使用 Stripe 进行定期/订阅计费的资源):

RailsCast:

http://railscasts.com/episodes/288-billing-with-stripe

当然还有条带文档和api:

https://stripe.com/docs https://stripe.com/docs/api

webhook/mailing 的一小段代码

https://github.com/boucher/stripe-webhook-mailer/blob/master/mailer.rb

【问题讨论】:

【参考方案1】:

关于重复 - 我选择仅将 CustomerKey 存储在本地用户记录中。其他一切,发票,交易等都存储在 Stripe 中。 IMO 最好不要尝试在两个系统之间保持奇偶性 - 最好的情况是您将拥有重复的数据,最坏的情况是由于不同步而导致各种令人头疼的问题......

【讨论】:

嗯,我试图不保持奇偶校验,但我想使用帐户的状态来显示页面加载时的错误消息,但是调用条带需要很长时间才能获得状态,因此页面加载花了很长时间... 缓存 Stripe 调用怎么样?页面加载问题只会在第一次执行 API 调用时发生。后续调用从缓存中拉出 @ChristianFazzini 我知道这已经有几年了,但我假设您正在谈论 Stripe.js 用于这些调用和缓存,或者是否有某种可以使用的服务器端缓存?【参考方案2】:

SaaS Rails Kit(我创建的)与 stripe 集成,只需将卡信息与 stripe 一起存储(不设置定期收费),取回令牌,然后在人们的帐户到来时通过每日 cron 作业对令牌计费到期的。

这种方法的一些好处包括不必担心 webhook / 保持两个系统同步,并且除了每月固定费用之外还能够进行计量计费。

【讨论】:

很有趣,所以你基本上手动处理所有事情 当 Stripe 已经具备定期/订阅计费功能时,为什么还要设置 cron 作业来处理这个问题? 我在谷歌上搜索了 2 小时后的解决方案。我发现的每个资源都有你的评论。 我只是想指出,我认为这个答案不应该被否决。在 Stripe 中,如果您需要创建 Stripe 不提供的 Layaway 付款,您必须使用这种方法。我知道是因为我这样做了,并且已经与条纹员工讨论了我实施它的选择。 @JM4 计算金额怎么样,例如一个 saas 平台,根据他选择的月度计划(预付费)根据用户使用情况计费。在这种情况下我们不能使用定期/订阅计费,对于这种情况,有没有比 cron 更好的解决方案?

以上是关于Stripe 定期/订阅计费最佳设计/实践?的主要内容,如果未能解决你的问题,请参考以下文章

Paypal、定期计费和 ActiveMerchant

授权定期计费订阅

使用 Recurly 快速测试定期/订阅计费

Authorize.Net 查询定期计费

使用 PayPal 订阅按钮,除非取消,否则定期计费是不是会无限期继续?

使用贝宝定期计费提供免费订阅时间(非试用)