# 9.17-驳回处理闭环与交易体验收口

---

## 1. 背景与目标

### 1.1 业务背景与问题

**三端通用**

1. **失败/错误原因泄露通道品牌**。失败原因、错误原因、驳回原因文本直接透出易宝、易宝国际、yeepay、PingPong 及其大小写变体，能从页面文案推断内部通道路由；此前敏感词过滤只覆盖驳回原因，失败与错误原因未治理。
2. **交易查询无导出、维度不足**。三端来帐、付款、提现、换汇四个交易查询均无导出，统计靠截图手抄；来帐无 VA 所属地区，付款/提现无清分方式、汇率、到账银行所在地区、商户费率，对账缺维度。

**商户平台**

3. **驳回订单不可见、不可处理、无主动提醒**。在入金订单看不到被驳回后订单的状态与驳回原因，除来账通知外，被驳回、入账成功、发起退款关键节点均未通知用户。
4. **B2B 结汇订单缺申报凭证自助下载**。平台已从通道收集「国际收支申报单」（报关明细文件），商户在提现订单明细无法自行下载，只能找运营转发；API 商户也无下载接口。
5. **合同列表缺买方与结汇维度**。列表无「买方名称」列与筛选，无法按买方定位合同；「是否结汇」展示与筛选口径需一并回归确认。
6. **合同上传格式受限**。仅支持 jpg/jpeg/png/pdf，zip、rar、7z 压缩包要拆包逐份重传。
7. **「我的账户」详情字段不全、复制不便**。商户付款/提现填写收款行信息时要从账户详情复制行内容，展示字段缺开户行要素，全部复制也未按显示名输出，核对与填写都费劲。
8. **交易密码输错与锁定的提示不可用**。验密输错只提示「密码错误」，不提示还剩几次；连续输错超限后只有笼统锁定提示，没有解锁路径；重置密码后锁定也不自动解除，商户被卡在资金操作外。
9. **退款完成拿不到退款证明**。退款到账后商户做账、对账需要退款凭证，页面没有下载入口，只能找运营要。
10. **电商店铺信息录错无法修改、不用了无法删除**。店铺列表只支持新增与绑定收款账户，填错只能重建，废弃店铺越积越多。

**代理商平台**

11. **名下商户驳回不同步**。来帐列表看不到驳回状态与原因，业务员无法主动辅导商户补资料。
12. **拓展被默认结算价门禁阻断**。出示邀请链接、单机构设结算价、机构服务商注册在「默认结算价未配置」时均被拦。

**运营平台**

13. **驳回不同步到运营端**。「来帐管理」看不到驳回状态与原因，跟进处置要跨系统核对。
14. **费率审核与修改记录字段不全**。记录详情缺变更前后值、审核与生效信息等字段，核对要跨页面拼凑。

### 1.2 目标与成功标准

| # | 目标 | 成功标准（业务可观察结果） | 受益角色 | 关联验收 |
|---|---|---|---|---|
| G-01 | 失败/错误原因不泄露通道品牌 | 三端原因文本与开放平台接口错误文案均无品牌词，业务信息保留 | 商户、代理商、运营、API 商户 | AC-01~AC-05、AC-37 |
| G-02 | B2B 申报单自助下载 | 提现明细对 B2B 结汇成功订单提供下载，得到「国际收支申报单.pdf」；API 商户经接口下载同一文件 | 商户、API 商户 | AC-06~AC-08、AC-36 |
| G-03 | 合同可按买方/币种/结汇/申报定位 | 买方名称、是否结汇、贸易国家、申报模式、报关方式列与买方/币种/申报模式/是否结汇筛选上线；存量买方名称与是否结汇数据可维护补齐 | 商户 | AC-09~AC-12、AC-24~AC-25 |
| G-04 | 驳回状态三端可见 | 驳回后三端同单同时展示一致的驳回状态与原因 | 商户、代理商、运营 | AC-13~AC-14、AC-19 |
| G-05 | 驳回原因一次看全 | 「查看原因」聚合全部驳回记录（时间倒序），可按最新环节直接处理 | 商户 | AC-15~AC-16 |
| G-06 | 拓展不被结算价门禁阻断 | 未配置默认结算价时拓展不拦、提示弹窗不再出现；商户费率设置最低价参考值全局为 0（不再使用成本价） | 机构管理员、业务员 | AC-26~AC-27 |
| G-07 | 驳回订单首页主动提醒 | 登录首页即见待处理驳回订单弹窗，无需翻列表 | 商户 | AC-28~AC-30 |
| G-08 | 交易状态邮件触达 | 来帐到账、驳回、入账成功、退款即时邮件通知商户与归属业务员 | 商户、代理商 | AC-32~AC-34 |
| G-09 | 合同上传支持 zip、rar、7z | zip、rar、7z 直接上传，不再拆包 | 商户 | AC-35 |
| G-10 | 代理商/运营端驳回可跟进 | 来帐列表同步驳回状态与原因，业务员/运营可主动处置 | 代理商、运营 | AC-17~AC-23 |
| G-11 | 三端交易查询可导出、维度补齐 | 三端四查询按筛选导出；来帐有 VA 所属地区，付款/提现有清分方式、汇率、到账银行所在地区、费率，付款另有中间行费用承担方 | 商户、代理商、运营 | AC-38~AC-40 |
| G-12 | 费率记录字段齐全 | 审核与修改记录详情展示全部字段，一次看全 | 代理商、运营 | AC-41 |
| G-13 | 我的账户详情字段齐全、复制好用 | 详情展示收款行全部要素字段（非必填有值才显示），全部复制按显示名输出、单行复制仅值 | 商户 | AC-42~AC-43 |
| G-14 | 交易密码输错可预期、锁定可自助解除 | 输错逐次提示剩余次数；超限锁定提示给出重置解锁路径；重置成功立即解锁继续资金操作 | 商户 | AC-44~AC-46 |
| G-15 | 退款证明自助下载 | 已退款订单在明细自助下载「退款证明.pdf」，不再找运营要凭证 | 商户 | AC-47 |
| G-16 | 电商店铺可修改、可删除 | 店铺资料可编辑且保存即时生效；未关联合同的店铺可删除，已关联的不可删并说明原因 | 商户 | AC-48~AC-49 |

### 1.3 不做的影响

不上线：通道品牌继续透出、路由可被推断；申报单仍靠运营转发；驳回仍不可见不可处理，代理/运营无法跟进；拓展继续被门禁拦；关键节点仍无通知；压缩包合同仍要拆包；交易统计仍靠手工；费率核对仍跨页面拼凑；账户信息复制仍费劲、换汇输错密码仍无解锁指引、退款证明仍要找运营、店铺录错仍无法修正。

---

## 2. 用户角色与场景

### 2.1 角色、权限与职责

| 角色 | 入口 | 可见条件 | 可执行动作 | 明确禁止 | 业务责任 |
|---|---|---|---|---|---|
| 商户操作员/管理员 | 商户平台「首页」「付款订单」「提现订单」「入金订单」「合同订单」「换汇」「我的账户」「电商店铺」 | 订单与店铺为本商户 | 查看首页驳回弹窗；下载 B2B 结汇成功订单的申报单；查看驳回状态与聚合原因；按环节补充资料/关联合同；上传 zip、rar、7z 压缩合同；查询并导出本商户交易（来帐/付款/提现/换汇）；在「我的账户」详情查看并复制收款行要素；按提示重置交易密码（锁定后重置即解锁）；下载已退款订单的退款证明；编辑/删除本商户电商店铺（未被合同关联的店铺） | 跨商户订单与店铺不可见 | 驳回后按要求补齐资料或重新关联合同；交易密码自行保管，锁定后经重置恢复 |
| 机构业务员/管理员 | 代理商平台「入金交易查询」「入金交易」「付款/提现/换汇交易」「机构拓展」 | 本机构名下商户与机构 | 查看来帐驳回状态与原因；查询并导出四个交易（仅名下商户）；接收交易状态邮件；无需配置默认结算价即可拓展 | 无「新增机构」「新增业务员」入口 | 依据邮件跟进名下商户待处理订单 |
| 运营 | 运营平台「来帐管理」「交易管理」四查询、费率记录页 | 全部商户与机构 | 查看来帐驳回状态与原因并处置；查询并导出四个交易（全部）；查看费率记录全部字段 | 无报备/通道侧操作入口 | 交易核对与费率记录留档 |

### 2.2 核心业务场景

