| 项目 | 内容 |
|---|---|
| 文档版本 | v1.1(可评审稿) |
| 编制日期 | 2026-10-13 |
| 模块归属 | 资产(Wallet)→ 银行卡 |
| 读者 | 产品、研发、测试、运营、风控、设计 |
| 配套文件 | 客户端原型 u8card_demo_v2.html、后台原型 u8card_admin_demo.html;设计 token 见第 9 节 |
| 依赖系统 | THPay 商户开放平台(发卡系统) |
| 状态 | 可评审稿。关键决策已按建议口径落地(见第 8 章),可直接进入评审与排期 |
| 本期范围 | 开卡 + 出示卡信息。消费由用户把卡绑定到第三方支付平台后完成,本 App 不承载消费流程(详见 §3.16) |
1. 业务概述
1.1 产品定位
在 U8 Chat 的资产模块内新增「银行卡」能力:用户用账户内的数字资产(USDT 等)申请一张可在全球消费的虚拟卡(Visa / Mastercard 通道),用于境外订阅、广告投放、海淘、跨境消费等场景。
产品形态参考:QQlink 的「银行卡」模块(卡列表 → 卡产品 → 持卡人 → 资料 → 证件 → 支付 → 开卡 → 卡详情 → 交易)。
1.2 系统角色与边界
| 角色 | 职责 |
|---|---|
| 用户 | 在 U8 Chat 内申请、充值、查看卡片与交易 |
| U8 Chat 客户端 | 全部交互界面;持卡人管理、资料填写、交易展示 |
| U8 Chat 服务端 | 用户资料与 KYC 留存、用户资金账本、调用发卡系统接口、接收回调、日终对账 |
| THPay 发卡系统 | 发卡、卡账户记账、卡充值/转出、交易与费用回调 |
| 卡组织 | 受理授权与清算 |
边界要点:发卡系统不直接接触终端用户;用户资金由 U8 Chat 侧持有与管理,卡内余额由我方发起充值产生。
1.3 资金链路
核心原则:U8 钱包是唯一资金来源,也是唯一的回流终点。 卡模块不新建资金池,所有钱都从钱包进、回钱包出。
┌──────────────────────────────────────────┐
│ U8 钱包(USDT) │
│ 充值能力复用「资产模块」已有流程 │
└──────────────────────────────────────────┘
▲ │ ▲
① 链上充值 │ ② 开卡扣款 ③ 卡充值扣款 │ ④ 卡转出回流
(已有能力)│ 30 USDT 用户输入金额 │ 卡内余额
│ (10 开卡费 + │ │
│ 20 预充值) ▼ │
│ 换汇 USDT→USD
│ │
│ ▼
│ ┌──────────────────┐
└─────────────────────│ 用户卡账户(USD) │
└──────────────────┘
│
⑤ 用户消费
▼
第三方支付平台/商户
(不在本 App 内)
五条资金路径
| # | 路径 | 说明 |
|---|---|---|
| ① | 链上 → U8 钱包 | 复用资产模块已有的「充值 USDT」能力,卡模块不重复建设 |
| ② | U8 钱包 → 开卡 | 开卡从钱包扣款(开卡费 10 + 预充值 20 = 30 USDT) |
| ③ | U8 钱包 → 卡内 | 卡充值:钱包扣 USDT → 换汇 USD → 转入卡内 |
| ④ | 卡内 → U8 钱包 | 卡转出:卡内余额回到钱包;也可选择提现到银行卡 |
| ⑤ | 卡内 → 商户 | 用户绑卡到第三方支付平台后消费,本 App 不承载 |
关键设计
- 钱包是唯一资金来源:开卡与卡充值都只从 U8 钱包扣款,不引入第二套资金入口。
- 钱包余额不足时:在开卡确认弹窗与卡充值页直接给「去充值」入口,跳转资产模块的 USDT 充值流程;卡模块不自建充值页。
- 对外统一叫「U8 钱包」,不使用「平台账户」「我方账户」等内部说法。
- 服务端记账:每次扣款先落「对用户的负债」再对外划出资金,保证账实一致。
- 资金回流:卡内未消费余额通过「卡转出」回到 U8 钱包,可再次用于开卡或充值。
2. 信息架构
2.1 入口与导航
| 位置 | 内容 | 说明 |
|---|---|---|
| 资产首页 | 新增「银行卡」功能位 | 作为第 5 个功能位,与「提现 / 充值 / 闪兑 / 交易历史」并列 |
| 资产首页 · 我的资产 | 卡内余额不计入总览 | 卡片独立展示余额,避免与链上资产混算 |
| 银行卡(卡片首页) | 模块主页 | 版式参照 QQlink:卡面(余额 + 小眼睛)+ 4 个操作 + 交易记录 + 立即充值 |
| 我的卡包 / 申请列表 | 次级页面 | 由卡片首页右上角 💳 / ☰ 进入 |
| 右上角入口 | 仅卡片首页有 | 其余页面只用左上角返回,避免入口泛滥 |
2.2 页面清单
客户端 · 新增 24 个页面
说明:以下所有页面的字段 / 列表初始均为空,演示必须由使用者实际填写或上传,不预填任何数据。
| # | 页面 | 说明 |
|---|---|---|
| 1 | 银行卡(卡片首页) | 卡面 + 余额(小眼睛)+ 4 个操作 + 交易记录 + 立即充值;右上角「卡+」= 我的卡 |
| 2 | 银行卡(无卡空态 / 可办理列表) | 新用户首页:空态引导 + 可办理的卡产品,每张卡上带「立即申请」 |
| 3 | 持卡人 · 空态 | 还没注册持卡人:解释持卡人是谁 + 添加持卡人(注册完到「持卡人创建成功」页) |
| 4 | 更多菜单(☰) | 我的卡 / 申请列表 / 持卡人 / 设置 / 客服 |
| 5 | 我的卡 | 展示现有卡片 + 「添加银行卡」入口(含空态) |
| 6 | 申请列表 | 仅我的开卡申请记录。独立入口:☰ 更多菜单(开卡流程不经过本页) |
| 7 | 卡产品详情 | 完整费率与权益 + 底部「立即申请」主按钮 |
| 8 | 持卡人管理 | 列表 + 添加,支持多持卡人 |
| 9 | 持卡人资料填写 | 身份 / 证件 / 联系方式 三组 |
| 10 | 证件类型选择 | 身份证 / 护照,联动后续字段 |
| 11 | 证件影像上传 | 按证件类型切换上传位 |
| 12 | 持卡人创建成功 | 成功反馈 + 「去申请银行卡」;不自动跳进开卡流程 |
| 13 | 确认开卡(弹窗) | 点「立即申请」后弹出的确认弹窗:卡产品 + 持卡人 + 费用明细 + 支付方式 |
| 14 | 确认付款(弹窗) | 订单金额 + 支付方式 + 面容 ID / 资金密码 |
| 15 | 开卡结果 | 成功 / 失败 / 审核中 |
| 16 | 卡信息(查看卡详情) | 卡号 / 有效年月 / CVV 默认全掩码、账单地址 |
| 17 | 修改账单地址 | 国家 / 省 / 市三级级联 |
| 18 | 卡充值(输入金额) | 选卡 + 输入充值金额(第一步) |
| 19 | 换汇确认 | 换汇独立页面:方向、参考汇率、点差、预计入卡、免责说明 |
| 20 | 充值结果 | 处理中 / 成功 / 失败,以 Webhook 回调为准 |
| 21 | 卡转出 | 回收卡内余额 |
| 22 | 销卡 | 用户自助注销,前置校验余额 |
| 23 | 邮箱验证码验证 | 查看卡号 / 有效年月 / CVV 前的校验 |
| 24 | 交易记录 / 交易详情 | 含费用逐项拆分 |
客户端 · 改造 1 个页面
| 页面 | 改动 |
|---|---|
| 资产首页 | 新增「银行卡」功能位(第 5 个) |
后台 · 新增 9 个界面
| # | 界面 | 说明 |
|---|---|---|
| # | 页面 | 说明 |
| --- | --- | --- |
| 1 | 开卡审核列表 | 筛选 + 批量通过 + 状态流转 |
| 2 | 审核详情抽屉 | 持卡人资料 + 证件影像 + 通过 / 拒绝 |
| 3 | 卡片管理列表 | 查询 + 冻结 / 上分下分 / 注销入口 |
| 4 | 卡片详情抽屉 | 卡片属性 + 资金 + 状态变更记录 |
| 5 | 冻结确认 | 原因必填 + 复核人 |
| 6 | 解冻确认 | 原因必填 + 显示原冻结信息 |
| 7 | 人工上分 / 下分 | 双人复核 + 主账户余额校验 |
| 8 | 卡片流水 | 含换汇汇率与费用明细 |
| 9 | 对账差异 | 长款 / 短款 / 单边账 + 调账 |
后台菜单归属:在现有「资产」组之后新增「银行卡」组,含上述 4 个页面。
3. 功能详述
3.1 资产首页 · 银行卡入口
- 在资产首页功能位新增「银行卡」图标 + 文案,作为第 5 个功能位。
- 未开卡:点击进入申请列表,直接引导办理。
- 已开卡:点击进入卡片首页(卡面 + 操作 + 交易记录)。
- 卡内余额不计入「我的资产」总览,卡片独立展示。
3.2 银行卡首页 / 我的卡包 / 申请列表
卡片首页(模块主页,版式参照 QQlink)
| 区域 | 内容 |
|---|---|
| 卡面 | 品牌 + 产品名、卡内余额(小眼睛控制显隐)、折合人民币、卡号(脱敏)、有效年月、CVV、卡组织标识 |
| 卡面右上 | 「查看此卡详情 ›」进入卡信息页 |
| 操作区 | CVV 查看 / 充值 / 转出 / 销卡(均为用户可自主执行的动作) |
| 交易记录 | 商户、金额、状态、类型标签、时间;点「›」进全部 |
| 底部 | 「立即充值」常驻按钮(最高频动作) |
| 右上角 | 「卡+」= 我的卡 / 加卡(先看现有卡,再加一张) ☰ 更多菜单 |
- 小眼睛只控制余额显隐,折合人民币同步隐藏;卡号脱敏与眼睛无关。
- 完整卡号与 CVV 需验证资金密码后展示,30 秒自动隐藏。
- 销卡前必须先将余额转出(余额不为 0 时按钮置灰)。
- 卡片被风控冻结时整页降级只读,隐藏操作区与底部按钮。
银行卡(无卡空态 / 可办理列表):一张卡都没有时,从资产首页点「银行卡」直接进入本页。页面顶部是空态引导(插图 + 「还没有银行卡」+ 能力说明),下方直接列出可办理的卡产品,每张卡上带「立即申请」按钮。无卡时不展示余额、卡号、操作区与交易记录。
持卡人 · 空态:开卡流程中还没有持卡人时进入。说明「持卡人是卡面上的那个人,未通过审核不能开卡」,并提供「添加持卡人」。
我的卡:先展示当前持有的卡(产品名、卡号脱敏、余额、主卡标识),下方为「添加银行卡」入口(带「还可申请 N 张 · 上限 3 张」提示),右上角 + 同效。一张卡都没有时展示空态 + 添加入口。
可办理的卡产品:作为列表直接嵌在「银行卡(无卡空态 / 可办理列表)」页内,每张产品卡展示产品名、卖点、开卡费与起充门槛,卡内带「立即申请」小按钮;点卡片信息区进入卡产品详情(完整费率与权益 + 底部「立即申请」主按钮)。
层级关系:卡片首页「卡+」→ 我的卡(看卡 + 加卡)→ 添加银行卡 → 可办理列表(卡上点「立即申请」)→ 判断持卡人 → 开卡申请页 → 支付 → 开卡成功。
两条硬规则:
- 「立即申请」有两个入口,触发同一动作:① 可办理列表的卡片上有小按钮(快捷路径);② 卡产品详情页底部有主按钮(看完费率后的决策入口)。不是两条流程,点击后都走「判断持卡人 → 确认开卡弹窗」。
- 「申请列表」只放我的申请记录,从 ☰ 更多菜单独立进入,开卡流程任何一步都不应跳到申请列表。
申请列表:顶部显示「已有 N 张,还可申请 M 张(上限 3 张)」;下方为我的申请记录(审核中 / 已通过 / 已拒绝 + 拒绝原因)与「申请新卡 · 可办理的银行卡」。
办理第二张卡的入口:卡片首页右上角「卡+」→ 我的卡 →「添加银行卡」(右上角 + 亦可)。统一先落到「我的卡」,让用户看到现有卡片,再决定加卡。
3.3 卡产品详情 / 办理
展示内容:
- 卡面大图 + 产品名
- 核心卖点(绑卡支付、支持场景:Apple Pay / 支付宝 / 微信 / 订阅类等)
- 费用与门槛(具体数值):
| 项目 | U8 环球消费卡 | U8 尊享支付卡 |
|---|---|---|
| 开卡费 | 10.00 USDT | 30.00 USDT |
| 起充金额 | 20.00 USDT | 50.00 USDT |
| 消费手续费 | 免费 | 免费 |
| 跨境交易费 | 2%(非 USD 交易) | 2% |
| 充值换汇点差 | 0.5% | 0.5% |
| ATM 取现费 | 1% | 1% |
| 年费 | 无 | 无 |
- 「立即申请」主按钮
3.4 持卡人管理
- 持卡人是独立实体,一个用户可管理多个持卡人(参考 QQlink,持卡人可增减、可切换)。
- 列表:持卡人姓名、证件类型、状态(待完善 / 已完善 / 审核中 / 已通过)。
- 操作:新增持卡人、编辑、设为默认。
- 「添加持卡人」进入资料填写。
3.5 持卡人资料填写
| 字段 | 必填 | 说明 |
|---|
字段采集原则
- 只采集 THPay Ⅰ类卡开卡接口中标记为必填(M)或条件必填(C)的字段,接口没有的一律不采集。
- 所有字段初始为空,不预填任何示例数据——原型演示与真机一致,用户必须实际逐项填写。
- 任一必填项为空时「下一步」置灰,不允许跳过用户的实际操作步骤。
- 用户在资料页填写的英文姓 / 名会回显到卡面、开卡申请页与卡信息页,保证前后一致。
① 身份信息
| 字段 | 接口字段 | 必填 |
|---|---|---|
| 英文姓 | lastNameEn | M |
| 英文名 | firstNameEn | M |
| 出生日期 | birth(yyyy-MM-dd) | M |
| 国籍 / 地区 | countryCode + countryCodeName | M |
② 证件信息
| 字段 | 接口字段 | 必填 |
|---|---|---|
| 证件类型 | documentType(ID_CARD / PASSPORT) | M |
| 证件号码 | certNumber | M |
| 证件截止日 | certEndDate(yyyy-MM-dd) | M |
身份证与护照在接口中使用同一组字段,区别只在
documentType与上传的影像。
③ 联系方式
| 字段 | 接口字段 | 必填 |
|---|---|---|
| 邮箱 | email | M |
| 预留手机号区号 | cardPhoneCode | M |
| 预留手机号 | cardPhone | M |
④ 开卡密码
| 字段 | 接口字段 | 必填 |
|---|---|---|
| 6 位数字密码 | pin | M |
- 使用 THPay 提供的公钥 RSA 加密后提交,禁止明文传输,我方不保存明文。
⑤ 证件影像(条件必填 C)
| 证件类型 | 上传 |
|---|---|
| 身份证 | 正面(人像面)idCardFrontPath + 反面(国徽面)idCardBackPath |
| 护照 | 资料页 passportHomePath |
⑥ 明确不采集的字段
| 不采集 | 原因 |
|---|---|
| 中文姓名 | 接口中无此字段。卡面使用英文姓/名;App 内展示复用账号实名,用户无需重复填写 |
| 性别 | 接口中无此字段 |
| 签发机关 | 接口中无此字段 |
| 出生地 | 接口中无此字段 |
邮寄信息(9 个 post* 字段) | 条件必填,仅实体卡需要;虚拟卡不采集 |
账单地址(12 个 bill* 字段) | 接口必填,但由实名资料自动填充,不在本页采集 |
busiRefId / userId / merchantProductId / timestamp | 系统级字段,由我方服务端生成 |
- 底部提示:「请确保所填信息真实有效,如因虚假信息导致开卡失败,将由您自行承担。」
- 保存后进入证件上传。
⑦ 对外文案规范(品牌隔离)
| 场景 | ❌ 不要这样写 | ✅ 这样写 |
|---|---|---|
| 加密说明 | 「使用 THPay 公钥 RSA 加密后提交」 | 「提交前会加密处理,我们不保存明文」 |
| 汇率免责 | 「以发卡系统当日结算汇率为准」 | 「以银行当日结算汇率为准」 |
| 充值状态 | 「已提交发卡系统」 | 「已提交」 |
| 费用归属 | 「换汇点差为我方收取,发卡系统不收取」 | 「换汇点差由平台收取」 |
| 3DS 验证 | 「THPay 的 3D Secure 验证」 | 「这是发卡行的安全验证(3D Secure)」(发卡行是通用词,可用) |
| 合规说明 | 「证件影像会加密存储并做访问审计,保存期限见 PRD 合规章节」 | 客户端不展示。加密、审计、保存期限、删除机制属开发与合规要求,只写在本文档 |
| 技术细节 | 「所有查看动作均留审计日志」「对应接口字段:billCountry」 | 客户端不展示。接口字段名、审计、幂等、对账、回调等一律不出现在界面 |
| 操作反馈 | 弹窗写「演示:已提交卡转出」 | 轻提示写真实结果:「转出申请已提交,到账后可在账单中查看」 |
客户端界面只放用户需要的信息:上游名称、接口字段名、审计/幂等/对账/回调等技术术语、合规条款、PRD 章节引用,一律不出现。 这些内容只允许出现在后台系统、内部文档与本 PRD 中。
⑧ 页面底部不放免责提示块
「请确保所填信息真实有效…」这类提示不放在资料页底部;如需披露,放在开卡协议或支付确认环节。
3.6 证件类型选择
- 弹层选择:身份证 / 护照;选择后「资料填写」与「证件上传」两页联动变化(见 3.5 / 3.7)。
- 证件类型须与账号实名信息一致,不一致时提示先完成实名变更。
- 一期仅支持身份证与护照;港澳台居民来往内地通行证、外国人永久居留证列入二期。
3.7 证件影像上传
- 身份证:正面(人像面)+ 反面(国徽面),两张。
- 护照:护照资料页(含照片、姓名、护照号、签发国、有效期与机读区);签证页 / 居留页选填。
- 单张 ≤ 10MB;上传前做清晰度与完整性校验;校验失败可重传。
- 合规要求:影像加密存储、访问审计、明确保存期限与删除机制。
- 复用 U8 Chat 现有实名资料,仅补充采集证件影像(身份证正反面 / 护照资料页),不重复采集已有字段。
3.8 提交与审核
- 提交后进入审核中态,页面展示申请单号、提交时间、预计时长。
- 状态流转:
审核中 → 已通过 / 已拒绝。 - 被拒:展示可读原因;资料问题支持修改后重新提交,无需重新付费。
- 超时未出结果:触发人工介入提示。
3.9 开卡信息确认
展示:卡产品、持卡人、开卡费、预充值金额(如有)、合计应付。
- 「确认」进入支付。
3.10 开卡支付
- 支付方式:U8 钱包——对外统一叫「U8 钱包」,文案不绑定具体币种;复用资产模块已有账户体系,不新接支付通道。
- 钱包余额不足时:「去支付」按钮替换为「钱包余额不足,去充值」,点击跳转资产模块的 USDT 充值流程。
- 展示:订单金额、支付方式、可用余额。
- 支付验证:系统级验证(面容 ID / 密码 / 资金密码)。
- 余额不足 / 支付失败:给出明确错误与重试入口。
3.11 开卡结果
- 成功:提示「开卡成功」→ 卡片自动加入「我的卡」→ 结果页只保留一个按钮「查看我的卡」(→ 卡片首页)。
- 不要放两个指向同一目标的按钮:早期设计里同时有「查看卡详情」与「返回银行卡列表」,两者落点相同且标签与实际页面不符,属冗余且会误导用户。
- 失败:说明原因与资金处理方式(是否退回、退回路径、时效)。
- 审核中:展示申请单号与预计时长。
3.12 卡信息(查看卡详情)
从卡片首页点「查看此卡详情 ›」或右上角进入,集中展示卡片全部属性。
| 分组 | 字段 |
|---|---|
| 卡面信息 | 卡号(4000 00•• •••• 2436)、有效年月(**/**)、CVV(***)、持卡人 |
| 卡片属性 | 卡组织、卡品牌、卡类型、币种、开卡时间 |
| 账单地址 | 国家 / 省 / 市、邮编、详细地址、联系电话(标注「由实名信息自动生成」) |
| 操作 | 查看卡号 / 有效年月 / CVV(唯一入口)、修改账单地址 |
敏感信息展示规则(核心)
卡号、有效年月、CVV 是绑卡的关键数据,泄露即可被他人盗绑,因此默认三项全部不展示:
| 状态 | 卡号 | 有效年月 | CVV |
|---|---|---|---|
| 默认 | 4000 00•• •••• 2436 | **/** | *** |
| 校验通过后(30 秒) | 4000 0012 3456 2436 ⧉ | 12/28 | 123 |
复制卡号不是独立功能:只有在校验通过、完整卡号展示期间,卡号右侧才出现复制小图标(⧉);掩码状态下不提供任何复制入口。整卡模块不设独立的「复制卡号」按钮。复制动作与查看动作一并记入审计日志。 复制图标只出现在卡片首页与卡信息页;交易详情页只用于查账,不提供复制。
- 唯一入口:卡片首页的「CVV 查看」按钮。
- 验证方式:邮箱验证码(6 位数字,发送至已绑定邮箱),不再使用资金密码。
- 三项必须同时展示、同时隐藏,不允许只放开其中一项。
- 验证通过后展示 30 秒自动隐藏。
- 验证码 60 秒内可重发、有效期 5 分钟、连续错误 5 次锁定 30 分钟。
- 未绑定邮箱时先引导绑定;邮箱绑定流程列二期补充(见附录)。
- 所有查看动作写审计日志:谁、何时、查看了哪张卡。
- 小眼睛只控制余额显隐,与卡号 / 有效年月 / CVV 无关。
验证方式的分工:查看敏感信息走邮箱验证码(信息泄露风险);支付与销卡走资金密码 / 生物识别(交易授权风险)。两者不混用。
3.13 卡充值(三步:充值 → 换汇确认 → 结果)
| 项 | 说明 |
|---|---|
| 输入 | 充值金额(源币种:USDT 等) |
| 换汇明细 | 支付币种 USDT → 到账币种 USD、参考汇率、换汇点差 0.5%、充值手续费(免)、预计入卡金额 |
| 汇率免责 | 必须标注「实际入卡金额以发卡系统当日结算汇率为准,差额多退少补」——因为卡充值接口不传汇率,我方无法在提交时锁定 |
| 确认 | 资金密码 / 生物识别 |
| 结果 | 成功 / 失败 / 处理中 |
- 拆成三个页面:① 卡充值(选卡 + 输金额)→ ② 换汇确认(换汇独立页面)→ ③ 充值结果。
- 换汇确认页必须同屏展示:换汇方向(USDT → USD)、参考汇率、换汇点差、充值手续费、预计入卡金额。
- 汇率免责:卡充值接口不含汇率字段,汇率由 THPay 内部按当日结算;页面必须写明「实际入卡金额以发卡系统当日结算汇率为准,差额多退少补」。
- 顺序:用户资金入我方账 → 我方充值至发卡系统 → 换汇 → 主账户 → 调卡充值接口 → 主账户扣款 → 卡账户增加 → 回调确认。
- 必须先开卡成功才能充值。
- 回调幂等;回调超时进入对账队列。
- 限额:单笔下限 20 USDT、单日上限 5,000 USDT、单卡余额上限 5,000 USD。
3.14 卡转出 / 提现
去向二选一:
| 去向 | 说明 | 到账 |
|---|---|---|
| U8 钱包 | 回到 U8 钱包余额,可用于再次开卡或充值 | 实时 |
| 银行卡 | 提现到本人银行卡,需换汇为 CNY。⚠️ 该路径依赖对方提供出金能力,当前文档无依据(见 §5.5) | T+0 ~ T+1 |
- 选择「银行卡」时需填:持卡人、银行卡号、开户行。
- 卡内未消费余额转出至我方账户(对应发卡系统「卡转出」)。
- 必须向用户明确披露:转出后资金停留在平台内,不能直接提现至银行卡。
- 存在未清算授权时不允许全额转出(需保留冻结金额)。
- 销卡是用户可自主执行的动作(QQlink 已把销卡放在卡片首页),与后台风控的「冻结」严格区分。
- 销卡前必须先完成转出;余额不为 0 时销卡按钮置灰。销卡不可恢复,需资金密码二次确认。
3.15 交易记录与交易详情
列表:按时间倒序;支持筛选(币种 / 类型 / 日期区间);空态展示。
详情字段:
| 字段 | 说明 |
|---|---|
| 交易金额 + 币种 | 原始交易金额 |
| 卡号 | 脱敏 |
| 商户名称 | 如 WECHAT_CN_CNY |
| 交易状态 | SUCCEEDED / 处理中 / 失败 |
| 交易时间 | |
| 交易号 | 用于申诉 |
| 余额 | 交易后卡内余额 |
| 费用明细 | 换汇汇率、跨境费、授权费、小额交易费等逐项拆分 |
两个阶段必须分开展示:授权(冻结)与结算(落账)是两条记录,金额可能不同。
3.16 本期范围界定
本期核心是两件事:开卡 + 出示卡信息。配套保留余额管理(充值 / 换汇)、账单查询与资金退出(转出 / 销卡)。
| 环节 | 是否在本期 | 说明 |
|---|---|---|
| 开卡全流程 | ✅ 核心 | 持卡人 → 资料 → 证件 → 确认开卡 → 支付 → 开卡成功 |
| 出示卡信息 | ✅ 核心 | 卡号 / 有效年月 / CVV,供用户绑定第三方支付平台 |
| 卡内余额管理(充值 / 换汇) | ✅ 必要 | 卡内没钱就无法消费。扣款来源是 U8 钱包,钱包充值复用资产模块已有能力 |
| 交易记录 | ✅ 保留 | 用户需要知道卡花了多少 |
| 消费本身 | ❌ 不在本 App | 消费发生在第三方支付平台(支付宝 / 微信 / Apple Pay / 境外网站),本 App 不承载消费流程 |
| 3DS 交易确认 | ❌ 本期不做 | 风险见下 |
| 卡转出 / 销卡 | ✅ 保留 | 用户的资金退出路径。不保留会导致用户的钱无法取出;转出回到 U8 钱包(或提现到银行卡),销卡前必须先完成转出 |
⚠️ 不做 3DS 交易确认的风险(需评估)
3DS 是发卡方在境外网站支付时触发的安全验证。接口 3DS信息确认(/v1/openapi/card/3ds/confirm)Ⅰ类卡明确支持,且需要持卡人在我方 App 内确认(通过 / 拒绝),验证码由 WebHook 下发。
本期不做意味着:境外网站支付一旦触发 3DS 挑战,无人可确认,该笔交易直接失败。
影响大小取决于渠道策略:
- 若对大部分境外交易强校验 3DS → 影响大,用户会认为「卡不能用」
- 若仅部分商户 / 部分金额触发 → 影响有限,可放二期
建议:联调阶段先向对方确认「3DS 触发比例、是否可配置豁免」。若触发比例高,建议把 3DS 提到一期。
该能力已完成设计(见下方附件说明),如确认需要可直接启用,无需重新设计。
附:3DS 交易确认设计(备查) 流程:收单行触发 → 对方 WebHook 下发
validateCode→ 我方推送站内消息 → 用户在 App 内核对商户 / 金额 / 卡号尾号 / 验证码 → 确认或拒绝 → 我方回传cardNo+validateCode+status(1 通过 / 2 拒绝)。 规则:有效期 5 分钟,超时自动失败且不影响卡内余额;用户不在线走站内消息 + 推送;同一笔重复确认必须幂等;全部动作留审计日志。
3.17 开卡申请:持卡人判断
点产品卡上的「立即申请」后,必须先判断当前账号有没有持卡人:
| 情况 | 处理 |
|---|---|
| 已有持卡人 | 直接进入开卡申请页(确认信息),展示当前持卡人;点持卡人行可切换其他持卡人 |
| 没有持卡人 | 先进入持卡人 · 空态 → 添加持卡人 → 资料填写 → 证件上传 → 持卡人创建成功页 → 用户点「去申请银行卡」回到可办理列表 → 再点「立即申请」→ 弹出确认开卡弹窗 |
- 创建持卡人与申请银行卡是两个独立动作,中间必须有「持卡人创建成功」页做分隔,不能一步跳进开卡流程。
- 确认开卡弹窗内容:卡产品 + 持卡人 + 开卡费 + 预充值 + 应付合计 + 支付方式 + 可用余额 + 取消 / 去支付。
- 确认开卡弹窗内卡产品行只做展示,不绑定任何跳转(避免误触发返回上一页)。
- 后续再开卡(第二张)时已有持卡人,直接进开卡申请页,不再出现持卡人空态。
3.18 首次使用完整流程(新用户从零到有卡)
这是新用户的完整链路,也是评审演示的主线:
| 步骤 | 页面 | 状态 | 说明 |
|---|---|---|---|
| 1 | 资产首页 | 无卡 | 点「银行卡」功能位 |
| 2 | 银行卡(无卡空态) | 无卡 | 「还没有银行卡」+ 可办理的卡产品(每张卡带「立即申请」) |
| 3 | 点卡片上的「立即申请」 | 无卡 | 判断:无持卡人 → 转第 4 步 |
| 4 | 持卡人 · 空态 | 无卡、无持卡人 | 「还没有持卡人」+ 添加持卡人 |
| 5 | (可跳过)卡产品详情 | 仅看费率与权益,无申请按钮 | |
| 6 | 持卡人资料填写 | 身份 / 证件 / 联系方式 | |
| 7 | 证件影像上传 | 持卡人建成 | 按证件类型上传 |
| 8 | 持卡人创建成功 | 持卡人已建立 | 成功反馈 + 「去申请银行卡」 |
| 9 | 可办理的银行卡列表 | 用户主动点卡片上的「立即申请」 | |
| 10 | 确认开卡(弹窗) | 卡产品 + 持卡人 + 费用明细 + 支付方式 | |
| 11 | 开卡支付 | 资金密码 / 面容 ID | |
| 12 | 开卡结果 → 卡片首页 | 有卡 | 卡片正式可用 |
- 第 4 步是必须的:没有持卡人不允许开卡,不能跳过。
- 第 7 步完成后持卡人即建立,先到持卡人创建成功页(第 8 步);由用户主动「去申请银行卡」再发起开卡,此后再次开卡不再出现持卡人空态。
- 二次开卡(办理第二张卡):卡片首页「卡+」→ 我的卡 →「添加银行卡」→ 可办理列表 → 卡上「立即申请」→ 已有持卡人,直接进开卡申请页。
4. 状态机
4.1 卡片状态(用户可见 4 态)
| 用户可见 | 含义 | 可用操作 |
|---|---|---|
| 审核中 | 申请已提交,等待发卡系统审批 | 查看进度、取消 |
| 正常 | 可正常使用 | 全部操作 |
| 冻结 | 由后台风控设置(用户不可自助) | 查看、账单(客户端只读) |
| 已注销 | 已注销 | 仅保留账单 |
发卡系统返回的状态枚举需映射到上述 4 态,映射表在联调后补全。
4.2 其他状态
| 对象 | 状态流 |
|---|---|
| 持卡人资料 | 待完善 → 审核中 → 已通过 / 已拒绝(可改后重提) |
| 开卡申请单 | 待支付 → 审核中 → 开卡中 → 成功 / 失败 |
| 充值订单 | 待处理 → 扣款中 → 入账中 → 成功 / 失败 / 待对账 |
| 转出订单 | 待处理 → 扣减中 → 入账中 → 成功 / 失败 / 待对账 |
| 交易 | 已授权 → 已清算 →(退款)已退款 / 已撤销 |
5. 接口映射(对接 THPay 商户开放平台)
5.1 THPay 官方接口清单(共 15 个,已逐一核对)
| 分类 | 接口 | 路径 |
|---|---|---|
| 公共 | 文件上传 | — |
| 公共 | 国籍编码信息 | — |
| 商户 API | 商户资产信息 | — |
| 卡 API | 注册卡 | — |
| 卡 API | 简化注册卡 | — |
| 卡 API | 3DS 信息确认 | /v1/openapi/card/3ds/confirm |
| 卡 API | 注销 | — |
| 卡 API | 卡信息查询(充值模式) | — |
| 卡 API | 卡信息查询(共享模式) | — |
| 卡 API | 卡充值 | /v1/openapi/card/recharge |
| 卡 API | 锁卡 / 解锁卡 | /v1/openapi/card/lock |
| 卡 API | 卡三要素 | — |
| 卡 API | 查询交易密码设置模式 / 交易密码设置 / 修改手机号 | — |
| 卡 API | 开户目的 / 职业信息 / 财富来源 | — |
| WebHook | 信息推送、交易类型定义 | — |
5.2 我方业务 → 接口映射
| 我方业务 | THPay 接口 | 适用卡类型 | 触发时机 |
|---|---|---|---|
| 资料字典 | 国籍编码信息 / 职业信息 / 财富来源 / 开户目的 | 通用 | 初始化缓存 |
| 证件上传 | 文件上传 | 通用 | 用户上传证件时 |
| 开卡 | 注册卡 | Ⅰ类卡 | 支付成功后 |
| 卡列表 / 卡详情 | 卡信息查询(充值模式) | Ⅰ类卡 | 列表、详情、轮询兜底 |
| 卡充值 | 卡充值(cardNo + amount + xid + timestamp + merchantProductId) | Ⅰ类卡 | 用户充值 |
| 冻结 / 解冻 | 锁卡 / 解锁卡 | Ⅰ / Ⅱ 类卡 | 后台风控操作(非用户自助) |
| 查看卡号 / 有效年月 / CVV | 卡三要素 | Ⅰ类卡 | 邮箱验证码校验通过后 |
| 邮箱验证码 发送 / 校验 | 我方自研(复用账号邮箱) | — | 用户点「CVV 查看」后 |
| 3DS 交易确认 | 3DS 信息确认(cardNo + validateCode + status) | Ⅰ类卡 | 收到 WebHook 的 3DS 挑战通知后 |
| 注销 | 注销 | Ⅰ类卡 | 余额转出后 |
| 资金监控 | 商户资产信息 | 通用 | 主账户余额监控、充值前置校验 |
| 异步通知 | 信息推送(WebHook) | 通用 | 卡状态、交易、费用、充值/转出回调 |
鉴权:RSA2048 私钥签名(SHA256withRSA → BASE64)写入请求头 x-access-token,另附 appId。
5.5 ⛔ 阻塞项:资金出卡的接口是否存在
「卡转出」是本方案中对用户资金安全的唯一保障。如果它不存在,用户的钱就是单向流入、无法取出——这属于产品能不能上的问题,不是优化项。
必须向 THPay 取得书面答复的四个问题
| # | 问题 | 不确认的后果 |
|---|---|---|
| 1 | 「赎回」对应的接口是什么? 触发条件、请求参数、到账时效、是否收费 | 卡内余额回不到钱包 |
| 2 | 「卡转出」有没有接口? 客服称卡账户支持转出,但公开文档无此接口 | 无法向用户承诺「可退」 |
| 3 | 赎回 / 转出后的资金落到哪里? 只回到商户主账户,还是可以指令出金? | 决定是"卡 → U8 钱包"还是"卡 → 主账户就断了" |
| 4 | 商户主账户能否对外出金? 通道、时效、限额 | ⚠️ 决定用户能否提现到银行卡;客服称「主账户仅支持充值不支持转出」 |
在得到答复前,「卡转出」与「提现到银行卡」两条路径均按"未证实"处理:
- 客户端可以先按设计稿实现,但上线前必须验证
- 若转出接口不存在,需重新评估产品可行性(用户资金无法退出)
补充澄清:文档中 Ⅰ类卡交易类型里的 「4 取现」 指用卡在 ATM 取现,与"提现到银行卡"不是一回事,不要混淆。
5.3 交易类型与状态(Ⅰ类卡)
交易类型(6 种):1 充值/抵押、2 消费、3 退款、4 取现、5 赎回、6 管理费
交易状态(7 种):1 成功、2 失败、3 处理中、4 已入账、5 未入账、6 支付失败、7 取消
客户端交易列表的状态文案需覆盖这 7 种,其中「已入账 / 未入账」要明确区分,避免用户误判。
5.4 官方接口清单中未覆盖的两项能力
以下两项在公开 API 文档中不存在对应接口,但业务上需要,须向 THPay 索取:
| 能力 | 现状 | 处理方式 |
|---|---|---|
| 换汇 / 汇率 | 卡充值接口只有 amount,无源币种、目标币种、汇率参数。说明换汇由 THPay 内部按当日汇率完成 | 我方无法在提交时算出确切入卡金额。客户端「预计入卡」必须标注"以实际入账为准,差额多退少补";换汇点差由我方在充值前先扣,属我方定价 |
| 卡转出 / 提现到银行卡 | 公开清单无转出 / 提现 / 转账到银行卡类接口(全文搜「提现」「转出」「银行卡」「结汇」「购汇」「打款」均为 0 命中)。唯一线索:Ⅰ类卡交易类型里存在 「5 赎回」,与 「1 充值/抵押」 配对——说明Ⅰ类卡是充值/抵押模式,赎回很可能是取回抵押资金的机制,但文档只给了名称,没有定义、参数与接口。客服口径为"用户卡账户支持充值和转出" | ⛔ 这是阻塞项,详见下方四个必问问题 |
6. 数据模型(关键实体)
| 实体 | 关键字段 |
|---|---|
| 持卡人 | 持卡人ID、用户ID、姓名、英文姓/名、性别、出生日期、证件类型/号码/有效期、邮箱、手机号、审核状态 |
| 证件影像 | 持卡人ID、类型、文件URL、上传时间、保存期限 |
| 卡片 | 卡ID、卡号(脱敏 + 密文)、BIN、卡组织、币种、状态、卡产品ID、创建时间 |
| 开卡申请单 | 流水号、持卡人ID、卡产品ID、支付单号、状态、拒绝原因 |
| 卡账户账本 | 卡ID、可用余额、冻结金额、变动明细 |
| 用户资金账本 | 用户ID、我方对用户的负债、充值/消费/退款流水 |
| 主账户账本 | 主账户余额、充值、扣款、转出流入 |
| 交易流水 | 交易号、卡ID、类型、金额、币种、授权/结算阶段、状态、商户名 |
| 费用明细 | 交易号、费用类型、金额 |
| 对账记录 | 对账日、差异类型、处理状态、调账留痕 |
7. 非功能需求
| 类别 | 要求 |
|---|---|
| 幂等 | 所有写接口与回调以业务流水号为幂等键 |
| 对账 | 日终自动对账,差异自动归集并告警 |
| 汇率与费用 | 汇率与各项费用在账单中逐项展示,可向用户解释 |
| 安全 | 卡号 / 有效年月 / CVV 默认全部掩码,需邮箱验证码校验后同时展示 30 秒;三项加密存储;证件影像加密 + 访问审计;敏感信息查看逐条留痕 |
| 时效 | 开卡 2 小时内出结果、充值 5 分钟内到账、转出 T+0、退款以卡组织清算周期为准 |
| 品牌隔离 | 客户端 UI 不得出现上游发卡方名称、系统名或任何内部术语。对外统一表述为「银行」「平台」「卡组织」。汇率、清算、发卡等表述一律用用户能懂的说法;上游名称只允许出现在后台与内部文档中 |
| 双主题 | 全部页面需支持浅色 / 暗黑两套色板(见第 9 节) |
| 多语言 | 一期仅中文,英文版列入二期 |
8. 关键决策与建议
以下 16 项已在原型与本文档中按建议方案落地。如与业务判断不一致,请在评审时指出即可调整。
| # | 决策事项 | 建议方案 | 理由 / 影响 |
|---|---|---|---|
| 1 | 卡产品定义 | 虚拟卡为主,实体卡二期;币种 USD;卡组织 VISA;2 档产品 | THPay 2026 年主推 Visa 通道;两档覆盖基础与高阶需求,避免一期铺太宽 |
| 2 | 定价 | 开卡费 10 USDT、起充 20 USDT、消费手续费 0、跨境 2%、换汇点差 0.5%、ATM 1%、年费 无 | 按 THPay 成本(虚拟卡 3 USD/张、跨境 2%、ATM 1%)留出毛利;开卡费显著低于 QQlink 的 30 USDT,形成获客优势 |
| 3 | 额度模型 | 充值 1:1 实时入账(扣点差后);单笔下限 20 USDT、单日上限 5,000 USDT、单卡余额上限 5,000 USD | 覆盖主流消费场景,同时控制单卡风险敞口 |
| 4 | KYC 方案 | 复用 U8 Chat 现有实名,叠加证件影像采集;我方运营审核 + 发卡系统校验 | THPay Ⅰ类卡不支持简化开卡,必须完整 KYC;复用现有实名可显著缩短流程 |
| 5 | 信息架构 | 入口放资产首页第 5 个功能位;卡内余额不计入资产总览 | 与现有 4 个功能位同权,不破坏首页结构;避免与链上资产混算 |
| 6 | 支付方式 | 开卡费与充值统一走 USDT 余额 | 复用资产模块已有账户体系,无需新接支付通道 |
| 7 | 账单地址 | 由实名资料自动生成,客户端不出现该屏;可在卡信息页修改 | 满足接口 12 个必填字段,同时把开卡表单从 4 组压到 3 组,提升转化率 |
| 8 | 卡片与持卡人数量 | 单用户最多 3 张卡;持卡人最多 5 个 | 覆盖多卡场景,同时控制运营与风控成本 |
| 8.1 | 空态设计 | 无卡 → 卡片首页空态(引导 + 产品);无持卡人 → 持卡人空态(解释 + 添加) | 新用户不会面对空白页;「持卡人是谁」必须解释,否则用户以为在重复实名 |
| 9 | 销卡 | 允许用户自助销卡;前置校验余额为 0、无未清算授权 | QQlink 已把销卡放在卡片首页,属用户可自主执行的动作 |
| 10 | 冻结 / 解冻 | 仅后台风控操作,客户端不出现;原因必填 + 双人复核 | 风控动作不应下放给用户,也便于追责与审计 |
| 11 | 时效目标 | 开卡 2 小时内出结果、充值 5 分钟内到账、转出 T+0、退款以卡组织周期为准 | 与行业水平对齐,可直接作为 SLA 承诺 |
| 12 | 多语言 | 一期仅中文,英文版二期 | 目标用户以中文为主,控制一期工作量 |
| 13 | 对账口径 | 以发卡系统清算文件为准,我方账本为被核对方;日终自动对账 + 差异闭环 | 行业标准做法,双方责任边界清晰 |
| 14 | 成本口径 | 技术支持费按 2,000 USD/月 计入;Visa 保证金 10,000 USD 按不可退计入;跨境费与交易手续费不分成 | 采用保守口径测算,避免高估收益 |
| 15 | 反洗钱 | 我方承担用户侧 KYC 与可疑交易识别上报,THPay 承担发卡侧 | 用户资金由我方持有,责任自然落在用户侧 |
| 16 | 技术栈 | 原型交付静态 HTML,不约束实现;客户端按现有 U8 Chat 技术栈开发 | 原型仅用于评审 |
| 17 | 敏感信息查看的验证方式 | 卡号 / 有效年月 / CVV 默认全部掩码,通过邮箱验证码校验后同时展示 30 秒;入口只有卡片首页的「CVV 查看」按钮 | 这三项是绑卡关键数据,泄露即可被盗绑;邮箱验证码比资金密码更贴合"信息查看"场景,也便于后续做异地登录提醒 |
| 18 | 验证方式分工 | 查看敏感信息 → 邮箱验证码;支付 / 销卡 → 资金密码或生物识别 | 信息泄露风险与交易授权风险分开治理,不混用同一凭证 |
| 19 | 表单字段 | 只采集接口标记为 M / C 的字段:身份 4 项、证件 3 项、联系方式 3 项、开卡密码 1 项、证件影像按类型。接口没有的中文姓名、性别、签发机关、出生地一律不采集 | 减少用户填写负担;多填的字段接口不用,白增加流失 |
| 20 | 换汇展示 | 换汇独立成页,同屏展示方向 / 参考汇率 / 点差 / 手续费 / 预计入卡,并强制免责说明 | 接口不返回汇率,必须让用户理解"预计"与"实际"的差异,避免汇率类客诉 |
| 21 | 3DS 交易确认 | 本期不做,列入二期;先向对方确认 3DS 触发比例与是否可豁免后再定 | 本期只做开卡与出示卡信息,消费在第三方平台完成。风险:境外支付若触发 3DS 且无人确认,该笔交易会失败 |
| 22 | 资金链路 | U8 钱包是唯一资金来源与回流终点:链上充值复用资产模块 → 开卡/卡充值从钱包扣款 → 卡转出回钱包。卡模块不新建资金池、不自建充值页 | 避免两套资金入口导致对账复杂、账实不符;充值能力已有,重复建设是浪费 |
| 23 | 卡转出 / 销卡 | 保留。销卡前强制校验余额为 0、无未清算授权;转出支持「U8 钱包」与「银行卡」两个去向 | 这是用户的钱唯一的退出路径,砍掉会造成资金单向流入无法取出,属硬伤 |
| 24 | 复制卡号 | 不设独立复制入口;只有完整卡号展示时,卡号右侧出现复制小图标(仅卡片首页与卡信息页) | 复制是"看过之后"的附属能力,掩码状态下没有可复制的东西;减少一处敏感信息出口 |
需向 THPay 取得书面确认的事实项
以下为对方侧事实,不影响本方案成立(模型已按保守口径计入),在合同签署前一并确认:
- 技术支持费 2,000 USD 的计费周期(月度 / 一次性)
- Visa 保证金 10,000 USD 的退还条件与时限
- 跨境费 2% 与交易手续费的商户分成机制
- 开卡时效与历史拒绝率
- 国家 / 省 / 市字典接口的提供方式与更新频率
- 卡片申请费 6,500 / 卡面设计费 3,000 / 年度项目费 3,000 是否适用于纯虚拟卡
- 「卡转出 / 赎回」接口文档(最高优先级):客服称卡账户支持转出,但公开 API 清单无此接口;Ⅰ类卡交易类型里有「5 赎回」,需索取定义与接口
- 主账户能否对外出金:客服称「主账户仅支持充值不支持转出」,若属实则用户无法提现到银行卡
- 汇率获取方式:卡充值接口不传汇率,需确认能否提供下单前的参考汇率(否则客户端只能展示"预计入卡")
- 提现到银行卡的可行性:主账户是否支持对外出金、出金通道与时效
9. 设计规范(Token,取自 Figma「iOS规范」)
9.1 颜色
浅色模式
| 语义 | 色值 |
|---|---|
| 主题色 | #6047FF(另有 70% / 30% 透明度档) |
| 辅助色 · 绿 | #14C669 |
| 辅助色 · 橙 | #FC980E |
| 辅助色 · 蓝 | #008BFF |
| 一级文字 | #222222 |
| 次级文字 | #979797 |
| 备注文字 | #8E8E93 |
| 提示色 | #FF0D19 |
| 描边色 | #EEEEEE |
| 分割线 | #F5F5F5 |
| 灰蓝色 | #9AA0AB |
| 不可点击色 | #BCC0C7 |
| 气泡色 | #FBFBFE |
| 背景色 | #FFFFFF |
| 灰蓝 | #CACDD4 |
| 浅灰 | #F2F1F5 |
| 输入框背景 | #EFEFEF |
| 毛玻璃背景 | #FDFDFD |
暗黑模式
| 语义 | 色值 |
|---|---|
| 主题色 | #6047FF |
| 一级文字 | #FFFFFF |
| 次级文字 | #979797 |
| 备注文字 | #8E8E93 |
| 提示色 | #FF0D19 |
| 分割线 | #2E2E30 |
| 气泡色 | #FBFBFE |
| 背景色 | #000000 |
| 输入框背景 | #191919 |
| 毛玻璃背景 | #1D1D1D |
9.2 字体
- 字体族:PingFang SC(苹方)
- 行高 = 字号 + 6
| 样式 | 字号 | 字重 | 用途 |
|---|---|---|---|
| 标题 | 18pt | Bold | 模块大标题 |
| 小标题 | 16pt | Bold | 小标题文字 |
| 正文 | 15pt | Regular | 正文文本 |
| 次文本 | 14pt | Regular | 次要文本 |
| 副文本 | 12pt | Regular | 副文本 |
| 辅助文字 | 11pt | Regular | 辅助文字、描述信息 |
10. 后台(运营 / 风控)功能清单
客户端只保留用户能自主执行的动作;风控、审核、资金调整、对账均为后台能力。 注:现有 Figma 文件(U8 Chat 2.0)中的 Web 端为 Web 客户端,不含后台设计,本章功能需从零设计。
10.1 开卡与 KYC 审核
| 功能 | 说明 |
|---|---|
| 开卡申请列表 | 按状态 / 时间 / 持卡人筛选,支持批量操作 |
| 资料审核 | 查看持卡人资料与证件影像(脱敏 + 审计留痕),通过 / 拒绝(必填原因) |
| 拒绝与重提 | 拒绝原因回传客户端;用户修改后可重新提交,不重复收费 |
| 人工复核 | 机审不通过或超时未出结果的转人工 |
10.2 卡片管理
| 功能 | 说明 |
|---|---|
| 卡片列表 / 查询 | 按用户、卡号、状态、产品筛选 |
| 冻结 / 解冻 | 调用锁卡 / 解锁卡接口;记录操作人、原因、时间 |
| 注销 | 前置校验卡内余额已转出、无未清算授权 |
| 换卡 / 补卡 | 卡号更换与重新发放 |
| 卡详情 | 卡组织、卡号(脱敏)、持卡人、开卡时间、当前余额 |
10.3 持卡人管理
| 功能 | 说明 |
|---|---|
| 持卡人列表 | 按用户 / 证件 / 审核状态筛选 |
| 资料查看 | 敏感字段脱敏,查看完整证件影像需二次授权并留审计 |
| 证件影像管理 | 保存期限到期自动清理、手动删除留痕 |
10.4 资金管理
| 功能 | 说明 |
|---|---|
| 用户卡账户查询 | 卡内余额、冻结金额、变动明细 |
| 人工上分 / 下分 | 给卡账户加减余额(对应发卡系统充值 / 扣减),需双人复核 |
| 主账户余额监控 | 低于阈值告警 + 补款流程(充值前置校验依赖此余额) |
| 充值 / 转出订单管理 | 查询、失败重试、卡单处理 |
10.5 交易管理
| 功能 | 说明 |
|---|---|
| 交易流水查询 | 按卡号 / 时间 / 商户 / 状态筛选 |
| 交易详情 | 含费用逐项明细(换汇、跨境费、授权费等) |
| 异常交易处理 | 手工止付、退款 / 撤销发起 |
| 申诉处理 | 客服接用户申诉,关联交易号与证据 |
10.6 对账与差错
| 功能 | 说明 |
|---|---|
| 日终自动对账 | 我方账本 vs 发卡系统流水 |
| 差异明细 | 分类展示:长款 / 短款 / 单边账 |
| 调账 | 人工调账必须留痕(谁、何时、依据) |
| 对账文件 | 下载与归档 |
10.7 风控与配置
| 功能 | 说明 |
|---|---|
| 卡产品配置 | 费率、起充金额、单卡 / 单日限额 |
| 调价 | 生效时间 + 变更留痕,历史订单按原费率 |
| 交易规则 | 异常交易规则、限额策略 |
| 黑名单 | 持卡人 / 证件 / 设备维度 |
10.8 权限与审计
| 功能 | 说明 |
|---|---|
| 角色权限 | 超级管理员 / 运营 / 客服 / 风控,最小权限原则 |
| 操作日志 | 所有写操作留痕,可检索 |
| 敏感信息审计 | 查看完整卡号 / CVV / 证件影像必须记录并按条数告警 |
| 双人复核 | 资金类操作(上分 / 下分、调账)强制双人 |
附:待补充内容
- 卡面视觉设计(需设计出图,含浅色 / 暗黑两套卡面)
- 全部错误码 → 用户可读文案映射表
- 测试用例(正常流程 / 支付失败 / 开卡被拒 / 回调幂等 / 对账差异 / 并发操作)
- 开卡、充值、转出的端到端埋点方案
- 邮箱绑定与管理流程(二期):绑定 / 换绑 / 验证码校验、邮箱可用性校验、未绑定时的引导路径
- 敏感信息查看的审计报表(按人、按卡、按次)