使用第三方计费/订阅系统(ChargeBee)的 SaaS 应用程序设计

问题描述 投票:0回答:3

我构建了一个 SaaS 解决方案,目前可以免费使用。我刚刚开始为用户提供按月或按年升级和付费的能力。

我想卸下所有“困难”的事情,这样我就可以专注于打造一个好的产品。我所说的“困难”是指支付处理、后端管理功能、计费分析、PCI 合规性等。

我使用 ChargeBee 并以 Stripe 作为网关。

但是,我不确定如何构建应用程序。我是一名全栈开发人员,但我知道我的架构知识是有限的,我不想通过构建一个糟糕的解决方案来把自己逼到绝境。

注册过程将是这样的:

  1. [我的应用程序]用户输入他们的电子邮件、密码,并选择他们想要的计划
  2. [托管在 ChargeBee 上]用户被重定向到托管的 ChargeBee 支付页面并输入其账单详细信息
  3. [我的应用程序]用户被重定向回我的应用程序,响应中包含订阅/用户数据

现在我的主要问题是:

  • 我应该在两个应用程序(我自己的应用程序和 ChargeBee)中存储和依赖哪些数据?
  • 我如何知道在我的域中为用户提供什么访问级别 - 我是否在中间件中 ping ChargeBee 以了解用户使用的计划,或者该数据也应该保存在我自己的应用程序中ChargeBee 中的 AS(例如双重会计?)

我没有发现始终通过 ping ChargeBee 返回订阅信息有问题,但话又说回来,这是“正确”的做法吗?如果是这样,我应该在用户登录时缓存 ChargeBee 信息吗?

谢谢, 乔

saas application-design chargebee
3个回答
0
投票

我没有发现始终通过 ping ChargeBee 返回订阅信息有问题,但话又说回来,这是“正确”的做法吗?如果是这样,我应该在用户登录时缓存 ChargeBee 信息吗?

我认为这里没有正确的答案。但请注意,Chargebee 每分钟有 150 次 API 调用限制。缓存可能是错误的来源,因此如果您可以选择的话,我更愿意直接查询 Chargebee。


0
投票

首先,请注意,我创立了 Cheddar,它是 ChargeBee 的竞争对手。

恭喜您决定使用订阅管理服务提供商。通常,人们会自己构建并在事后后悔......

我想说,一般来说,您会希望避免存储 ChargeBee 上可用的任何内容,反之亦然。保持这种双重存储同步可能会出现问题。我不太熟悉 ChargeBee 如何融入商家应用程序的访问控制,但我猜他们希望按照您建议的方式对他们进行 ping 操作以获取信息。

您需要避免在不合理的水平上使用他们的 API。很容易陷入这样的架构:在每个页面视图上都从上游请求当前信息。您似乎已经考虑过这一点...以下是您可能考虑的其他一些问题:

  1. 在每个页面视图上调用上游 API 的开销将使您的应用程序对最终用户来说显得很慢。
  2. 如果上游服务不可用,那么您的应用程序也是如此。

使用基本的缓存机制来缓解这些问题是一个好方法。显然有很多方法可以做到这一点。一开始就保持有效期较短。比如说,1小时。你可以在路上延长它。如果您想更进一步,并假设 ChargeBee 支持 Webhooks,您可以考虑将应用程序设置为侦听相关挂钩,这些挂钩可能会更改用户的状态并相应地使该用户的任何缓存失效。


0
投票

我也使用 Chargebee with stripe 一年多了,我发现它很可靠。我认为根据您的流程,您应该存储 customerId,如果需要,还应该存储 subscriptionid 和客户的一些基本数据。

© www.soinside.com 2019 - 2024. All rights reserved.