| # | 场景 | 角色 | 现状痛点 → 本期结果 |
|---|---|---|---|
| S-01 | 付款失败看原因 | 商户 | 原因含品牌词 → 中性「通道…」文案或兜底话术，业务信息保留 |
| S-02 | B2B 结汇后做账 | 商户 | 找运营要申报单 → 明细点「申报单」自助下载 |
| S-03 | 按买方找合同 | 商户 | 无买方维度 → 买方名称列+模糊筛选，叠加币种/申报模式 |
| S-04 | 入金订单被驳回 | 商户 | 看不到驳回 → 「驳回」状态+聚合原因+按环节直接处理 |
| S-05 | 名下商户订单被驳回 | 业务员/运营 | 端上看不到 → 来帐列表同步驳回状态与原因 |
| S-06 | 拓展机构 | 业务员/管理员 | 被门禁拦 → 门禁与提示弹窗移除 |
| S-07 | 首页有驳回待处理 | 商户 | 要翻列表才发现 → 首页自动弹窗集中展示 |
| S-08 | 关键节点触达 | 商户、归属业务员 | 刷列表或线下转达 → 四类事件即时邮件（含单号） |
| S-09 | 上传压缩包合同 | 商户 | 要拆包 → 直接上传，存档展示与下载 |
| S-10 | 月度交易统计 | 商户/代理商/运营 | 截图手抄 → 三端四查询按筛选导出 Excel |
| S-11 | 核对费率变更历史 | 代理商/运营 | 跨页面拼凑 → 记录详情全字段一次看全 |
| S-12 | 付款/提现填收款行信息 | 商户 | 逐项手抄核对 → 「我的账户」详情逐行复制，全部复制按显示名输出 |
| S-13 | 换汇时交易密码输错超限 | 商户 | 不知还剩几次、锁定后无路可走 → 逐次提示剩余次数，锁定提示重置即解锁，重置后立即继续 |
| S-14 | 退款后做账 | 商户 | 找运营要凭证 → 已退款订单自助下载退款证明 |
| S-15 | 店铺信息录错或停用 | 商户 | 只能重建 → 直接编辑修正；未关联合同的店铺可删除 |

---

---

## 3. 功能范围

### 3.1 能力清单与发布状态

| # | 能力 | 端 | 来源 | 生效条件 |
|---|---|---|---|---|
| F-01 | 失败/错误/驳回原因的通道品牌词过滤（易宝、易宝国际、yeepay、PingPong） | 三端 | 评审新增（2026-08-30）；先例 7·30 G6 | 服务端统一过滤词库就绪 |
| F-02 | 提现明细下载 B2B 结汇订单的国际收支申报单（报关明细文件）；开放平台同能力下载（付款订单不支持） | 商户端/开放平台 | 承接 `prd/8月新需求.md` §4.1（范围细化为 B2B） | B2B 结汇成功订单且申报单文件已收集完成 |
| F-03 | 合同列表增强：买方名称列+筛选、申报模式/报关方式字段列、币种与申报模式筛选、贸易国家列、是否结汇回归 | 商户端 | 承接 `prd/9月迭代-v0.7-商户端资金与费率体验.md` §4.5；申报模式/报关方式字段列、币种与申报模式筛选为审计补充 | 无 |
| F-04 | 商户端入金/合同订单驳回状态展示、原因聚合、按环节操作入口 | 商户端 | 承接 `prd/8月新需求.md` §4.3~§4.4（新增聚合口径） | 订单被驳回 |
| F-05 | 入金订单驳回状态同步代理商/运营平台（三端贯通） | 代理商端/运营端 | 评审新增（衔接 8月 F-03 多端贯通） | 交易系统驳回状态落库 + 三端同步链路就绪 |
| F-06 | 默认结算价不设门禁；商户费率下限全局参考 0 | 代理商端 | 承接 `prd/9月迭代-9月初批次-体验优化与拓展提效.md` R-28（9月初批次稿规则号） | 无 |
| F-07 | 商户首页驳回订单自动查询与弹窗提醒 | 商户端 | 评审新增（2026-08-31） | 本商户存在驳回状态订单 |
| F-08 | 交易状态邮件通知：来帐到账/驳回/入账成功/退款，通知商户与归属业务员 | 三端 | 评审新增（2026-09-01） | 商户注册邮箱可用 |
| F-09 | 合同上传支持 zip、rar、7z 压缩格式 | 商户端 | 评审新增（2026-09-01） | 无 |
| F-10 | 四个交易查询（来帐/付款/提现/换汇）导出 + 字段增强（VA 所属地区、清分方式、汇率、到账银行所在地区、费率（付款含中间行费用承担方）） | 三端 | 评审新增（2026-09-01） | 无 |
| F-11 | 费率审核/修改记录展示全部字段 | 代理商端/运营端 | 评审新增（2026-09-01） | 无 |
| F-12 | 我的账户详情优化：新增收款行要素展示字段与复制口径（全部复制=显示名、单行复制=值） | 商户端 | 评审新增（2026-09-04） | 无 |
| F-13 | 交易密码错误提示与锁定解锁优化：错误逐次提示剩余次数、超限锁定提示给出解锁路径、重置成功自动解锁 | 商户端 | 评审新增（2026-09-04） | 无 |
| F-14 | 入金订单退款证明文件下载（已退款订单） | 商户端 | 评审新增（2026-09-04） | 退款完成且证明文件已生成 |
| F-15 | 电商店铺数据维护：店铺资料编辑、未被合同关联店铺删除 | 商户端 | 评审新增（2026-09-04） | 无 |

### 3.2 In Scope / Out of Scope

| 范围 | 项 | 说明 |
|---|---|---|
| In | 品牌词过滤覆盖三端**全部用户可见**的失败原因、错误原因、驳回原因文本（列表列、详情、弹窗、结果页提示），并同步覆盖开放平台对外接口返回的错误文案（2026-09-01 裁决） | 服务端统一过滤，三端与开放平台一致 |
| In | B2B 结汇订单申报单下载（受控下载，商户端 + 开放平台） | 仅提现订单明细 |
| Out | 付款订单申报单下载 | 申报单仅随提现结汇链路收集，付款订单不展示入口（2026-09-02 裁决） |
| In | 商户端驳回展示与聚合、首页弹窗提醒 | 查询口径列表与首页一致 |
| In | 交易状态邮件通知（来帐/驳回/成功/退款，商户+归属业务员） | 逐事件触发一次；短信通道移待处理需求池 |
| In | 交易查询导出与字段增强 | 代理商仅名下商户，运营全部可见 |
| In | 我的账户详情新展示字段与复制（全部复制=显示名，单行复制=值） | 非必填字段有值才显示 |
| In | 交易密码错误提示与锁定解锁优化（剩余次数提示、超限锁定提示、重置自动解锁） | 错误次数上限沿用系统既有口径，本批次不改阈值；进页验密与默认密码引导为既有实现不改 |
| In | 已退款入金订单退款证明下载（受控下载） | 仅商户端；开放平台接口为未决项 U-02 |
| In | 电商店铺资料编辑与删除 | 已被合同关联的店铺不可删除；删除为逻辑删除并留痕 |
| Out | B2C 结汇订单申报单下载 | 裁决（2026-09-01）：B2C 结汇订单不支持申报单下载，不展示入口 |
| Out | 合同创建表单字段变更 | 买方名称创建时已填写，本期仅列表补展示与筛选 |
| Out | 合同压缩包在线解压预览 | 压缩包仅作存档上传与下载，不提供在线解包预览，平台不校验包内内容 |
| Out | KYC 证件 OCR 辅助填写 | 独立文档承接：`prd/prd-kyc-ocr-autofill.md`（8·27 定稿稿，不随本批次） |
| Out | 驳回后的申诉/复审流程 | 驳回后仍按既有动作（补充资料/重新关联合同）处理 |
| Out | KYC 认证信息回看、资金侧查询、账号资料修改、交易密码修改/重置页面级交互优化（两步式重置、即时校验等；其错误剩余次数提示、超限锁定提示与重置自动解锁已由本批次 F-13 承接）、拓展直开、来帐短信通知 | 2026-09-01 拆分裁决移出至 `prd/9月迭代-待处理需求池.md`，待后续批次承接 |

### 3.3 未决项与准入门槛

| 编号 | 未决项 | 默认口径（裁决前） | Owner / 关闭条件 |
|---|---|---|---|
| U-01 | 过滤词库后续扩充（新接入通道品牌）与维护责任人 | 首期词库仅「易宝 / 易宝国际 / yeepay / PingPong」及大小写、全半角变体；词库服务端可配置，新通道接入时随评审扩充 | 产品+后端；新通道接入评审时 |
| U-02 | 退款证明是否同步提供开放平台接口下载 | 本期仅商户端，API 商户暂无下载接口 | 产品；本批次评审时确认 |


---

## 4. 页面/交互说明

### 4.1 F-01 通道品牌词过滤（三端全局）

**交互**：无新增页面；作用于三端已有的原因展示位——来帐/入金、付款、提现、换汇、合同列表的原因列、「查看原因」弹窗、订单详情、结果提示；开放平台对外接口的错误文案同策略过滤。

