本文档描述了 Joplin Cloud 订阅系统,该系统管理用户账户、订阅计划、支付处理和账户限制。订阅系统主要围绕 Stripe 集成来处理支付和订阅生命周期。
有关用户管理的详细信息,请参阅 用户管理。
订阅系统与 Joplin Server 的多个组件集成,主要通过用户和订阅模型。
来源
Joplin Cloud 提供不同的账户类型,每种类型都有特定的限制和功能
系统根据账户类型定义不同的账户功能
| 账户类型 | 共享文件夹 | 接收共享 | 最大项大小 | 最大总存储空间 |
|---|---|---|---|---|
| 默认 | 是 | 是 | 无限制 | 无限制 |
| 基础 | 否 | 是 | 10 MB | 1 GB |
| 专业版 | 是 | 是 | 200 MB | 10 GB |
账户类型决定了用户可以执行的操作以及他们的存储限制。当用户尝试上传或保存项目时,会强制执行这些限制。
来源
订阅过程涉及从结账到账户创建或更新的几个步骤
当用户首次订阅时
对于升级订阅的现有用户
来源
该订阅系统在支付处理和订阅管理方面严重依赖 Stripe。该集成包含几个关键组件:
Webhook 处理程序处理来自 Stripe 的与订阅和支付相关的事件
| Webhook 事件 | 描述 | 处理程序操作 |
|---|---|---|
customer.subscription.created | 新订阅创建 | 创建用户账户和订阅条目 |
invoice.paid | 付款成功 | 更新付款状态,启用功能 |
invoice.payment_failed | 付款失败 | 将付款标记为失败,发送通知 |
customer.subscription.deleted | 订阅已取消 | 将订阅标记为已删除,添加用户标志 |
customer.subscription.updated | 订阅计划已更改 | 更新账户类型 |
Webhook 系统通过跟踪键值存储中已完成的事件来确保事件不会被重复处理。
来源
用户可以通过 Stripe 客户门户管理其订阅,该门户允许他们:
门户通过 /stripe/portal 访问,并重定向到 Stripe 的托管门户。
来源
该系统具有强大的处理付款失败的机制
last_payment_failed_time来源
订阅系统包含对 Beta 用户(早期采用者)的特殊处理
Beta 用户通过以下方式识别:
betaUserDateRange() 中定义)这些用户会在试用期结束前收到电子邮件,鼓励他们注册付费订阅。如果在试用期内订阅,他们将获得剩余的试用期加上标准的 14 天试用期。
来源
用户可以在其个人资料页面查看和管理订阅的各个方面,该页面提供:
个人资料页面与订阅系统集成,以显示与用户当前订阅状态相关的详细信息和选项。
来源
订阅系统根据账户类型监控和执行存储限制
该系统会持续检查账户大小,并在用户将存储量减少到限制以下时自动清除标志。
来源
订阅系统会生成几封与订阅事件相关的电子邮件通知
这些通知有助于用户解决付款问题、避免服务中断和有效管理其账户。
来源