---
url: /docs/specs/billing.md
---
# 订阅集成规格

## 设计选择

通过 Better Auth Stripe 插件管理客户、订阅、组织授权与回调，使用托管结账和客户门户。客户端查询走 tRPC，升级和门户跳转走认证客户端，避免重复实现插件已有边界。

当前不包含按量计费、一次性积分包、嵌入式结账及完整税务、多币种方案。这些需要实际业务扩展，不因 Stripe 支持就算模板已接入。

## 状态流程

```mermaid
sequenceDiagram
  participant U as 用户
  participant A as 账号接口
  participant S as 支付服务
  participant D as 数据库
  U->>A: 请求升级
  A->>S: 创建结账会话
  S-->>U: 托管结账
  S->>A: 签名事件回调
  A->>D: 更新订阅
  U->>A: 查询当前套餐
```

浏览器成功回跳不直接授予付费权限，以已验证事件同步的数据库状态为准。

## 归属与角色

订阅范围为活动组织或当前个人。组织查询实时验证成员；变更由插件验证所有者或管理员。查询键包含活动组织，切换后不会复用另一组织的账单结果。

数据表是 `subscription`，用户和组织保存相应客户 ID。套餐限制从 `websiteConfig` 派生，插件与查询共用；新增限制还要在业务操作中实施。

## 配置与验收

支付开关加四项完整基础凭据才启用，年付价格可选。配置、结账和回调教程见 [订阅与账单](../billing/index.md)。现有测试覆盖项目自己的权限、禁用状态、免费回退与查询键边界；真实外部结账和回调仍需单独验收，不能写成已经完成。