| # | 规则 | 说明 |
|---|---|---|
| R-01 | 过滤范围 | 三端全部用户可见的失败/错误/驳回原因文本（列表、详情、弹窗、结果提示）+ 开放平台接口错误文案；三端同一口径（2026-09-01 裁决，原 U-02） |
| R-02 | 过滤词库（首期） | 「易宝」「易宝国际」「yeepay」「PingPong」及大小写、全半角变体；不区分大小写，命中即处理；词库服务端维护，新增词不改页面（U-01） |
| R-03 | 处理策略 | 命中词替换为「通道」（「易宝国际退汇」→「通道退汇」）；多词命中**最长词优先**；替换后清理多余空格与标点 |
| R-04 | 兜底文案 | 整条为品牌词，或替换后仅剩标点/空白/无有效字符时，整条换兜底文案：交易失败/错误→「交易处理失败，请联系归属业务员核实」；审核驳回→「审核未通过，请联系归属业务员核实」 |
| R-05 | 保留有效信息 | 未命中部分原样保留（如「收款账户信息有误」「余额不足」） |
| R-06 | 下一步指引 | 失败联系归属业务员；审核驳回按既有指引补充资料或联系运营 |
| R-07 | 过滤时点 | 服务端返回前完成过滤，三端与开放平台消费同一份文案，逐字一致 |
| R-08 | 过滤边界 | 只过滤**原因文本**；通道账户名称与通道列（如「默认账户(易宝)」）不在范围，保留现有命名 |

> 术语：「失败原因/错误原因/驳回原因」按各页面既有标签展示，不改名；过滤规则一致。

### 4.2 F-02 B2B 结汇订单下载国际收支申报单（报关明细文件）

**入口**：商户平台「**提现订单**」操作列与订单详情，按钮文案「**申报单**」；付款订单不展示（申报单仅随提现结汇链路收集）。文件业务名称统一「**国际收支申报单**」，下载文件名「国际收支申报单.pdf」。

| # | 规则 | 说明 |
|---|---|---|
| R-09 | 入口可见条件 | 人民币结汇 + B2B（货贸对公）+ 成功 |
| R-10 | 可下载条件 | 结汇成功即可点击下载——点击后查询是否已生成，未生成时提示：申报单尚未生成，请稍后再试；已生成时，触发下载文件 |
| R-14 | 开放平台同能力 | API 商户经开放平台接口下载其 B2B 结汇成功订单的申报单，文件与商户端一致（同一文件），口径同 R-09~R-10；鉴权与调用契约属关联研发设计 |

### 4.3 F-03 合同管理列表字段增强

**入口**：商户平台「订单 → 合同订单」列表。性质标注：**[新增列]** 本批次新增展示列；**[新增筛选]** 本批次新增筛选项；**[新增能力]** 本批次新功能。

| # | 规则 | 说明 |
|---|---|---|
| R-15 | 买方名称 [新增列] | 新增「买方名称」列，展示买方英文名称（合同创建表单既有字段），空值「-」 |
| R-16 | 买方名称 [新增筛选] | 新增「买方名称」输入框，模糊匹配，可与既有筛选项组合 |
| R-17 | 是否结汇 [新增列] | 新增「是否结汇」列，展示结汇 / 不结汇（2026-09-02 确认：生产页面尚未完成，列为本批次新增，非已有保留） |
| R-18 | 是否结汇 [新增筛选] | 新增「是否结汇」下拉筛选：结汇 / 不结汇 |
| R-19 | 贸易国家/地区 [新增列] | 新增「贸易国家/地区」列，来源=合同详情既有字段，只读，空值「-」 |
| R-20 | 申报模式 [新增列] | 新增「申报模式」列：对公申报（B2B）/对私申报（B2C），不结汇合同显示「—」 |
| R-21 | 报关方式 [新增列] | 新增「报关方式」列：海关监管方式（如 9610-跨境电子商务），空值「-」 |
| R-22 | 历史数据维护 [新增能力] | 存量合同缺买方名称、或是否结汇标识缺失/不准的，商户可在列表发起「维护」补录这两项字段；已完成（Closed）合同同样可维护（数据修正，不改合同交易内容）；补录后展示与筛选即时生效；补录前缺值显示「-」；筛选无结果空态「无匹配合同」 |
| R-23 | 合同币种 [新增筛选] | 新增「合同币种」下拉，取值与「合同币种」列一致（商户可用币种字典），可组合筛选 |
| R-24 | 申报模式 [新增筛选] | 新增「申报模式」下拉；不结汇合同无申报模式，选定申报模式时仅返回结汇合同，与「是否结汇」取交集 |

> 币种/申报模式筛选为 2026-08-31 审计补充项；「业务模式」为商户自身 KYC 属性（每户固定），不列展示。

### 4.4 F-04 商户平台入金/合同订单驳回展示 + 驳回原因聚合

**入口**：商户平台「入金订单」「合同订单」列表。

```mermaid
flowchart LR
    START((入金到账))

    START -->|贸易来帐| P[待关联]
    START -->|同名充值/平台收款| S[需补充材料]
    START -->|无需关联| DS[直接成功]

    P -->|提交关联合同| R[审核中]
    S -->|补充材料提交审核| R
    DS -.->|主动关联合同·获取结汇额度| R

    R -->|审核通过·入账| E[已入账]
    R -.->|审核不通过| RJ[驳回]

    RJ -.->|重新提交·按驳回环节| R
    RJ -->|选择退款| RF[退款处理中]
    E -->|退款申请 / 通道退汇| RF
    RF -->|退款完成| RD[已退款]

    style RJ fill:#fdecec,stroke:#e5484d,color:#c53030
    style E fill:#e6f6ef,stroke:#00a870
    style RD fill:#e6f6ef,stroke:#00a870
```

**入金订单完整状态机**——三个初始态（待关联/需补充材料/直接成功）同级并列；**只有「审核中」会向下一步流转：审核通过即入账，或不通过落驳回**；驳回后可重新提交再次进入审核中，也可直接选择退款；**最终结果节点两个：「已入账」与「已退款」**（绿色）。「入账失败」为通道异常态（联系归属业务员核实），不参与主流程结果；「部分退款」暂不支持，已移除。
**合同订单状态机**（沿用，本批次不改；驳回后的「重新关联合同」动作发生在入金订单侧，见上图）：

```mermaid
stateDiagram-v2
    direction LR
    state "待提交" as Init
    state "待审核" as Audit
    state "审核通过" as Approved
    state "驳回（Returned）" as Rejected
    state "已完成" as Closed

    [*] --> Init: 创建合同
    Init --> Audit: 提交
    Audit --> Approved: 审核通过
    Audit --> Rejected: 审核不通过
    Rejected --> Audit: 编辑后重新提交（既有）
    Approved --> Closed: 履约完成
    Closed --> [*]
```

| # | 规则 | 说明 |
|---|---|---|
| R-25 | 驳回状态展示 [本批次新增·状态展示] | 入金订单状态列状态文字**统一样式、仅通过颜色区分**（驳回=红色 #E5484D）；三端同构（F-05） |
| R-26 | 合同订单驳回展示 [本批次新增·状态展示] | 合同订单驳回（Returned）同构展示；合同列表既有「驳回原因」列展示**最新一条**（已过滤），全量走「查看原因」弹窗 |
| R-27 | 附言列查看入口 [本批次新增·交互] | 「附言」列统一**单个「查看」按钮**：驳回且有原因时点击打开驳回原因弹窗（R-29）；否则有附言时点击打开附言弹窗（R-28）；均无显示「—」，不提供按钮 |
| R-28 | 附言弹窗 [本批次新增·弹窗] | 标题「附言」；展示完整附言文本，支持换行、超长省略悬停看全名之外的全量内容 |
| R-29 | 驳回原因弹窗 [本批次新增·弹窗] | 标题「驳回原因 - {订单号}」；按驳回时间倒序分组展示**全部驳回记录**，最新置顶并带「最新」标记；每条记录含：驳回时间、驳回环节标签（附该环节的处理提示，口径同下方环节说明）、驳回原因（已经 F-01 过滤）；**合同关联环节**内嵌合同结果表——逐合同展示合同编号、关联结果（通过显示「—」/驳回）、该合同驳回原因；**资料审核环节**展示单条原因；无原因显示「-」 |
| R-30 | 按驳回环节操作入口 [本批次新增·交互] | 驳回时操作按钮跟随**最新一条驳回记录的环节**：资料审核→「补充资料」；合同关联→「关联合同」。「最新驳回环节」由接口随行返回，仅作按钮路由，**不在列表展示**；先后经历两类驳回时按钮随最新环节切换；列表、详情、首页弹窗三处口径一致 |
| R-31 | 沿用 [沿用] | 待关联、直接成功（充值类，关联后获取结汇额度）可关联合同；需补充材料可补充材料提交审核 |
| R-32 | 原因过滤 [沿用] | 驳回原因经 F-01 过滤，展示中性可读文案 |

> **驳回环节的具体处理**（「查看原因」弹窗与操作入口共用的环节口径）：
> - **资料审核**——审核方核对商户提交的补充材料（付款凭证、账户所属证明等）与来账资金的一致性；被驳回后商户在「补充资料」弹窗更新或重传材料并重新提交，重新进入资料审核。
> - **合同关联**——审核方核对本次提交的每个合同与来账资金的匹配性（金额、买方、贸易背景），一次提交多个合同时逐个出关联结果；被驳回后商户重新打开关联合同弹窗，更换或调整所关联的合同再提交。

### 4.5 F-05 入金订单驳回状态同步代理商/运营平台（三端贯通）

