主题
BUS-11 二维码商户支付
BUS-11.1 目标与 DTS 依据
验证付款人扫描商户二维码后向合格商户付款的 P2B 旅程:二维码作为指令与路由载体被校验解析,付款人确认后以商户上下文执行标准准备—签名—提交契约,商户与付款人取得同一交易 ID 和最终结果;静态与动态二维码、篡改/过期/重复扫码路径全覆盖。
| 追溯项 | 依据 |
|---|---|
| DTS 功能场景 | §14.3 场景 7「P2B 二维码支付」(A 类核心平台场景) |
| DTS 章节 | §14.3-A 场景 7 卡片、§14.6 转账契约(复用)、§15.3 外部系统适配(IPS/QR) |
| DTS 测试目录 | TC-P2B-001–006 |
| 需求依据 | 《技术描述》附录 1 §§4.3.2、6.1.4;附录 2 §1.2.4(国家标准静态/动态 QR) |
| 追溯登记 | 附录 A |
BUS-11.2 参与角色
| 角色 | 职责 |
|---|---|
| 商户 M1/收单侧(银行 B) | 生成静态/动态二维码载荷 |
| 付款人 P1 及银行 A 渠道 | 扫码、校验展示内容、确认支付 |
| 银行 A(付款人资产持有银行) | 受保护 Idemix Holder 对 prepared request 签名;平台调用方 |
| QR/IPS 适配层(原型实现) | 解析二维码、路由至商户钱包 |
| 平台/账本 | 以商户上下文执行转账契约并赋予最终性 |
BUS-11.3 前置条件
- BUS-07 已通过:商户钱包 M1
ACTIVE且商户角色已注册、路由可解析; - BUS-09/BUS-10 已通过:P1 钱包持有充足余额;
- 二维码载荷格式(静态/动态字段、有效期、完整性保护方式)已按测试口径记录。
BUS-11.4 测试数据
| 数据项 | 要求 | 记录值 |
|---|---|---|
| 静态二维码 | 含商户标识,不定金额 | 待执行时填写 |
| 动态二维码 | 含商户标识、金额与有效期 | 待执行时填写 |
| 支付金额 | 小于 P1 可用余额 | 待执行时填写 |
| 篡改二维码样本 | 修改收款方/金额字段后的载荷 | 待执行时填写 |
| 过期二维码样本 | 有效期已过的动态码 | 待执行时填写 |
BUS-11.5 执行步骤
| 步骤 | 执行方 | 操作 | 预期结果 | 实际结果 | 证据编号 | 状态 |
|---|---|---|---|---|---|---|
| 1 | 商户 M1 | 生成动态二维码(金额、有效期) | 二维码载荷符合约定格式并记录 | 待执行 | 待填写 | 待执行 |
| 2 | P1/银行 A 渠道 | 扫码,渠道校验并解析商户 | 展示已核验支付数据(商户名称、金额);路由解析至 M1 钱包 | 待执行 | 待填写 | 待执行 |
| 3 | P1 | 确认支付 | 以商户上下文进入标准转账契约:Prepare 返回 tx_id 与待签请求 | 待执行 | 待填写 | 待执行 |
| 4 | 银行 A Holder | 对准确 prepared request 签名;银行 A Submit | 账本提交记账;状态 FINAL | 待执行 | 待填写 | 待执行 |
| 5 | 商户侧(银行 B) | 查询收款结果 | 商户与付款人取得同一交易 ID 与同一最终结果;二维码/收单方引用保留在交易记录 | 待执行 | 待填写 | 待执行 |
| 6 | 验收方 | 余额核对 | P1 减少额 = M1 增加额 = 支付金额 | 待执行 | 待填写 | 待执行 |
| 7 | P1 | 以静态二维码重复步骤 2–6(付款人输入金额) | 同标准通过;静态/动态两路径均留证 | 待执行 | 待填写 | 待执行 |
BUS-11.6 预期核对点
- 二维码定位:二维码是指令与路由载体,不替代账本;余额变化仅发生在账本提交记账时(§14.3-A 场景 7);
- 展示核验:付款人确认的是渠道已核验的商户与金额;动态金额变化需重新确认;
- 一致视图:商户与付款人对同一
tx_id看到相同终态; - 对账:交易记录保留二维码及收单方引用,可与商户侧记录对账;
- 契约继承:防重复、最终性、审计控制全部继承 §14.6。
BUS-11.7 负向与异常用例
| 用例 | 操作 | 预期结果 | 实际结果 | 证据编号 | 状态 |
|---|---|---|---|---|---|
TC-P2B-002 | 使用过期动态二维码支付 | 拒绝;无 Prepare 或 Prepare 被拒 | 待执行 | 待填写 | 待执行 |
TC-P2B-003 | 使用篡改二维码(收款方/金额被改) | 校验失败拒绝,或展示数据与载荷不符被阻断;留安全证据 | 待执行 | 待填写 | 待执行 |
TC-P2B-004 | 超额支付 | REJECTED;不花费 UTXO | 待执行 | 待填写 | 待执行 |
TC-P2B-005 | 同一二维码/同一确认重复提交(重复扫码) | 防重复:不重复扣款;重复请求返回既有结果 | 待执行 | 待填写 | 待执行 |
| 受限商户 | 将 M1 置 SUSPENDED 后支付,验后恢复 | 受治理拒绝;恢复后可支付 | 待执行 | 待填写 | 待执行 |
TC-P2B-006 | 支付后模拟商户侧同步响应丢失 | 商户经权威状态查询恢复结果;交易保持 FINAL | 待执行 | 待填写 | 待执行 |
BUS-11.8 执行信息、结果与签署
| 项目 | 记录 |
|---|---|
| 原型版本与镜像摘要 | 待执行时填写 |
| 测试环境 | 待执行时填写 |
| 执行日期与参与人员 | 待执行时填写 |
动态/静态支付 tx_id | 待执行后填写 |
| 二维码载荷样本证据编号 | 待执行后填写 |
| 执行结果 | 待执行 |
| 问题/偏差(附录 F 编号) | 待填写 |
| 复测结论 | 待填写 |
| 甲方业务代表签署 | 待填写 |
| 服务商执行代表签署 | 待填写 |