充值(Topup)
这是什么
Topup 是用户在线充值的额度购买。不绑定订阅、不绑定套餐,只往用户 User.quota 里加额度。
订单号前缀 TP。
在哪里看到
- 前台 → 充值:列出预设金额、自定义金额输入、当前汇率
- 后台 → 充值管理:管理员视角的订单查询
- 后台 → 充值业务配置:开关、预设金额列表、汇率、自定义金额强制
你需要为「充值功能」设置什么
后台 → 充值业务配置:
| 项 | 含义 | 设置后影响 |
|---|---|---|
enabled | 总开关 | 关闭后前台隐藏充值入口 |
presets | 预设金额列表 | 一组数字(如 10 / 50 / 100) |
custom_enabled | 自定义金额 | 开关;关闭后用户只能选预设 |
rate | 汇率 | 用户充值 1 元获得 X 额度 |
min / max | 最低 / 最高金额 | 用户充值的上下界 |
通常初始化推荐:
- 开启
- 预设 10 / 50 / 100 / 500 元
- 允许自定义,最低 1 元,最高 10000 元
- 汇率 100000(1 元 = 10 万内部单位,与默认
QuotaPerUnit=500000配套)
关键字段(每条 Topup 订单)
| 字段 | 含义 | 设置后影响 |
|---|---|---|
order_no | 订单号 | TP 前缀;改了就收不到回调 |
user_id | 所属用户 | 关联到 User;删除用户级联 |
amount | 金额 | 实际付款金额(¥) |
quota | 额度 | 金额 × 汇率;入账额度(订单完成后写入 User.quota) |
status | 状态 | 未支付 / 已支付 / 已取消 |
pay_method | 支付方式 | 微信 / 支付宝 / 银行 / Mock;决定回调 URL |
入账时机
订单「已支付」回调成功后,立刻给用户 User.quota += 订单额度,无需人工干预。
与「套餐」的区别
- 充值 → 加到
User.quota,永久有效,没有套餐折扣 - 套餐 → 绑定 Subscription,有折扣倍率、有有效期
用户可以同时拥有:充值额度(不打折)+ 订阅(打折)。
相关页面
相关 API
POST /api/topup/order— 用户创建充值订单GET /api/setting/topup— 获取充值业务配置PUT /api/setting/topup— 更新配置(Root)