**触发**：入金订单被驳回（补充材料/合同关联）并落为「驳回」后，同步至代理商平台与运营平台。

**共用规则（两端一致）**：

| # | 规则 | 说明 |
|---|---|---|
| R-33 | 同步范围 [同步规则] | 驳回状态、驳回原因、驳回时间三者同步；与商户端同源同文案（已经 F-01 过滤） |
| R-34 | 展示同构 [交互] | 状态列文字统一样式、仅颜色区分（驳回=红色，同商户端 R-25）；原因/附言查看为统一「查看」按钮，弹窗口径同商户端 R-27~R-29 |
| R-35 | 交易状态 [修改·列] | 状态列新增「驳回」值，文字样式与颜色口径同商户端 R-25 |
| R-36 | 三端枚举全量对齐 [修改·枚举] | 三端状态列与筛选统一 **9 值**：待关联/审核中/需补充材料/直接成功/退款处理中/已退款/入账失败/已入账/驳回，中文标签逐字一致（部分退款暂不支持）；商户端列头「swiftCode」规范为「SWIFT 代码」 |
| R-37 | 交易状态 [新增筛选] | 状态筛选下拉新增「驳回」选项 |
| R-38 | 状态口径归一 [修改·口径] | 既有「审核拒绝」与本批次「驳回」为同一业务状态，展示标签统一「驳回」 |
| R-39 | 一致性 [沿用约束] | 三端同一订单同一时刻状态一致，准实时可见；以交易系统为准，业务约束为最终一致 |
| R-40 | 生产列不动 [排布规则] | 生产既有列的名称与顺序不动；本批次新增列一律后置展示（VA 所属地区/费率/关联合同/原因·代理商） |

**代理商平台「入金交易查询」**：

| # | 规则 | 说明 |
|---|---|---|
| R-41 | 原因 [新增列·代理商] | 生产页面无此列，本批次新增，列名「原因」；统一单个「查看」按钮+弹窗：驳回 → 驳回原因弹窗（环节/合同分组）；入账失败 → 原因弹窗（单条）；无内容「—」 |
| R-42 | 关联合同 [新增列·查看] | 列只展示单个「查看」按钮；弹窗展示本单关联的全部合同明细（合同编号/是否结汇/申报模式/报关方式，多合同逐条）；未关联合同不展示按钮 |
| R-43 | 费率 [新增列] | 口径同付款/提现页；空值「—」 |
| R-44 | VA 所属地区 [新增列] | 该笔入金 VA 账户归属地区；空值「—」 |
| R-45 | 权限边界 [沿用约束] | 仅本机构名下商户数据可见；跨范围数据不可见 |

**运营平台「来帐管理」**：

| # | 规则 | 说明 |
|---|---|---|
| R-46 | 原因 [更名·列·运营] | 生产既有列「入账失败原因」更名「原因」；内联文本改统一「查看」按钮+弹窗，口径同代理商 R-41 |
| R-47 | 原因 [更名·列·运营] | 「审核拒绝原因」列同时更名「原因」（与 R-48 同列合并）；驳回原因经 F-01 过滤，弹窗内展示 |
| R-48 | 关联合同 [新增列·查看] | 同代理商 R-42：列只展示「查看」按钮，弹窗展示关联合同明细；未关联合同不展示按钮 |
| R-49 | 费率 [新增列] | 同代理商：口径同付款/提现页；空值「—」 |
| R-50 | VA 所属地区 [新增列] | 同代理商：该笔入金 VA 账户归属地区；空值「—」 |
| R-51 | 权限边界 [沿用约束] | 全部商户与机构数据可见 |


### 4.6 F-06 默认结算价不设门禁

| # | 规则 | 说明 |
|---|---|---|
| R-52 | 门禁移除 | 无需先配置默认结算价，即可出示邀请链接、为单个机构设结算价、完成机构服务商注册；既有「未设置默认结算价」提示弹窗隐藏 |
| R-53 | 定价补齐 | 未单独定价的机构后续经「单机构结算价」补齐；默认结算价保留为批量模板能力，仅作展示状态，不拦截任何动作 |
| R-54 | 价格体系口径 | 商户费率设置不再以代理商成本/结算价作为下限参考（成本价已失真）；代理商成本与结算价的配置、展示口径不变。 |
| R-55 | 费率下限全局为 0 | 商户费率设置的**最低价参考值统一为 0**，不论机构是否已定价，均不再以成本价/结算价作下限校验；费率设置与交易不因此被阻断 |

### 4.7 F-07 商户平台首页驳回订单提醒弹窗

**入口**：商户平台首页，进入自动查询，无独立菜单。

| # | 规则 | 说明 |
|---|---|---|
| R-56 | 自动查询 | 进入首页自动查询本商户「驳回」状态的入金与合同订单，口径与列表一致（驳回且未完成重新提交） |
| R-57 | 弹窗展示 | 查到即弹「**待处理的驳回订单**」：逐条含订单类型、单号、驳回时间、原因（已过滤），时间倒序最新置顶 |
| R-58 | 操作入口 | 与列表一致：入金按 R-30 跟随最新环节；合同提供「查看原因」，处理沿合同列表既有流程 |
| R-59 | 弹窗频次 | 可关闭；已关闭单同会话不再弹出，会话内新增驳回单再次进入首页重新弹出；无驳回不弹、首页无提示 |
| R-60 | 数据边界 | 仅本商户可见；与列表同一数据口径，最终一致；处理完成后不再查出 |

### 4.8 F-08 交易状态邮件通知（来帐到账 / 驳回 / 入账成功 / 退款）

**触发**：来帐状态落入四类事件时逐笔触发一次——来帐到账、订单驳回、入账成功、退款（含部分与全额）；同一事件只通知一次。

| # | 规则 | 说明 |
|---|---|---|
| R-61 | 收件人 | 商户（注册邮箱）+ 归属业务员（业务员=商户归属的分公司销售）；双收件人独立发送，任一失败不影响另一人 |
| R-62 | 事件要素 | 到账：单号/币种/金额/付款方/到账时间/当前状态；驳回：单号/驳回时间/原因（已过滤）/处理指引（按环节补充资料或重新关联合同）；审核成功（两封）：单号/金额/审核类型/入账时间；退款：单号/退款金额/退款时间 |
| R-63 | 邮件模板 | 主题「【御风科技】{事件名}通知：{单号}」（事件名=入金到账/订单驳回/补充资料审核成功/关联合同审核成功/退款）；正文按下方全事件模板渲染，含事件明细与处理指引；不含品牌词与银行卡号、密码等敏感信息；变量缺失显示「-」 |
| R-64 | 对象边界 | 仅商户与归属业务员接收本商户事件；代理/运营平台列表同步不在本能力（见待处理需求池） |
| R-65 | 失败兜底 | 邮箱不可达仅记通道失败，不阻断交易；商户改邮箱走待处理需求池；业务员邮箱沿用代理商员工管理；短信通道移待处理需求池 |

> **邮件正文模板（全事件）**
>
> **① 来帐到账**　主题：【御风科技】入金到账通知：{币种} {金额}（单号 {单号}）
>
> 尊敬的 {商户名称}：
> 您有一笔入金已到账，明细如下：
> - 入金单号：{单号}
> - 付款方：{付款方名称}
> - 付款币种/金额：{币种} {金额}
> - 到账时间：{到账时间}
> - 当前状态：{当前状态}
>
> 请按当前状态处理：
> - 待关联（贸易来帐）：请登录商户平台「入金订单」及时关联合同；
> - 需补充材料（同名充值/平台收款）：请登录「入金订单」补充付款凭证等材料，审核通过后完成入账；
> - 直接成功：资金已直接入账，可登录「入金订单」关联合同以获取结汇额度。
> 如有疑问，请联系您的归属业务员。
> —— 御风科技
>
> **② 订单驳回**　主题：【御风科技】订单驳回通知：{单号}
>
> 尊敬的 {商户名称}：
> 您的一笔入金订单未通过审核、已被驳回，明细如下：
> - 入金单号：{单号}
> - 驳回环节：{驳回环节：资料审核 / 合同关联}
> - 驳回时间：{驳回时间}
> - 驳回原因：{驳回原因（已经品牌词过滤）}
>
> 请按驳回环节处理：资料审核驳回 → 登录「入金订单」补充资料后重新提交；合同关联驳回 → 重新关联合同。也可在订单列表直接选择退款。处理完成前订单无法继续流转。
> —— 御风科技
>
> **③ 补充资料审核成功**　主题：【御风科技】补充资料审核成功通知：{单号}
>
> 尊敬的 {商户名称}：
> 您为入金订单提交的补充资料已审核通过，资金完成入账，明细如下：
> - 入金单号：{单号}
> - 入账金额：{币种} {金额}
> - 入账时间：{入账时间}
>
> 资金已入账；如需办理结汇，可登录商户平台「入金订单」关联合同以获取结汇额度。
> —— 御风科技
>
> **④ 关联合同审核成功**　主题：【御风科技】关联合同审核成功通知：{单号}
>
> 尊敬的 {商户名称}：
> 您为入金订单关联合同的申请已审核通过，资金完成入账，明细如下：
> - 入金单号：{单号}
> - 关联合同：{合同编号}
> - 入账金额：{币种} {金额}
> - 入账时间：{入账时间}
>
> 可登录商户平台「入金订单」查看详情并下载相关凭证。
> —— 御风科技
>
> **⑤ 退款**　主题：【御风科技】退款通知：{单号}
>
> 尊敬的 {商户名称}：
> 您的一笔入金订单已发起退款，明细如下：
> - 入金单号：{单号}
> - 退款金额：{币种} {金额}
> - 退款时间：{退款时间}
>
> 退款将原路退回付款方账户，到账时间以付款银行为准。可登录商户平台「入金订单」查看退款进度。
> —— 御风科技

