跳转到内容

2026-06-18

fomoadmin 管理后台 全天主线 FEAT-016 NovaPay 收款码后台「接真实 payfi 后端」收口后的链上写交互打磨 + 原型二次对齐。承接 06-17 NovaPay 四页接真实 BE 的整体收口,今日聚焦三件事:① 链上写体验稳健化 —— 风控开关改按行 loading(不再整表转圈)、企业码签发 / 风控开关链上写后对「已发起但 BE 未同步」的行轮询自动刷新状态(不再卡中间态需手刷)、链上写报错归一为中文并识别用户取消签名、币种符号免闪烁(先解析后渲染 + localStorage 缓存)、publicClient 回退用户钱包自配 RPC;② 原型二次对齐 —— 对账报表列名 / 列序、数据统计汇总卡、平台 GV 3× 分配 tooltip;③ NovaPay 企业级码数据情况交付 QA 验证。FEAT-017 接口侧仍等 zz 收口 016 后开发,前端保持 Mock。

FEAT-016 NovaPay 链上写交互稳健化(本日重点)

Section titled “FEAT-016 NovaPay 链上写交互稳健化(本日重点)”
  • e88e665风控开关改按行 loading,避免整表转圈 —— codes.vue 风控管理列表两个开关原绑同一个全局 submitting ref,点任意一行全表按钮一起 loading;改为按 qr_code_id 追踪当前操作行,仅该行 loading,同时保留链上操作串行化(一次一笔)。
  • 6fab262链上签发 / 风控开关后轮询自动刷新状态 —— 链上写(applications 企业码签发、codes 风控开关)成功后,真正的状态翻转由 BE 监听器抓链上事件异步完成、有延迟且无推送,原先只 load 一次会卡在中间态(签发中… / 状态不翻)需手刷。改为对本会话已发起、BE 未同步的行轮询:applications 逐条拉 detail,命中 status=3 就地回填 qrCodeId;codes 静默重拉列表,is_enabled 翻到目标值即出队;全部同步完即停,带兜底次数上限 + onUnmounted 清理定时器。(承接「链上写靠监听器回填、不能只 load 一次」的约定)
  • 7cee836链上写报错归一 + 币种符号免闪烁 + 风控开关回退钱包 RPC ——
    • 链上写(风控开关 / 签发)报错统一走 payfiErrorZh:合约自定义错误 / RPC 节点故障 / 兜底归一为一句中文,不再回显 viem 原始 dump;新增 isUserRejected 识别取消签名走 info 提示而非报错。
    • setQRCodeEnabled 等改回 publicClient(custom MetaMask),由用户自配 RPC —— 固定 data-seed 节点同样会 Failed to fetch、无优势,回退用户钱包 RPC 更稳。
    • tokenSymbols 预置平台 USDT + 缓存持久化 localStorage;列表 / 详情先 await 解析符号再渲染,消除「先地址后翻符号」闪烁。
  • 1636b2a「平台」标题加 GV 3× 分配说明 tooltip —— 对账报表「平台」列头与数据统计「平台 GV」卡片标题加 InfoFilled ⓘ 图标,hover 展示平台 / 渠道商 3× 分配规则说明,文案对齐 PRD 原型。
  • 87c67f3对账报表列名 / 顺序对齐原型 —— 付款方 5×/8× → 消费者 5×/8×、收款方 1× → 商家 1×、让利 USD → 让利价值;列序调整(让利 → 商家到账、渠道商 → 平台)与原型一致。
  • d873d49数据统计汇总卡对齐原型 —— 支付总额 / 充值总额数值改蓝色;让利价值 USD → 让利价值入池 (base);GV 卡片标题对齐(付款方 5×/8× → 消费者、收款方 1× → 商家、平台 GV → 平台 1×);渠道商 GV 暂留(定投币 2× 命名待 PM 确认)。
  • 链上写状态靠轮询回填、不靠单次 load:BE 监听器抓链上事件异步同步、有延迟且无推送,签发 / 风控开关签名成功后对「已发起未同步」的行轮询直到目标态,带次数上限 + 卸载清理,避免界面卡在中间态需手刷。
  • 链上 RPC 回退用户钱包自配节点:固定 data-seed 节点与用户钱包 RPC 同样会 Failed to fetch、无稳定性优势,publicClient 统一回退 custom(MetaMask),由用户自配 RPC。
  • 链上写错误一律归一中文:合约自定义错误 / RPC 故障 / 未知异常统一经 payfiErrorZh 转一句中文,用户取消签名 (isUserRejected) 走 info 而非 error,不再向用户回显 viem 原始 dump。
  • 币种符号先解析后渲染:预置平台 USDT + localStorage 持久化缓存,列表 / 详情渲染前 await 解析,消除「先地址后翻符号」闪烁。
  • 「渠道商 GV / 定投币 2×」命名待 PM 确认:数据统计汇总卡渠道商 GV 卡片标题暂留,等 PM 敲定定投币 2× 命名后再统一。
  • NovaPay 企业级码数据情况待 QA 验证:四页接真实 BE + 链上写轮询 / 报错归一 / 符号免闪烁改动已落 test,企业级码签发与数据回填的端到端待 QA 复测确认。
  • FEAT-017 接口待 BE:等 zz 收口 016 接口后再转 FEAT-017 接口开发,前端第三方代币纳管(Story4)/ 选币展示(Story5)保持 Mock,等后端接口文档(BE-003 / BE-005)。
  • 企业级签发 / 风控链上写仍依赖管理员钱包在 QRCodeModule 的 restricted 权限:未授权则 createThirdPartyQRCode / setQRCodeEnabled revert(AccessManagedUnauthorized),待 AccessManager 持权人授权后才能跑通 admin 端到端 happy-path。
  • 跟进群内反馈,配合 QA 复测 NovaPay 企业级码数据情况,按反馈做收口微调。
  • 待 zz 收口 016 接口后转入 FEAT-017 接口开发;后端接口文档(BE-003 / BE-005)到位后将第三方代币纳管 / 选币展示从 Mock 切真实接口。