Files
new-api-key-usage/docs/design/交互设计-支付记录.md
T

95 lines
4.2 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.
# 交互设计 · 支付记录
> 订阅权益与充值入账的登记面(管理入口名「支付记录」)+ 系统核对提示——「只有作者知道」的信息的唯一录入处。物理上分 `subscriptions` / `topups` 两表(`payments建模评估.md` 方案 B),界面仍作**一个菜单项**,两 Tab 各登记各的。
| 项目 | 内容 |
|------|------|
| 状态 | 定稿(2026-10-12,作者认可实现;补订阅 ID / 交易号筛选) |
| 关联 | 《交互设计-总览与共性》· `subscriptions表字段设计.md` · `topups表字段设计.md` · R7/R8 |
| 数据 | `subscriptions` + `topups` · 日志观测的订阅 ID(核对提示) |
---
## 1. 页结构:两 Tab
菜单仍叫「支付记录」;页内 Tab:
| Tab | 清单 | 登记 |
|-----|------|------|
| **订阅** | 订阅权益表 | 登记订阅 |
| **充值** | 充值入账表 | 登记充值 |
筛选随 Tab(均为前端过滤——清单全量直返):
| Tab | 筛选 | URL |
|-----|------|-----|
| 订阅 | 订阅 ID(精确,可空)· 账本域(含「未标注」) | `tab=subs` · `subscription_id` |
| 充值 | 交易号(子串,可空)· 账本域 | `tab=topups` · `trade_no` |
- 切换 Tab 保留另一 Tab 已填筛选;URL 同步便于从调用日志来源徽章深链(`subscription_id`)
- 补录审计可看「登记」列(`created_at`)
## 2. 订阅清单列
| 列 | 内容 |
|----|------|
| 订阅 ID | `subscription_id` |
| 期间 | `[period_start, period_end)`,未结束「进行中」 |
| 额度 | quota + $ 双单位 |
| 付款 | `paid_amount` / `paid_at`(可空显示「—」) |
| 备注 | `remark` |
| 登记 | `created_at` |
| 操作 | 编辑 / 删除 |
## 3. 充值清单列(对齐上游充值单)
| 列 | 内容 |
|----|------|
| 时间 | `paid_at`(= 上游 `complete_time`,平台展示时刻;倒序) |
| 充值金额 | `amount`(平台计费侧充值额,不标币种) |
| 实付金额 | `money`(如 `2.04`,纯数字) |
| 交易号 / 渠道 | `trade_no` · `payment_method` / `payment_provider` |
| 派生额度 | `amount × qpu` + $(展示,不入库) |
| 备注 / 登记 | `remark` · `created_at` |
| 账本域 | `billing_domain`(可空;列表可按域筛,含「未标注」) |
| 操作 | 编辑 / 删除 |
## 4. 登记表单(分 Tab,不再 `kind` 切换)
**订阅**:订阅 ID · 期间起止(结束可空)· 额度(quota / 美元双输入)· 付款金额(可空)· 付款时间(可空)· 账本域(可空,已有值联想)· 备注 · **「从平台选用」**(辅助登录 → 订阅列表)
**充值**:时间 `paid_at`(必填)· `amount`(必填)· `money`(必填)· 交易号 / 渠道(可空)· 账本域(可空,已有值联想)· 备注 · **「从平台选用」**(辅助登录 → 充值单分页列表);**无「换得额度」输入框**(派生)
### 4.1 选用弹层(订阅 / 充值同规则)
与 `platform-subscription-picker` 同壳:账号密码 → 代拉 → 选用。**已登记灰显**两套一致:
| 实体 | 去重键 | 已登记表现 |
|------|--------|------------|
| 订阅 | `subscription_id` | 灰 +「已登记」,不可选用 |
| 充值 | `upstream_id` | 灰 +「已登记」,不可选用 |
**充值分页**(上游仅 `p` / `page_size`,无时间参数):
| 行为 | 策略 |
|------|------|
| 列表 | 当前页(`page_size=10`) |
| 翻页 | 传统分页:共 N 条 · 上一页 / 页码 / 下一页 |
| 范围 | 可翻至尽头;**不做时间筛选** |
| 401 | 重登;token 仅 sessionStorage |
订阅列表为全量一次拉取(`all_subscriptions`),无分页问题。
- 金额脚注:「金额数值——币种由你们约定,系统不预设」
- 订阅额度双输入:原始 quota 或美元(按 `qpu/latest` 预览),落库恒 quota
- 编辑 / 删除有确认;改错即修
## 5. 核对提示(只对订阅 Tab)
| 提示 | 触发 | 文案 |
|------|------|------|
| 未对应登记 | 观测到某 `subscription_id` 有消耗、`subscriptions` 无此行 | 「观测到订阅 #N 有消耗,但尚无对应登记——请核对补录」 |
| 正常 | 均有登记 | 不显示 |
- 只提示不回填;`subscriptions` + `topups` 皆空时**自动静默**(纯用量模式)