### 4.9 F-09 合同文件上传支持 zip、rar、7z

**入口**：商户平台全部合同上传位——合同创建「交易合同」「CI&PI 发票」，入金「关联合同」「补充资料」附件位。

| # | 规则 | 说明 |
|---|---|---|
| R-66 | 格式扩展 | 既有 jpg/jpeg/png/pdf 基础上新增 zip、rar、7z；格式不符提示「仅支持 jpg/png/pdf/zip/rar/7z 格式」；**非图片类文件上传成功后在文件处展示原始文件名**，供用户核对 |
| R-67 | 大小限制 | 沿用既有口径，不因压缩格式放宽或收紧 |
| R-68 | 压缩包仅存档 | 展示文件名并提供下载；不提供在线解压预览，不校验包内内容 |

### 4.10 F-10 交易查询导出与字段增强

**范围**：商户平台、代理商平台、运营平台三端的四个交易查询——入金交易、付款、提现、换汇。

| # | 规则 | 说明 |
|---|---|---|
| R-69 | 导出 | 新增「导出」：按当前筛选导出，字段与列表列一致；无数据不生成文件，提示「无符合条件的交易记录」 |
| R-70 | 格式与上限 | 导出 Excel；单次上限由研发设计给出，超限提示缩小时间范围分批导出 |
| R-71 | 权限一致 | 导出范围与查询权限一致（商户仅本商户，代理商仅名下商户，运营全部可见）；不含平台内部字段 |
| R-72 | 来帐新列 | 三端来帐列表新增「VA 所属地区」列（该笔入金 VA 账户归属地区），空值「-」；代理商/运营来帐列表增「费率」列（口径同付款/提现），空值「-」；导出包含 |
| R-73 | 付款/提现新列 | 三端付款/提现列表新增：「清分方式」（Local / Swift）、「汇率」、「到账银行所在地区」、「费率」（原口径名「商户费率」，列名展示为「费率」）列；**付款列表另增「中间行费用承担方」列**（枚举 OUR / SHA，仅 Swift 清分时产生，Local 为空「—」）；三端口径一致；导出包含 |

### 4.11 F-11 费率审核、修改记录展示全部字段

**入口**：代理商平台与运营平台费率审核、修改记录页（列表 + 详情）。

| # | 规则 | 说明 |
|---|---|---|
| R-74 | 字段齐全 | 详情展示**全部字段**：费率主体（商户/产品/币种）、变更前值/变更后值、审核信息（状态/审核人/审核时间/审核或驳回原因）、生效信息（状态/时间）、操作信息（操作人/时间/操作类型）；不论是否有变化均展示 |
| R-75 | 原因过滤 | 驳回/失败原因经 F-01 过滤 |
| R-76 | 权限只读 | 代理商仅名下商户记录；运营全部可见；均只读 |

> 记录表存在上述清单之外的业务字段时一并展示，不做白名单裁剪。

### 4.12 F-12 我的账户详情优化

商户端「账户 → 我的账户」——新展示字段：

| # | 显示名 | 接口字段 | 说明 | 单行点击 |
|---|---|---|---|---|
| 2 | Account Holder Name | holderName |  | 复制该值 |
| 3 | Account Number | accountNo | 全明文 | 复制明文值 |
| 4 | Currency | currency |  | 复制该值 |
| 5 | Bank Code | bankCode | 非必填，有值才显示 | 复制该值 |
| 6 | Bank Name | bankName |  | 复制该值 |
| 7 | Bank Address | bankAddress | 非必填，有值才显示 | 复制该值 |
| 8 | SWIFT Code | bankSwift |  | 复制该值 |
| 9 | Branch Code | branchCode | 非必填，有值才显示 | 复制该值 |
| 10 | ACH Routing Number | 易宝参数 localBankRouteNo | 非必填，有值才显示（仅接入 ACH 体系的账户有，如美国账户） | 复制该值 |
| 13 | Sort Code | sortCode | 非必填，根据 VA 所属国家判断（英国：固定 60-83-82） | 复制该值 |

**全部复制**：所有内容包括参数名均使用显示名（英文）。
**单行复制**：保持原逻辑，仅复制值内容。

### 4.13 F-13 交易密码错误提示与锁定解锁优化

**入口**：商户平台资金操作验密环节（进入付款/提现/换汇页面时校验交易密码）与「我的 → 账号与安全 → 重置交易密码」。进入页面即验密、默认密码校验与引导弹窗均为既有实现，本批次不改；本节只覆盖以下新增三点。

| # | 规则 | 说明 |
|---|---|---|
| R-77 | 错误逐次提示 | 验密输错且未达上限时，每次提示「交易密码错误，还可尝试 N 次」（N=剩余次数）；保留「忘记交易密码？」入口（跳转重置流程） |
| R-78 | 超限锁定提示 | 连续输错达到上限（沿用系统既有口径，本批次不改阈值）后锁定交易密码验证，弹窗标题「交易密码已锁定」，正文「因连续多次输入错误，交易密码验证已锁定。您可通过『重置交易密码』设置新密码，重置成功后立即解锁；如有疑问请联系归属业务员。」按钮「去重置交易密码」/「取消」；锁定期间再次进入资金操作页面直接弹此窗，不再进入密码输入 |
| R-79 | 重置自动解锁 | 重置交易密码成功后，系统自动清除错误计数并解除锁定，无需等待冷却期或人工处理；新密码立即生效，商户可继续原资金操作 |
| R-80 | 锁定影响范围 | 锁定仅影响付款/提现/换汇的验密环节，不影响登录与账户其他功能；锁定期间「重置交易密码」入口保持可用；解锁后再次连续输错达上限按同一口径重新锁定 |

### 4.14 F-14 退款证明文件下载

**入口**：商户平台「入金订单」列表操作列与订单详情，按钮文案「**退款证明**」。文件业务名称「退款证明」，下载文件名「退款证明.pdf」。

| # | 规则 | 说明 |
|---|---|---|
| R-81 | 入口可见条件 | 退款完成（状态「已退款」）的入金订单展示「退款证明」；退款处理中及其他状态不展示 |
| R-82 | 可下载条件 | 点击「退款证明」时查询证明文件是否已生成：已生成 → 继续下载；未生成 → 提示「退款证明生成中，请稍后重试」 |
| R-83 | 受控下载 | 服务端每次校验权限、可见范围与文件生成状态；前端只接收文件内容，不接收地址与原始文件名 |
| R-84 | 失败中性提示 | 无权限、跨商户、服务异常统一中性提示，不泄露文件是否存在；成功提示「退款证明下载成功」 |
| R-85 | 权限边界 | 仅本商户操作员/管理员可下载本商户订单的退款证明 |

### 4.15 F-15 电商店铺数据维护（修改、删除）

**入口**：商户平台「账户 → 电商店铺」列表操作列，「编辑」「删除」按钮（与既有「绑定账号」并列）。

| # | 规则 | 说明 |
|---|---|---|
| R-86 | 编辑入口与字段 | 列表操作列「编辑」，弹窗与新增店铺同构：平台（含自建平台）、店铺类型、店铺名称（自建平台为「平台名称」）、店铺链接（自建平台为「网站域名」）；回显现值，校验规则同新增 |
| R-87 | 编辑生效 | 保存后列表与「合同创建-关联店铺」选择器即时按新值展示与筛选；属资料级修正，不回溯已提交合同与申报内容 |
| R-88 | 删除约束 | 已被任一合同关联的店铺不可删除：点击「删除」提示「该店铺已关联合同，无法删除」；未被合同关联的店铺可删除 |
| R-89 | 删除确认与生效 | 删除前二次确认弹窗「删除后不可恢复，确认删除该店铺？」；确认后列表即时移除，同时解除与收款账户的绑定关系（收款账户本身不受影响）；删除为逻辑删除，操作留痕 |
| R-90 | 权限与字典边界 | 编辑与删除仅本商户操作员/管理员可操作；可选平台字典（电商平台+自建平台）沿用新增口径，本批次不扩展 |

---

## 5. 字段说明

### 5.1 关键业务字段

