# 交互设计 · 支付记录 > 订阅与充值的登记面(同构表单)+ 系统核对提示的呈现——「只有作者知道」的信息的唯一录入处(payments 定位)。 | 项目 | 内容 | |------|------| | 状态 | 定稿(2026-10-01) | | 关联 | 《交互设计-总览与共性》(数值呈现:金额无符号、额度双单位)· `payments表字段设计.md`(字段与「只存事实」)· R7(充值登记)· R8(`subscription_id` 直连) | | 数据 | `payments` 全表 · 日志观测的订阅 ID(核对提示) | --- ## 1. 记录清单(页面主体) | 列 | 内容 | 备注 | |----|------|------| | 类型 | `subscription` / `topup` 徽章(订阅 / 充值) | 同构表的两种形态 | | 金额 | **纯数字**(如「170」) | 币种由你们约定——列头标注「金额(币种自定)」 | | 时间 | 订阅:期间 `[start, end)`,未结束显示「进行中」;充值:`paid_at` | 期间左闭右开,展示为「09-01 ~ 10-01」 | | 订阅 ID | `subscription_id`(充值留空) | 直连日志的分源键 | | 额度 | 原始 quota + 美元换算双单位(如「12,500,000($25.00)」) | 美元按 QPU 换算,标注「按当时换算率」 | | 备注 | `remark` | | - 排序:时间倒序;编辑 / 删除(删除有确认弹窗——「改错即修,删除即消失」,人工登记数据) ## 2. 登记表单(订阅 / 充值同构,`kind` 切换) **公共字段**:金额(必填,纯数字输入;脚注「金额数值——币种由你们约定,系统不预设」)、备注(可空) **订阅形态追加**: - 支付时间、期间起止(结束可空 = 进行中) - 订阅 ID(抄自钱包页面「订阅 #N」) - 额度——**双输入模式**:直接输原始 quota,或输美元由系统按当前 QPU 换算落库(表单内二选一切换,换算即时预览;录入体验归交互层、数据落原始 quota——payments 3.6) **充值形态追加**:支付时间、额度(同上双输入) ## 3. 核对提示(系统观测 ↔ 人工登记的对照) 页面顶部提示区,由日志观测驱动: | 提示 | 触发 | 文案 | |------|------|------| | 未对应登记 | 观测到某 `subscription_id` 有消耗、但 `payments` 无此订阅 | 「观测到订阅 #N 有消耗,但尚无对应登记——请核对补录」 | | 正常 | 全部观测到的订阅均有登记 | 不显示(健康默认无声) | - 观测**只提示、不回填**(payments 定稿语义);提示区与全员总览的「未关联订阅」分组互为印证(一个说「有 ID 没账」,一个说「有账路没 ID」) - **静默规则**:`payments` 全空时本提示区自动静默——纯用量模式(《总览与共性》§3.8,如部门实例)下「无登记」是作者的有意选择,此时提示是噪音而非健康信号