U8 产品原型站功能原型演示与产品需求文档 · 供开发与决策快速浏览

U8 Chat 虚拟卡模块 PRD

资产与钱包 18186 字 02_PRD-虚拟卡.md 更新于 2026-10-14
← 返回功能演示列表
项目内容
文档版本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 张」提示),右上角 + 同效。一张卡都没有时展示空态 + 添加入口。

可办理的卡产品:作为列表直接嵌在「银行卡(无卡空态 / 可办理列表)」页内,每张产品卡展示产品名、卖点、开卡费与起充门槛,卡内带「立即申请」小按钮;点卡片信息区进入卡产品详情(完整费率与权益 + 底部「立即申请」主按钮)。

层级关系:卡片首页「卡+」→ 我的卡(看卡 + 加卡)→ 添加银行卡 → 可办理列表(卡上点「立即申请」)→ 判断持卡人 → 开卡申请页 → 支付 → 开卡成功。

两条硬规则:

  1. 「立即申请」有两个入口,触发同一动作:① 可办理列表的卡片上有小按钮(快捷路径);② 卡产品详情页底部有主按钮(看完费率后的决策入口)。不是两条流程,点击后都走「判断持卡人 → 确认开卡弹窗」。
  2. 「申请列表」只放我的申请记录,从 ☰ 更多菜单独立进入,开卡流程任何一步都不应跳到申请列表。

申请列表:顶部显示「已有 N 张,还可申请 M 张(上限 3 张)」;下方为我的申请记录(审核中 / 已通过 / 已拒绝 + 拒绝原因)与「申请新卡 · 可办理的银行卡」。

办理第二张卡的入口:卡片首页右上角「卡+」→ 我的卡 →「添加银行卡」(右上角 + 亦可)。统一先落到「我的卡」,让用户看到现有卡片,再决定加卡。


3.3 卡产品详情 / 办理

展示内容:

  • 卡面大图 + 产品名
  • 核心卖点(绑卡支付、支持场景:Apple Pay / 支付宝 / 微信 / 订阅类等)
  • 费用与门槛(具体数值):
项目U8 环球消费卡U8 尊享支付卡
开卡费10.00 USDT30.00 USDT
起充金额20.00 USDT50.00 USDT
消费手续费免费免费
跨境交易费2%(非 USD 交易)2%
充值换汇点差0.5%0.5%
ATM 取现费1%1%
年费无无
  • 「立即申请」主按钮

3.4 持卡人管理

  • 持卡人是独立实体,一个用户可管理多个持卡人(参考 QQlink,持卡人可增减、可切换)。
  • 列表:持卡人姓名、证件类型、状态(待完善 / 已完善 / 审核中 / 已通过)。
  • 操作:新增持卡人、编辑、设为默认。
  • 「添加持卡人」进入资料填写。

3.5 持卡人资料填写

字段必填说明

字段采集原则

  1. 只采集 THPay Ⅰ类卡开卡接口中标记为必填(M)或条件必填(C)的字段,接口没有的一律不采集。
  2. 所有字段初始为空,不预填任何示例数据——原型演示与真机一致,用户必须实际逐项填写。
  3. 任一必填项为空时「下一步」置灰,不允许跳过用户的实际操作步骤。
  4. 用户在资料页填写的英文姓 / 名会回显到卡面、开卡申请页与卡信息页,保证前后一致。

① 身份信息

字段接口字段必填
英文姓lastNameEnM
英文名firstNameEnM
出生日期birth(yyyy-MM-dd)M
国籍 / 地区countryCode + countryCodeNameM

② 证件信息

字段接口字段必填
证件类型documentType(ID_CARD / PASSPORT)M
证件号码certNumberM
证件截止日certEndDate(yyyy-MM-dd)M

身份证与护照在接口中使用同一组字段,区别只在 documentType 与上传的影像。

③ 联系方式

字段接口字段必填
邮箱emailM
预留手机号区号cardPhoneCodeM
预留手机号cardPhoneM

④ 开卡密码

字段接口字段必填
6 位数字密码pinM
  • 使用 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/28123

复制卡号不是独立功能:只有在校验通过、完整卡号展示期间,卡号右侧才出现复制小图标(⧉);掩码状态下不提供任何复制入口。整卡模块不设独立的「复制卡号」按钮。复制动作与查看动作一并记入审计日志。 复制图标只出现在卡片首页与卡信息页;交易详情页只用于查账,不提供复制。

  • 唯一入口:卡片首页的「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简化注册卡—
卡 API3DS 信息确认/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覆盖主流消费场景,同时控制单卡风险敞口
4KYC 方案复用 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换汇展示换汇独立成页,同屏展示方向 / 参考汇率 / 点差 / 手续费 / 预计入卡,并强制免责说明接口不返回汇率,必须让用户理解"预计"与"实际"的差异,避免汇率类客诉
213DS 交易确认本期不做,列入二期;先向对方确认 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
样式字号字重用途
标题18ptBold模块大标题
小标题16ptBold小标题文字
正文15ptRegular正文文本
次文本14ptRegular次要文本
副文本12ptRegular副文本
辅助文字11ptRegular辅助文字、描述信息

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 / 证件影像必须记录并按条数告警
双人复核资金类操作(上分 / 下分、调账)强制双人

附:待补充内容

  • 卡面视觉设计(需设计出图,含浅色 / 暗黑两套卡面)
  • 全部错误码 → 用户可读文案映射表
  • 测试用例(正常流程 / 支付失败 / 开卡被拒 / 回调幂等 / 对账差异 / 并发操作)
  • 开卡、充值、转出的端到端埋点方案
  • 邮箱绑定与管理流程(二期):绑定 / 换绑 / 验证码校验、邮箱可用性校验、未绑定时的引导路径
  • 敏感信息查看的审计报表(按人、按卡、按次)