| 字段 | 业务含义 | 来源 | 可见/可编辑 | 参与规则 |
|---|---|---|---|---|
| 失败原因 / 错误原因（过滤后） | 交易失败、错误的中性可读文案 | 服务端（过滤词库处理后） | 三端列表/详情/弹窗只读 | R-01~R-08 |
| 驳回原因 | 订单被驳回的原因，聚合前为单条、聚合后为记录列表 | 审核驳回回写（已过滤） | 三端「原因」列「查看」按钮 → 弹窗只读 | R-25、R-27、R-30、R-32 |
| 驳回时间 / 驳回环节 | 每条驳回记录的发生时间与所处环节（资料审核/合同关联） | 交易系统驳回记录 | 聚合弹窗只读 | R-29 |
| 申报单（国际收支申报单） | B2B 结汇订单的报关明细申报凭证 | 平台自通道收集，随提现结汇订单生成（点击时查询是否已生成） | 提现订单（结汇成功 + B2B）展示入口，点击时判断可下载 | R-09~R-10、R-14 |
| 买方名称 | 合同买方英文名称，用于按买方定位合同 | 合同创建表单；存量可补录 | 列表列 + 筛选；列表只读 | R-15~R-16 |
| 是否结汇 | 合同资金是否结汇为人民币（结汇 / 不结汇）——**合同级属性**；一笔入金关联多合同时可能既有结汇也有不结汇，不做订单级汇总 | 合同创建表单；存量可修正 | 商户合同列表列+筛选（本批次新增）；代理/运营在入金详情按合同逐条展示 | R-17~R-18、R-46 |
| 贸易国家/地区 | 合同对手方所在国家/地区 | 合同详情既有字段 | 列表新增列，只读 | R-19 |
| 申报模式 | 合同结汇申报类型（对公申报 B2B / 对私申报 B2C），不结汇合同无此值 | 合同创建表单 | 列「申报模式」+ 筛选 | R-20、R-24 |
| 报关方式 | 合同报关的海关监管方式（如 9610-跨境电子商务） | 合同创建表单既有字段 | 列「报关方式」，只读；空值「-」 | R-21 |
| VA 所属地区 | 入金 VA 账户的归属地区 | VA 账户资料 | 三端入金交易列表列只读 | R-72 |
| 清分方式 / 汇率 / 到账银行所在地区 / 费率 / 中间行费用承担方（付款） | 付款、提现交易的费用与路径维度 | 交易系统 | 三端付款/提现交易列表列只读 | R-73 |
| 费率记录字段 | 费率主体/前后值/审核信息/生效信息/操作信息 | 费率审核与修改留痕 | 记录详情只读展示全部字段 | R-74~R-76 |
| 我的账户详情字段 | Account Holder Name / Account Number（全明文）/ Currency / Bank Code / Bank Name / Bank Address / SWIFT Code / Branch Code / ACH Routing Number / Sort Code 等收款行要素 | VA 账户资料 | 详情弹窗展示；非必填字段有值才显示；单行点击复制该值 | §4.12 |
| 交易密码状态 | 交易密码的可用状态：正常 / 已锁定（连续输错达上限）；重置成功即解锁并清零计数 | 交易密码验证服务 | 锁定提示弹窗只读；锁定期间重置入口可用 | R-77~R-80 |
| 退款证明 | 退款完成订单的退款凭证，用于商户做账与对账 | 平台按退款结果生成（点击时查询是否生成） | 入金订单（已退款）展示入口，点击时判断可下载 | R-81~R-83 |
| 电商店铺资料 | 平台（含自建平台）、店铺类型、店铺名称/平台名称、店铺链接/网站域名 | 商户维护 | 电商店铺列表列与编辑弹窗；已被合同关联的店铺不可删除 | R-84~R-87 |

### 5.2 选项与字典

| 枚举 | 取值 |
|---|---|
| 过滤词库（首期） | 易宝 / 易宝国际 / yeepay / PingPong（含大小写、全半角变体；服务端可配置扩充，U-01） |
| 驳回环节 | 资料审核（核对补充材料与来账资金一致性，驳回后更新材料重提）/ 合同关联（核对所提合同与来账资金匹配性、多合同逐个出结果，驳回后重新关联）；环节枚举扩充随驳回路径演进 |
| 入金订单处理状态（三端全量对齐，R-36） | 待关联 / 审核中 / 需补充材料 / 直接成功 / 退款处理中 / 已退款 / 入账失败 / 已入账 / **驳回**（三端列与筛选同一组 9 值；部分退款暂不支持） |
| 合同订单状态（沿用） | 待提交 / 待审核 / 审核通过 / **驳回**（Returned）/ 已完成 |
| 是否结汇 | 结汇 / 不结汇 |
| 交易模式（结汇申报，沿用） | B2B / B2C（申报单下载仅 B2B；B2C 不支持，2026-09-01 裁决） |
| 申报模式（合同） | 对公申报（B2B）/ 对私申报（B2C）；不结汇合同为空 |
| 合同文件上传格式 | jpg / jpeg / png / pdf / zip / rar / 7z（既有四种保留，本批次新增 zip、rar、7z） |
| 清分方式 | Local / Swift |
| 中间行费用承担方（付款） | OUR / SHA（仅 Swift 清分产生；Local 为空） |
| 交易状态邮件通知事件 | 来帐到账 / 订单驳回 / 入账成功 / 退款（含部分与全额；逐事件触发一次） |
| 交易密码状态 | 正常 / 已锁定（连续输错达上限进入；重置交易密码成功自动解锁） |

> 研发口径索引：驳回原因/时间的存储字段、导出任务方式属关联研发设计，不改变本正文业务结论；仅当其影响用户可见结果时以本正文口径为准。

---

## 6. 业务状态与服务支撑

### 6.1 业务状态

**入金订单全状态（三端统一 9 值，R-36）**：

| 状态 | 进入条件 | 用户可执行动作 |
|---|---|---|
| 待关联 | 贸易来帐到账，尚未关联合同 | 关联合同 |
| 审核中 | 关联合同已提交、处理中 | — |
| 需补充材料 | 同名充值/平台收款到账即进入；或资料审核驳回后回到此节点 | 补充材料（提交后进「审核中」，审核通过即入账；入账后可再关联合同） |
| 退款处理中 | 驳回后选择退款、已入账后申请退款、或通道退汇（退回付款方，不落驳回） | — |
| 已退款 | 退款完成 | — |
| 入账失败 | 通道入账失败（非审核驳回类） | 联系归属业务员核实 |
| 已入账 | 入金流程完成 | — |
| 直接成功 | 无需关联直接入账成功 | 关联合同（关联后获取结汇额度） |
| **驳回（本批次新增）** | 资料审核不通过 / 合同关联被驳回 | 查看原因；按环节重新操作（资料审核驳回→回「需补充材料」重新补充 / 合同关联驳回→重新关联合同） |

> **驳回不是终态**：重新操作后沿既有流程流转——贸易来帐重新关联合同（进入审核中）；同名充值/平台收款回「需补充材料」重新补充（提交后进入「审核中」，审核通过即入账，入账后可再关联合同）；再被驳回则回「驳回」并新增一条记录（R-29）；驳回后也可直接选择退款（进入退款处理中，退款完成为「已退款」）。状态变更同时触发邮件通知（F-08）。
> **驳回不拆分**：驳回为单一状态，环节与原因差异由驳回记录（时间/环节/原因）承载，操作入口按最新环节给出（R-30）。

```
入金订单（待关联 / 需补充材料 / 审核中 …）
   │ 资料审核不通过 / 合同关联被驳回
   ▼
驳回（可处理态，记录：驳回时间 + 驳回环节 + 驳回原因[已过滤]）
   ├─→ 商户平台列表：「驳回」(红) +「查看原因」聚合弹窗 + 按环节操作入口
   ├─→ 商户平台首页：自动查询 → 弹窗提醒（F-07）
   ├─→ 代理商平台 / 运营平台：来帐列表同状态 + 原因弹窗（R-39 一致性）
   └─→ 交易状态邮件通知：商户 + 归属业务员（F-08，事件=订单驳回）
   出口：重新提交回「审核中」（资料审核驳回经「需补充材料」）；或直接选择退款 → 退款处理中 → 已退款
```

**合同订单状态（沿用）**：待提交 / 待审核 / 审核通过 / **驳回**（Returned）/ 已完成；驳回后既有动作：可编辑并重新提交，或重新关联合同。首页提醒对合同驳回与列表同口径。

**B2B 申报单文件（F-02，仅提现订单）**：入口按 R-09 展示；结汇成功即可点击下载——点击后查询是否已生成，未生成时提示「申报单尚未生成，请稍后再试」；已生成时触发下载文件。

**交易状态邮件事件（F-08）**：入金到账 / 订单驳回 / 补充资料审核成功 / 关联合同审核成功 / 退款，逐事件一次。

**默认结算价配置状态（F-06）**：已配置 / 未配置，仅作「机构拓展」页展示，不拦截任何动作。

**交易密码锁定状态（F-13）**：正常 ⇄ 已锁定——连续输错达上限进入锁定（阈值沿用系统既有口径）；重置交易密码成功即解除锁定并清零错误计数，无需等待或人工处理；锁定仅影响付款/提现/换汇的验密环节，不影响登录。

