40 lines
1.9 KiB
Markdown
40 lines
1.9 KiB
Markdown
# Payment Checkout Feedback Specification
|
|
|
|
## ADDED Requirements
|
|
|
|
### Requirement: 暂无可用商户提示
|
|
|
|
客户支付端 SHALL 使用稳定的机器可读错误码识别“无可用商户”,并使用唯一明确的中文提示,不暴露内部商户路由信息。
|
|
|
|
#### Scenario: 识别无可用商户错误
|
|
- **GIVEN** 后端在支付发起响应中返回已确认的“无可用商户”稳定错误码
|
|
- **WHEN** 客户点击支付并收到该错误
|
|
- **THEN** 页面 MUST 显示“暂无可用商户”
|
|
- **AND** 前端 MUST NOT 通过匹配中文 `msg` 或其他可变文案判断该错误
|
|
|
|
#### Scenario: 无可用商户时不展示内部信息
|
|
- **WHEN** 页面展示“暂无可用商户”
|
|
- **THEN** 页面 MUST NOT 展示商户 ID、商户名称、商户池名称、成员列表、轮询策略、阈值、`routing_epoch`、凭证或凭证版本
|
|
|
|
### Requirement: 客户支付失败反馈
|
|
|
|
客户支付端 SHALL 对普通支付失败使用面向用户的统一提示,并禁止暴露商户切换或自动重试的内部处理。
|
|
|
|
#### Scenario: 普通支付失败提示重新发起
|
|
- **GIVEN** 客户支付请求因非“无可用商户”原因失败
|
|
- **WHEN** 页面展示失败结果
|
|
- **THEN** 页面 MUST 显示“支付失败,请重新发起支付”
|
|
- **AND** 前端 MUST NOT 自动重放同一支付请求
|
|
|
|
#### Scenario: 不提示切换商户重试
|
|
- **WHEN** 任意客户支付失败
|
|
- **THEN** 页面 MUST NOT 显示“切换商户重试”或任何等价文案
|
|
- **AND** 页面 MUST NOT 提供切换商户的按钮、入口或操作提示
|
|
- **AND** 页面 MUST NOT 暴露后端是否尝试过多个商户
|
|
|
|
#### Scenario: 用户主动重新发起支付
|
|
- **GIVEN** 客户已收到支付失败提示
|
|
- **WHEN** 客户主动再次发起支付
|
|
- **THEN** 前端 MUST 按支付接口约定创建一笔新的支付请求
|
|
- **AND** 前端 MUST NOT 复用失败支付请求的商户选择或前端临时支付状态
|