Files
ft/CodexOutput/upserver/阶段4C2扣费前拦截诊断最小方案-待评审-2026-09-24.md

31 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 阶段4C2扣费前拦截诊断最小方案(待完整评审)
2026-09-24。仅补失败原因可观察性,未编码;不申请放宽准入,不申请第二次自动抛竿。
## 问题与已有证据
首次真实尝试在FishingBehaviorB.cs:49~51原普通付费门拒绝,先于新增PrepareFishingReward和扣费。随后正常Fault关闭,45键与动作前全同,收费0。当前合并消息缺少各谓词输入,无法断言具体原因,停止后原对象已不可读取。
## 唯一拟改动
仅`Client/Assets/Scripts/GampPlay/FishingB/FishingBehaviorB.cs`的现有Editor条件分支:保留整个if谓词、顺序及Stop调用;把固定错误字符串换为包含拒绝时字段的错误字符串。字段限定为`fishItem?.ID`、`fishItem?.SubType`、`curFishData?.ID`、`IsFree`、`IsRetry`、`IsDuel`。null明确写null。只读当前对象现有字段/属性,不调用选鱼/随机/存档/配置方法,不增加await、事件或第二个Fault。
既有Stop→Fault已将同一message写入events.jsonl及Console,因此复用原通道即可。不给日志另外新增框架、源码文件、动态反射、公共API;不新增单独审计写盘点,不记录账户凭据或整档。运行路径、时间由现有审计承担。
## 边界与验收
- 仅在拒绝分支构造诊断文字,成功分支完全不变。原普通鱼/免费/重试/对战/礼包/缺数据拦截都保持;v1/v2/v3权限、票据、奖励算法、配置不变。
- 完整评审及主会话裁决先于编码。当前补充轮批准两新文件,不据此默认为旧FishingBehaviorB增加新行为已经批准;本单独方案明确这一处旧文件差异。
- 审查确认字段getter无副作用且空值安全;静态diff证明只有错误文字变化;Editor和SERVICE_HOST编译;利用既有消费入口提取测试核对拒绝仍先于扣费。无需为文本加通用测试框架。
- 诊断补充本身不能算修复根因,更不能算4C2验收通过。若后来证据证明是不支持类型自然命中,应保留原门;若证据证明实现错误,另按已审范围定位与修复,不改概率/强制普通鱼或鱼HP。
- 本方案不产生第二次游戏许可,不重导102、不删6个claimed、不重复付费、不补发。新的真实运行需先核对新进程、备份和实际操作范围,并向用户明确一次尝试。
## 请独立评审裁决
1. 是否同意现有证据只能定位到合并门,尚不能确定具体谓词?
2. 六个字段是否足够唯一解释当前七条件(SubType含礼包类型、null标记覆盖缺对象),且不需新增状态?
3. 仅改变拒绝消息是否保持时序/副作用边界,是否有null/日志异常风险?
4. 编译及既有入口验证是否足够,是否批准这一个文件、这一处修改?
请输出问题等级、可执行修订与明确允许/不允许实施结论。其余4C2实施复核与真实恢复尚未完成,本次不申请整体关闭。