**退款证明文件（F-14）**：入口按 R-81 展示；点击时查询生成状态——已生成 → 下载「退款证明.pdf」；未生成 → 提示「退款证明生成中，请稍后重试」，不改订单状态。

**电商店铺（F-15）**：编辑保存即时生效；删除仅限未被合同关联的店铺，二次确认后逻辑删除并解除绑定收款账户，操作留痕。

### 6.2 关联研发设计

- 品牌词过滤词库存储与维护、过滤执行位置（服务端返回前）。
- 申报单下载契约（受控下载）、开放平台下载契约。
- 驳回记录（时间/环节/原因）数据结构与聚合查询；三端同步机制（最终一致保障，R-39）。
- 交易查询导出任务方式与单次上限；压缩包上传服务端校验。
- 交易状态邮件通道接入、模板渲染、双收件人发送与重试。
- 我的账户详情字段返回与展示契约（非必填字段有值才显示、Sort Code 按账户所属国家判定）。
- 交易密码错误计数、锁定与重置解锁联动。
- 退款证明文件生成、存储与受控下载契约。
- 电商店铺编辑保存、删除约束（合同关联校验）、逻辑删除与留痕。

---

## 7. 异常/边界/权限

| 场景 | 触发条件 | 用户看到什么 | 下一步 | 责任人 | 关联 |
|---|---|---|---|---|---|
| 原因整条为品牌词 | 整条品牌词，或替换后仅剩标点/空白 | 兜底文案（按失败/驳回区分） | 联系归属业务员 | 商户归属业务员 | R-04 |
| 申报单未生成 | B2B 结汇成功但申报单尚未就绪 | 「申报单尚未生成，请稍后再试」 | 稍后再试 | 系统/运营兜底 | R-10 |
| 申报单越权 | 跨商户或无权限 | 中性提示，不泄露文件是否存在 | — | 系统拦截 | §2 权限边界 |
| 历史合同无买方 | 存量未采集买方名称 | 列显示「-」，筛选正常 | — | — | R-22 |
| 买方筛选无结果 | 模糊匹配无命中 | 空态「无匹配合同」 | 调整筛选 | 商户自助 | R-22 |
| 驳回无原因 | 服务端无驳回原因 | 显示「-」，不提供「查看原因」 | 联系归属业务员 | 商户归属业务员 | R-27 |
| 多次驳回 | 多环节/多次被驳回 | 聚合弹窗时间倒序全量展示 | 按最新原因整改后重提 | 商户自助；业务员辅导 | R-29 |
| 首页弹窗与列表不一致 | 查询时刻差异 | 弹窗展示查询时刻数据 | 以列表/交易系统为准，稍后刷新 | 运营兜底 | R-59 |
| 代理商越权 | 非本机构名下商户订单 | 数据不可见 | — | 系统拦截 | R-45 |
| 三端同步延迟 | 状态短暂不一致 | 以交易系统为准，最终一致 | 稍后刷新 | 运营兜底 | R-39 |
| 压缩包格式/大小不符 | 非支持格式或超大小限制 | 提示支持格式与大小上限 | 更换文件重传 | 商户自助 | R-66~R-68 |
| 导出无数据/超上限 | 无结果或超单次上限 | 「无符合条件的交易记录」/提示分批导出 | 调整筛选或分批 | 自助 | R-69~R-70 |
| 邮件发送失败 | 商户或业务员邮箱不可达 | 无邮件；订单流程不受影响 | 商户查邮箱/垃圾箱（改邮箱走需求池）；业务员邮箱由代理商维护 | 商户自助；代理商 | R-65 |
| 我的账户非必填字段无值 | Bank Code / Bank Address / Branch Code / ACH Routing Number 等字段无值 | 该行不展示 | — | — | §4.12 |
| 密码输错未达上限 | 验密环节输入错误密码 | 「交易密码错误，还可尝试 N 次」 | 核实后重试或走「忘记交易密码？」重置 | 商户自助 | R-77 |
| 锁定期间继续资金操作 | 交易密码已锁定时进入付款/提现/换汇 | 直接弹「交易密码已锁定」，不再进入密码输入 | 按指引重置交易密码解锁后重试 | 商户自助 | R-78~R-80 |
| 退款证明未生成 | 订单已退款但证明文件未生成 | 「退款证明生成中，请稍后重试」 | 稍后重试 | 系统/运营兜底 | R-82 |
| 删除被关联店铺 | 店铺已被任一合同关联 | 「该店铺已关联合同，无法删除」，店铺保留 | — | 系统拦截 | R-86 |
| 店铺删除确认 | 未被合同关联的店铺确认删除 | 二次确认后列表移除、绑定收款账户解除，不可恢复 | 需要时重新新增店铺 | 商户自助 | R-87 |

---

## 8. 验收标准

> 格式：前置 → 动作 → 预期，可执行可核对。原型锚点为对应页面/mock 场景。

