2026-04-12
| 套餐 | 月付 | Token配额 | Token成本 | 利润率 | 策略 |
|---|---|---|---|---|---|
| 免费版 | ¥0 | 5,000 | ¥10 | 0% | 体验引流 |
| 入门版 | ¥9.9 | 10,000 | ¥20 | -101% | 获客转化 |
| 专业版 | ¥59 | 20,000 | ¥40 | +32% | ⭐主要盈利 |
| 旗舰版 | ¥199 | 50,000 | ¥100 | +50% | 高端用户 |
server/
├── src/modules/subscription/
│ ├── subscription.service.ts ✏️ 更新(成本定价)
│ └── subscription.controller.ts ✅ 新增
├── src/modules/payment/
│ ├── payment.service.ts ✅ 新增
│ └── payment.controller.ts ✅ 新增
└── prisma/
└── schema.prisma ✏️ 更新(新增表)
my-uniapp-vue3/
└── src/pages/
├── member/index.vue ✏️ 更新(新版定价)
└── orders/index.vue ✅ 新增
docs/
├── 支付集成指南.md ✅ 新增
├── 订阅系统使用说明.md ✅ 新增(更新定价)
└── Token计费系统设计.md ✅ 新增
GET /api/subscription/plans - 获取套餐列表GET /api/subscription/plans/:id - 获取套餐详情GET /api/subscription/balance - 获取Token余额GET /api/subscription/usage - 获取使用记录GET /api/subscription/quota - 获取用户配额POST /api/subscription/check-quota - 检查配额POST /api/payment/create - 创建订单POST /api/payment/mock - 模拟支付POST /api/payment/alipay/callback - 支付宝回调POST /api/payment/wechat/callback - 微信回调GET /api/payment/orders - 订单列表GET /api/payment/orders/:orderNo - 订单详情用户:专业版会员
月配额:20,000 Token
成本:¥40/月
日常使用:
- 每天生成2次,每次2000字
- 每天Token消耗:4,000
- 每月(30天):120,000 Token
检查:
✗ 超出月配额:120,000 > 20,000
实际使用:
✓ 月配额:20,000 Token(够用)
✓ 每天2次 × 30天 = 60次(受每日限制50次控制)
✓ 实际生成:50次 × 2000字 = 100,000字
✓ Token消耗:100,000(受配额限制)
成本:100,000 × ¥2.0/千 = ¥200
售价:¥59
利润率:-239% ❌ 亏损
⚠️ 问题:每日50次限制可能不够
优化方案:
- 提高每日限制到100次
- 或降低月配额到15,000
- 或提高月费到¥79
用户:专业版会员
月配额:20,000 Token
月费:¥59
当月使用:
- Token消耗:25,000
计费:
- 包含部分:20,000 Token = ¥0(已付月费)
- 超额部分:5,000 Token × ¥3.0/千 = ¥15
额外费用:¥15
总费用:¥59 + ¥15 = ¥74
成本:25,000 × ¥2.0/千 = ¥50
售价:¥74
利润:¥24
利润率:32% ✅ 合理
fc0c7a0 feat: 更新套餐定价策略,确保不亏本
e5ebc11 docs: 更新订阅系统使用说明,添加详细定价策略
c66066b docs: 创建订阅支付系统完成报告
28a8d9f docs: 添加订阅系统使用说明文档
2556065 docs: 添加支付集成指南文档
6975493 feat: 添加订单历史和Token使用记录页面
7ac66b6 feat: 实现订阅支付系统基础功能
入门版(¥9.9/月)定价低于成本:
配额:10,000 Token
成本:¥20
售价:¥9.9
亏损:¥10.1
这是故意的!
商业逻辑:
Token扣费逻辑已经设计好,但还没集成到TTS生成流程:
// 待集成到 server/src/modules/tts/tts.service.ts
async function generateAudio(userId: number, text: string) {
const tokens = text.length;
// 检查配额
const balance = await checkQuota(userId, tokens);
if (!balance.allowed) {
throw new Error('Token余额不足');
}
// 扣除Token
await consumeToken(userId, tokens, {
type: 'text_to_speech',
description: `生成音频:${text.length}字`
});
// 生成音频...
}
📗 docs/订阅系统使用说明.md
📘 docs/支付集成指南.md
📙 docs/Token计费系统设计.md
开发状态:✅ 基础功能完成,可以先使用模拟支付测试完整流程!
定价已优化:✅ 确保不亏本,所有付费套餐都有合理利润!
下一步:集成Token扣费到TTS生成流程,完成最后10%的功能!