充值中心与月度订阅
首页顶部「算力充值」按钮打开「充值中心」弹窗,含「算力充值」与「月度订阅」两个 Tab(默认落在「月度订阅」)。充值与订阅对开源版 / 商业版用户都开放;本地部署模式不可二维码支付,管理员请在后台增加算力。
充值中心
入口
- 首页顶部「算力充值」按钮(主入口)
- 故事板页算力日志弹窗内的「算力充值」按钮(仅直充,无订阅 Tab)
- 关闭弹窗后再次打开,默认仍落在「月度订阅」Tab
算力充值(直充)
- 导语:「选择适合您的算力套餐 / 支持微信支付,充值后立即到账」
- 套餐卡片展示:套餐名、
N 算力、单价 - 首充福利包:仅未充值过的用户可见,一次性;领取后从列表移除,再次购买会提示「首充福利仅限首次充值,您已领取过该套餐」
- 算力包(多档位):其中「算力包 88」档已解除首充限制,任意时刻可充
- 到账算力显示:列表展示的算力是扣邀请佣金后的实际到账值;无邀请人 / 开源版 / 首充时全额到账
- 支付流程:
- 微信内:JSAPI 调起支付
- 微信外:展示微信扫码(Native),「请使用微信扫码完成支付 / 请打开微信"扫一扫"完成支付 / 如果已支付,请稍等片刻系统会自动到账」
- 「二维码失效?重新生成」「返回选择套餐」
- 本地部署模式提示:「只有云端环境才能开启二维码支付。本地模式下,管理员用户请进入后台增加算力,非管理员用户请通知管理员。」
月度订阅(微信委托代扣 · 周期扣费)
首次付费后,授权微信支付在每个周期到期前自动扣款续费(免密代扣),可随时取消。
- 导语:「会员订阅 / 选择适合您的月度创作套餐,自动续费可随时取消」
- 四档套餐(由低到高):
| 档位 | 定位词 |
|---|---|
| 入门版 | 日常使用 |
| 标准版 | 效率升级 |
| 专业版 | 专业创作 |
| 旗舰版 | 全能尊享 |
- 注:此处「标准版」指订阅档位名,与产品的「开源版 / 商业版」无关
- 卡片展示「⚡ N 算力/期」与算力倍数标注(最低档显示「基础档」,其余显示「≈ 基础档 N 倍算力」),并突出「比直接购买差额算力」(订阅更划算的差额展示);首订加赠并入首期展示
- 各档具体月费与算力以充值中心展示为准
- 首订加赠:首份成功订阅的首期赠送算力,档位越高加赠越多。加赠不参与渠道抽佣、仅首期一次;解约后重新订阅不再加赠,升级单不加赠
- 仅签约成功后随首期发放;只付款但签约未生效 → 不加赠,且不消耗资格
- 《自动续费服务协议》:勾选后才能开通,新窗口打开独立协议页(
/auto_renewal_agreement.html);支付二维码上方有自动续费开关引导动画。要点: - 扣款时间:到期前 2 天内发起、申请后 24 小时内扣款;扣款失败次日重试,最长 7 天
- 算力清零规则:2026-11-01 前订阅的未用算力不清零;2026-11-01 起每期周期结束清零。充值包算力长期有效
- 取消仅停止下期扣款,不构成对当期服务的退款
- 我的订阅卡片:套餐名、「生效中 / 升级开通中」徽标、「每期到账」「月费」「当前周期至」「下次扣款日」,以及「刷新状态」「取消订阅」
- 签约进行中:完成支付并确认开通前,显示「您有一笔订阅签约正在处理……您也可以直接选择下方套餐重新发起,之前的未完成签约将自动作废」
- 已付费未签约:「本月会员已付费,算力权益保留至 {{日期}} / 您尚未开通"每月自动续费",到期后订阅优惠将中断;重新开通订阅即可持续享受会员优惠」
- 取消订阅:「确定取消月度订阅吗?取消后当期权益保留至周期结束,之后不再自动扣费。」取消后当期权益保留至周期结束,不再自动扣款;重新订阅立即生效并重新计算周期
- 升级(无需退订):「升级到更高套餐(无需退订,支付成功立即切换)」
- 选择更高档位后「升级并支付」;支付成功后立即切换新档位并发放整期算力,新周期自支付成功起算 30 天
- 本期剩余天数不折算、不退差价;升级档位不重复享首期加赠
- 新签约生效后,原签约自动解约
- 支付成功自动感知:二维码生成后前端每 3 秒轮询;支付成功提示「支付成功!订阅已生效,算力稍后到账」(升级单为「套餐升级已生效」)
API 接口
直充(server.py)
GET /api/recharge/packages # 直充套餐列表(已首充过滤首充福利;含扣佣后 granted_computing_power)
POST /api/recharge/wechat-pay # 创建支付订单(微信内 JSAPI / 微信外 code_url 或 h5_url;首充福利二次购买拦截)
POST /api/recharge/wechat-callback # 微信支付结果回调(无鉴权,微信服务器调用)
月度订阅(api/subscription.py,前缀 /api/subscription)
GET /api/subscription/plans # 订阅套餐列表 + 当前用户订阅状态
POST /api/subscription/wechat-sign-pay # 创建「支付中签约」订单(首期 / 升级单,返回 upgrade 标志)
GET /api/subscription/status # 我的订阅状态
GET /api/subscription/order-status # 单笔订单支付状态(前端 3s 轮询感知支付成功,仅本人订单)
POST /api/subscription/cancel # 用户解约(当期权益保留至周期结束)
POST /api/subscription/pay-callback # 微信支付 / 代扣结果通知(无鉴权,V2 XML)
POST /api/subscription/contract-callback # 微信签约 / 解约结果通知(无鉴权,V2 XML)
说明:微信委托代扣的查约 / 解约(/papay/querycontract、/papay/deletecontract)是后端出站调用的微信商户接口,不是本站对外 API。
相关配置
- 直充套餐:
RECHARGE_PACKAGES(config/constant.py) - 订阅套餐:
MONTHLY_SUBSCRIPTION_PLANS(config/subscription_config.py,每档对应一个委托代扣协议模板) - 订阅行为常量:
SubscriptionConstants(周期 30 天、扣费时间窗、重试窗口等,config/constant.py) - 微信 V2 签名密钥:
pay.wxpay.api_v2_key(敏感,不入 git;未配置时签约支付返回 503)
相关文件
- 前端:
web/index.html、web/js/index_app.js、web/auto_renewal_agreement.html、web/css/subscription.css - 后端:
server.py(直充)、api/subscription.py、services/subscription_service.py、utils/wx_papay_util.py - 续期任务:
task/subscription_renewal_task.py