Skip to content

充值与订阅套餐配置

支付通道打通之后(见 Z-Pay 支付宝收款配置),站点可以出售两种形态的商品:余额充值订阅套餐。两者的计费模型完全不同,先分清楚再定价,否则很容易把两个换算汇率配反。

计费链路的内部机制(Preflight 检查顺序、余额扣减、订阅窗口)见计费与配额;本文只讲运营侧怎么配置和定价。

两种商品形态

余额充值订阅套餐
用户买到什么USD 余额,按量计费,用完为止某个分组(Group)的限时使用权
额度约束余额扣完不能再用分组上的日 / 周 / 月 USD 限额,窗口自动重置
是否过期不过期有效期(天/周/月)到期失效
配置位置支付设置(全局参数,无需建商品)分组管理(权益)+ 订阅套餐管理(售卖信息)
扣费关系请求没有可用订阅时才检查并扣余额请求优先消耗有效订阅的窗口额度,不动余额

用户同时持有余额和订阅时,请求按「有效订阅优先,余额兜底」的顺序结算,所以两种商品可以并存出售,也可以打开「禁用余额充值」只卖订阅。

OneSeat AI 前端(C 端)注意

OneSeat AI 充值页展示的档位(¥9.9 入门包、¥39/¥79/¥149、滑块上限 ¥1000)是前端预设,不在后台配置,改面额需改前端仓库 app/modules/payment/presets.ts 并发版。除此之外的一切——倍率、手续费、限额、套餐——都在本文所述的后台位置配置,前端实时跟随。详见前端仓库 支付集成设计.md §3.3 改价操作指南。

余额充值配置

位置:管理后台 → 系统设置 → 支付设置。充值不需要创建商品,用户在充值页自行输入金额,系统按以下参数结算:

配置项作用定价含义
余额充值倍率每支付 1 CNY 到账多少 USD 余额这就是余额的售价。界面有实时预览,如填 0.14 即 1 CNY = 0.14 USD,折合约 7.14 CNY/USD
充值手续费率在支付金额上加收的百分比,0 为不收用于覆盖支付通道费率(Z-Pay 等聚合平台通常抽 2%~4%)
最低金额 / 最高金额 / 每日限额单笔与每日充值上限最低金额别设太低,通道有单笔下限;验收测试时可临时调低
最大待支付订单数 / 订单超时时间防刷单参数超时订单自动过期,晚到的成功通知仍有有限宽限处理
禁用余额充值关闭余额售卖只做订阅制站点时打开

定价时把三层成本算进倍率:上游账号成本、分组费率倍率(用户侧计费 = 模型价 × 分组倍率)、支付通道手续费。

订阅套餐配置

一个订阅套餐 = 「买多久 + 多少钱 + 进哪个分组」。额度权益不在套餐上,而在分组上——套餐只是分组使用权的售卖包装。所以配置分两步:

第一步:在分组上定义权益

位置:管理后台 → 分组管理。为要出售的分组设置:

  • 日限额 / 周限额 / 月限额(USD):订阅用户在对应窗口内可消耗的用量上限,按自然日零点重置,三个都可以留空(不限)。「订阅是每天能用多少 USD」指的就是这里的日限额。
  • 费率倍率、平台、可用模型、专属分组等常规分组配置(见分组、渠道与模型)。

建议出售的分组与免费/内部分组隔离,一个套餐档位对应一个独立分组,权益调整互不影响。

用量按「模型计费价 × 分组倍率」折算成 USD 累计;窗口打满后该订阅拒绝请求,直到窗口重置。管理员可在用户订阅详情中手动重置日/周/月窗口(处理投诉或补偿时用)。

第二步:创建订阅套餐

位置:管理后台 → 订单管理 → 订阅套餐(订阅套餐管理页)。字段:

字段说明
套餐名称 / 套餐描述展示给用户的商品信息
分组购买后用户获得哪个分组的订阅
价格实际收款定价,币种含义见下节「两个汇率」
原价仅展示用的划线价,可不填
有效期 + 有效期单位数字 + 天/周/月,如 30 天1 月
功能特性每行一个卖点,渲染成套餐卡片的权益列表
上架状态 / 排序控制充值页是否展示及展示顺序

支付成功后系统自动履约:给用户分配或顺延该分组的订阅(已持有同分组订阅时到期时间顺延,不会作废重算),写入审计日志并发送订阅成功邮件;重复的支付通知有幂等保护,不会重复加时长。履约失败的订单可在后台订单详情「重试履约」。

两个汇率,方向相反,别配反

配置项方向影响范围
余额充值倍率CNY → USD:1 CNY 买多少 USD 余额只影响余额充值
订阅 CNY 换算汇率USD → CNY:套餐每 1 USD 价格收多少 CNY只影响 CNY 通道下的订阅收款

「订阅 CNY 换算汇率」决定套餐「价格」字段的币种语义,全站二选一:

  • 按 CNY 定价(推荐,最简单):汇率填 0 或留空,套餐价格直接按 CNY 数值收款。价格填 30 就是收 30 元。
  • 按 USD 定价:汇率填换算值(如 7.15),所有套餐价格一律按 USD 填写,走支付宝/微信/易支付等 CNY 通道时按汇率折算收款。价格填 10、汇率 7.15,实收 71.5 元(手续费另算)。

**开启换算后所有套餐的价格都必须按 USD 定价,不能混用。**套餐编辑框里有「CNY 通道实扣预览」,保存前先看预览金额对不对。

只接了 Z-Pay(纯 CNY 通道)的站点,建议直接按 CNY 定价、汇率留 0;将来接入 Stripe 等外币通道再考虑切换 USD 定价。

验收清单

  1. 建一个测试分组(日限额设小,如 0.5 USD)和一个绑定它的低价测试套餐并上架。
  2. 用测试账号购买:确认收款金额与「CNY 通道实扣预览」一致(含手续费)。
  3. 支付成功后,用户中心应出现该订阅及正确到期时间,并收到订阅成功邮件(如已配邮件)。
  4. 用该账号发请求:确认消耗的是订阅窗口额度,余额不变。
  5. 打满日限额:请求应被拒绝,次日零点(或管理员手动重置)后恢复。
  6. 再买一次同套餐:到期时间应顺延,而不是重置。
  7. 验收后下架测试套餐,把测试分组停用或清理。

常见问题

现象原因
充值页看不到套餐套餐未上架;支付系统未启用;套餐绑定的分组已停用
套餐收款金额不对「订阅 CNY 换算汇率」与价格币种语义不匹配(按 CNY 定价却填了汇率,或反之);手续费率漏算
用户买了订阅仍扣余额请求没有命中订阅分组(API Key 所属分组与订阅分组不一致),按余额兜底结算
订阅购买成功但未生效履约失败(如分组已停用),订单会停在失败态,后台订单详情「重试履约」;排查见计费 Runbook
改了分组限额,老用户没变化限额是分组属性,即时生效;但当前窗口已累计的用量不会回退,等窗口重置后按新限额执行

本文档用于帮助你理解、部署和运维 Sub2API。使用前请确认上游服务条款与当地法律要求。