| # | 场景 | 前置条件 | 操作 | 预期 | 原型锚点 |
|---|---|---|---|---|---|
| AC-01 | 失败原因品牌词过滤 | 存在失败原因为「易宝国际退汇」的付款订单 | 查看付款订单列表失败原因 | 展示「通道退汇」，无任何品牌词；其余业务信息保留 | 付款订单列表 |
| AC-02 | 英文变体过滤 | 失败原因含 yeepay / PingPong（任意大小写） | 查看三端对应原因展示位 | 命中并替换为「通道」，最长词优先，不区分大小写 | 提现/换汇列表 |
| AC-03 | 整条品牌词兜底 | 失败原因仅为品牌词 | 查看原因展示位 | 展示「交易处理失败，请联系归属业务员核实」 | 订单列表 |
| AC-04 | 驳回原因过滤 | 驳回原因含品牌词 | 打开「查看原因」弹窗 | 原因已过滤为中性可读文案 | 入金/合同订单列表 |
| AC-05 | 三端一致 | 同一订单失败原因在三端展示 | 比对商户/代理商/运营端文案 | 逐字一致 | 三端列表 |
| AC-06 | B2B 申报单下载 | B2B 结汇成功的提现订单 | 点操作列「申报单」 | 受控下载得到「国际收支申报单.pdf」，成功提示 | 提现订单列表 |
| AC-07 | 申报单未生成 | B2B 结汇成功但申报单尚未就绪 | 点「申报单」 | 提示「申报单尚未生成，请稍后再试」；已生成时触发下载文件 | 同上 |
| AC-08 | 入口范围 | 非结汇 / B2C 结汇 / 非成功订单 | 查看操作列（含付款订单） | 均无「申报单」入口；跨商户访问被拒（中性提示） | 同上 |
| AC-09 | 合同买方名称列 | 进入合同订单列表 | 查看列表 | 出现买方名称列（空值「-」）与贸易国家/地区、申报模式、报关方式列 | 合同订单列表 |
| AC-10 | 买方名称筛选 | 同上 | 输入买方名称（可与状态/是否结汇组合） | 模糊匹配刷新；无结果显示「无匹配合同」 | 同上 |
| AC-11 | 是否结汇回归 | 同上 | 用是否结汇筛选并核对列 | 结汇/不结汇展示与筛选口径不变、结果正确 | 同上 |
| AC-12 | 存量合同数据维护 | 存在缺买方名称、结汇标识不准的历史合同（含已完成） | 商户在合同订单列表发起「维护」，补录买方名称并修正是否结汇 | 补录后列表即时展示新值，按买方名称/是否结汇筛选可命中该合同；已完成合同可维护 | 合同订单列表 |
| AC-13 | 商户端驳回展示 | 入金订单被驳回且有原因 | 查看入金订单列表并点「查看原因」 | 状态列「驳回」(红)，附言列为单个「查看」按钮 → 打开驳回原因弹窗（分组展示各环节/各合同原因）；非驳回单的「查看」打开附言弹窗；均无内容显示「-」 | 入金订单列表 |
| AC-14 | 驳回后操作入口 | ①贸易来帐订单合同关联被驳回；②同名充值订单资料审核被驳回 | 分别点「关联合同」/「补充资料」 | ①重新打开关联合同弹窗；②重新打开补充材料弹窗 | 入金订单列表 |
| AC-15 | 驳回原因聚合 | 同一订单被驳回 2 次以上（含不同环节）；其中一次关联合同提交 2 个合同、1 个通过 1 个被驳回 | 打开「查看原因」 | 按时间倒序聚合全部驳回记录（时间+环节+原因），最新置顶；合同关联记录下逐条展示 2 个合同的编号、关联结果与各自原因（通过的显示「—」） | 入金/合同订单列表 |
| AC-16 | 合同订单驳回展示 | 合同订单被驳回（Returned） | 查看列表 +「查看原因」 | 驳回状态展示 + 原因聚合弹窗（口径同 AC-15） | 合同订单列表 |
| AC-17 | 代理商端驳回同步 | 名下商户入金订单被驳回 | 代理商平台查看来帐列表 | 状态列「驳回」(红) +「查看原因」，原因与商户端一致（已过滤） | 代理商平台-入金交易查询 |
| AC-18 | 运营端驳回同步 | 同上 | 运营平台查看来帐列表 | 同上（全部商户可见） | 运营平台-来帐管理 |
| AC-19 | 三端状态一致 | 同一驳回订单 | 三端比对状态与原因 | 状态标签统一「驳回」（无第二套拒绝标签）、原因逐字一致 | 三端列表 |
| AC-20 | 代理商权限边界 | 非本机构名下商户的驳回订单 | 代理商平台查询 | 数据不可见 | 代理商平台-入金交易查询 |
| AC-21 | 代理/运营端驳回可筛选 | 代理名下/平台存在驳回订单 | 代理商「入金交易查询」、运营「来帐管理」状态筛选选「驳回」 | 仅返回驳回订单，红色「驳回」标签与商户端一致 | 代理商/运营平台来帐列表 |
| AC-22 | 拒绝标签与原因口径归一 | 同一订单落为「驳回」 | 查看代理商/运营端处理状态列与原因列 | 处理状态展示「驳回」；「驳回原因」平铺列（原「审核拒绝原因」更名）=最新一条（已过滤）；「查看原因」弹窗聚合全量 | 代理商/运营平台来帐列表 |
| AC-23 | 三端状态枚举全量一致 | 三端入金/来帐列表 | 逐一对照状态列展示值与筛选下拉选项 | 三端为同一组 9 值、中文标签逐字一致（部分退款暂不支持，已移除）；同一订单三端状态一致；商户端列头为「SWIFT 代码」 | 三端来帐列表 |
| AC-24 | 合同币种筛选 | 存在 USD/EUR 等多币种合同 | 合同订单列表用「合同币种」筛选选 USD，可与其他筛选组合 | 仅返回 USD 合同，与列展示一致；无结果时空态「无匹配合同」 | 合同订单列表 |
| AC-25 | 申报模式筛选 | 存在结汇（B2B/B2C）与不结汇合同 | 用「申报模式」筛选选对公申报（B2B） | 仅返回结汇且 B2B 合同，不含不结汇与 B2C；与「是否结汇=结汇」叠加结果一致 | 合同订单列表 |
| AC-26 | 默认结算价不设门禁 | 默认结算价未配置 | 获取机构/商户邀请链接；单机构设结算价；被邀请方完成机构服务商注册 | 均不被拦截；进入机构拓展页不再弹出「未设置默认结算价」提示弹窗 | 机构拓展/机构查询/注册页 |
| AC-27 | 费率下限全局为 0 | 分别为已定价与未定价机构名下商户设置商户费率（含低于结算价的值） | 提交费率设置 | 两种场景最低价参考值均为 0，低于结算价/成本价也可正常保存生效，不再出现「不能低于成本下限」提示；上限校验不变 | 代理商平台-费率设置 |
| AC-28 | 首页驳回弹窗 | 本商户存在驳回状态订单（入金/合同各一） | 登录进入首页 | 自动弹窗「待处理的驳回订单」，逐条含订单类型/单号/驳回时间/原因（已过滤），最新置顶 | 商户平台首页 |
| AC-29 | 无驳回不弹窗 | 本商户无驳回状态订单 | 登录进入首页 | 无弹窗、无提示，首页正常展示 | 商户平台首页 |
| AC-30 | 弹窗频次与处理闭环 | 已弹窗并被关闭；其中一单完成补充资料重提；同会话内新增一笔驳回订单 | 同会话再次进入首页；处理完成后重新查询 | 已关闭单与已处理单不再出现在弹窗；因会话内新增驳回单，再次进入首页重新弹窗且内容含新增单 | 商户平台首页 |
| AC-31 | 按钮跟随最新驳回环节 | 同名充值订单先被资料审核驳回（操作列此时为「补充资料」），补充重提通过后再关联合同又被驳回 | 查看该订单操作列 | 按钮切换为「关联合同」——跟随最新驳回环节，不再展示「补充资料」 | 入金订单列表 |
| AC-32 | 交易状态邮件四事件 | 商户注册邮箱与归属业务员邮箱可用 | 分别触发来帐到账、订单驳回、入账成功、退款各一笔 | 商户与归属业务员均收到对应事件邮件，含单号与该事件关键要素（驳回事件含已过滤原因与处理指引） | 商户平台（邮箱） |
| AC-33 | 邮件文案口径 | 任意交易状态邮件 | 核对邮件主题与正文 | 与模板一致、无通道品牌词与敏感信息；含商户平台订单查看入口与归属业务员指引；变量缺失显示「-」 | 商户平台（邮箱） |
| AC-34 | 邮件发送失败兜底 | 商户注册邮箱不可达 | 触发一笔来帐到账 | 无邮件但订单流程与状态不受影响；不影响归属业务员侧邮件送达 | 商户平台（邮箱） |
| AC-35 | 合同压缩包上传 | 合同创建/关联合同上传位 | 分别上传 zip、rar、7z 文件各一，再上传一个不支持的格式（如 exe） | 压缩包均上传成功，文件处展示原始文件名、可下载；exe 被拒并提示「仅支持 jpg/png/pdf/zip/rar/7z 格式」 | 合同创建/关联合同弹窗 |
| AC-36 | API 平台申报单下载 | API 商户存在 B2B 结汇成功订单 | 经开放平台接口下载申报单 | 获得与商户端一致的「国际收支申报单」文件 | 开放平台接口 |
| AC-37 | 开放平台接口错误文案过滤 | 开放平台商户调用既有接口，返回的错误文案原文含品牌词 | 检查接口返回的错误文案 | 无「易宝/易宝国际/yeepay/PingPong」字样，与三端同一词库与策略 | 开放平台接口 |
| AC-38 | 交易查询导出 | 来帐/付款/提现/换汇各设筛选条件（含一次结果超单次导出上限的筛选） | 三端逐页点「导出」 | 导出 Excel 与当前筛选结果、列表字段一致；无数据时提示且不生成文件；超上限时提示缩小时间范围分批导出；商户导出仅含本商户、代理商仅名下商户 | 三端-交易查询 |
| AC-39 | 来帐 VA 所属地区 | 存在不同 VA 归属地区的入金交易 | 三端查看来帐列表与导出文件 | 三端均有「VA 所属地区」列且导出包含，空值「-」 | 三端-来帐列表 |
| AC-40 | 付款/提现新增字段 | 存在付款（Swift/Local 各一）、提现成功交易 | 三端查看付款/提现列表与导出文件 | 清分方式展示 Local/Swift；付款列表含「中间行费用承担方」（Swift 单显示 OUR/SHA，Local 为「—」）；汇率、到账银行所在地区、费率列齐备且三端口径一致；导出包含 | 三端-付款/提现列表 |
| AC-41 | 费率记录字段齐全 | 存在费率审核与修改记录（含驳回记录） | 打开记录详情核对字段 | 费率主体/变更前后值/审核状态与原因/生效状态与时间/操作人与时间全部展示；驳回原因已过滤；无需跨页面拼凑 | 代理商/运营平台-费率记录 |
| AC-42 | 我的账户详情字段展示 | 商户存在 VA 账户（含英国账户与缺失非必填字段的账户各一） | 打开「我的账户」详情 | 表列字段逐行展示；Account Number 全明文；Bank Code / Bank Address / Branch Code / ACH Routing Number 无值不展示该行；英国账户 Sort Code 固定 60-83-82 | 账户-我的账户详情 |
| AC-43 | 我的账户复制口径 | 同上 | ①点「全部复制」；②任点一行复制 | ①复制内容含参数名且参数名均为显示名（英文）；②单行复制仅复制该行值内容（Account Number 复制明文） | 同上 |
| AC-44 | 密码错误剩余次数提示 | 验密环节连续输错且未达上限 | 每次输入错误密码提交 | 每次提示「交易密码错误，还可尝试 N 次」，N 逐次递减；「忘记交易密码？」入口保留 | 付款/提现/换汇验密弹窗 |
| AC-45 | 超限锁定提示 | 连续输错达到上限 | 再次进入付款/提现/换汇 | 弹窗「交易密码已锁定」，正文含原因与重置解锁指引；不再进入密码输入 | 同上 |
| AC-46 | 重置自动解锁 | 交易密码处于锁定状态 | 完成「重置交易密码」（验证身份+设置新密码） | 锁定自动解除、错误计数清零；用新密码验密通过并继续原资金操作 | 我的-账号与安全 |
| AC-47 | 退款证明下载 | 入金订单状态为已退款 | 点操作列「退款证明」 | 下载得到「退款证明.pdf」并提示成功；文件未生成时提示「退款证明生成中，请稍后重试」；退款处理中及其他状态订单无入口 | 入金订单列表 |
| AC-48 | 店铺编辑 | 电商店铺列表存在任一店铺 | 点「编辑」修改店铺名称并保存 | 弹窗回显现值；保存后列表与合同创建「关联店铺」选择器即时展示新值 | 账户-电商店铺 |
| AC-49 | 店铺删除约束 | ①店铺未被合同关联；②店铺已被合同关联 | 分别点「删除」 | ①二次确认后删除成功，列表移除且绑定收款账户解除；②提示「该店铺已关联合同，无法删除」，店铺保留 | 同上 |
