|
|
@@ -1,6 +1,6 @@
|
|
|
# VOC 用量核算、成本预估与余额看板实现方案
|
|
|
|
|
|
-> 文档状态:P0 计费、用量展示、支付回调和工具级续跑已完成生产复测;已支付小额订单的 NewAPI 直入账代码、回调契约和本地构建已完成。2026-09-05 生产探针确认公网 `nova-server` 尚未加载该路由版本,需按第 21.28 节发布后再执行一次账户级余额刷新与幂等复测。历史工作流适配和跨会话唤醒仍列为 P1。
|
|
|
+> 文档状态:P0 计费、用量展示、现有支付回调链路和工具级续跑已完成;此前为旧钱包负余额增加的 NewAPI 直入账补丁已撤销,生产源代码已包含撤销提交。2026-09-05 无扣费探针显示公网 `nova-server` 仍加载旧运行包,需发布撤销版本并复核原有云函数划拨到账。历史工作流适配和跨会话唤醒仍列为 P1。
|
|
|
> 编写日期:2026-09-01;最近复核:2026-09-05
|
|
|
> 涉及仓库:`claude-code-voc-intelligence`、`future-server`、`fmode-studio`、`voc-profit-web`
|
|
|
|
|
|
@@ -2340,3 +2340,21 @@ Studio 已有 `/balance`、Token 免登录、NewAPI 余额、支付二维码、
|
|
|
- `fmode-wxpay-api` 的回调验签顺序改造。
|
|
|
|
|
|
最终实现口径:不新增支付接口,不新增任务级支付或独立 VOC 钱包,不修改微信回调。所有任务继续按实际 NewAPI 调用扣费;余额不足时由技能返回现有 Token Balance 链接或现有二维码入口。`c61d1006`、`verifiedPayment`、`WXPAY:<AccountLogId>` 不再作为生产部署或联调前提,历史章节仅保留为审计记录。
|
|
|
+
|
|
|
+### 21.32 2026-09-05 撤销版本生产运行时复核
|
|
|
+
|
|
|
+`future-server` 的 `origin/master` 已包含合并提交 `9d1c2576` 及其祖先 `79b60341`,源码和工作区均已完成临时补丁撤销。随后使用当前有效 Session 发起无金额变更探针:金额使用明显超出余额的测试值,订单号和 `AccountLog` 均为虚构值,不创建订单、不生成支付码。
|
|
|
+
|
|
|
+| 检查项 | 结果 | 证据/结论 |
|
|
|
+| --- | --- | --- |
|
|
|
+| 撤销提交在远端源码 | 通过 | `origin/master` 包含 `79b60341 Revert "fix: credit verified wechat payments to NewAPI idempotently"`;三个受影响文件与 `c61d1006` 父版本一致。 |
|
|
|
+| 线上无扣费探针 | 通过 | HTTP 401/404 均未产生订单或 quota 变化;当前公网对带 `verifiedPayment` 的虚构订单返回“已支付订单不存在或不属于当前用户”,表明运行时仍加载临时补丁分支。 |
|
|
|
+| 当前生产版本 | 待发布 | 需要在实际 `nova-server` 应用宿主部署 `origin/master` 并 reload/restart;仅更新本地仓库或独立 `fmode-server` 进程不会替换公网 `/api/fmode/*` 运行包。 |
|
|
|
+| 原有支付链路复核 | 待执行 | 发布后使用余额正常的测试账户复用或新建小额订单,确认微信回调核验、`fun_id` 云函数划拨、NewAPI 余额增加、Balance 刷新和任务检查点续跑。若测试账户旧钱包仍为负,应先处理该账户账务或换用余额正常账户。 |
|
|
|
+
|
|
|
+#### 当前剩余工作
|
|
|
+
|
|
|
+1. 发布 `future-server` 撤销版本并重载实际 `nova-server`,再用同一无扣费探针确认运行时不再识别 `verifiedPayment`。
|
|
|
+2. 在余额正常的测试账户完成一次小额原有支付链路回归:`AccountLog.isVerified`、云函数划拨成功、NewAPI quota 增加一次、Balance 刷新可见。
|
|
|
+3. 使用已有检查点续跑,确认已完成业务键的 `fetchCalls=0`;完成后将 P0 账户级支付门禁标记为通过。
|
|
|
+4. P1 仍为历史批处理 Skill 规划适配、跨会话自动唤醒、更多媒体入口覆盖和报价偏差校准。
|