功能、套餐与额度
功能
功能是你希望平台帮助你控制的能力单元,例如:
app-accesschat-basicimage-generatestorage
每个功能都有一个稳定的 slug,第三方应用调用 API 时使用的就是这个标识。
功能类型
权限型功能
适合只有“可用/不可用”两种状态的能力,例如:
- 是否允许使用某个模块
- 是否允许进入某个页面
- 是否拥有某个等级权限
额度型功能
适合需要记录剩余额度的能力,例如:
- 请求次数
- 生成次数
- 存储空间
- 积分
套餐
套餐是一组功能授权或额度的组合。它通常对应你的售卖单元,例如:
- 免费版
- 专业版
- 企业版
一个套餐可以同时包含:
- 若干权限型功能
- 若干额度型功能
套餐组与面值
套餐还有两个和续费规则相关的重要字段。文档中统一把 group 称为“套餐组”,把 value 称为“面值”:
group:套餐组。相同group的套餐会被视为同一条续费链,同一时刻最多只有一个生效套餐。value:面值。用于同组升级时把旧套餐剩余价值折算成新套餐时长。
设计上可以这样理解:
- 同组:互斥切换、续费、升级、降级排队
- 跨组:相互独立,可以同时生效
- 免费套餐:面值为
0 - 付费套餐:面值大于
0
额度
对额度型功能,你可以在套餐中配置:
- 总额度
- 重置周期
- 消耗优先级
这让同一客户可以同时拥有:
- 长期权限
- 周期额度
- 临时赠送额度
这里的“同时拥有”主要发生在跨组或不同功能来源场景下,不建议依赖同组多个套餐并行叠加来表达业务。
设计建议
slug一旦开始对接就尽量不要变- 功能名称面向业务人员,
slug面向程序调用 - 套餐命名尽量对应真实售卖口径
- 对需要定期恢复的额度,配置清晰的重置周期