spec.md 3.6 KB

wechat-payment Specification

Purpose

定义 PRI-MP-PAY-001 微信支付基础、支付结果与异常查询的正式能力边界。该规格约束统一支付契约、支付确认、支付状态查询、交易详情/票据查询和异常撤销:真实下单、wx.requestPayment 和 130994 撤销按旧版链路开放,只能由用户在页面明确确认后执行,页面生命周期不得自动触发。

Requirements

Requirement: REQ-PAY-001-01 PAY-001 微信支付契约

系统 MUST 按 PRI-MP-PAY-001 上下文包、功能点专项矩阵和集成队列裁定口径实现本模块能力,并保留跨模块契约、真实接口边界和人工联调边界。

  • MUST:从统一基线 develop@9a529fc 的模块分支 feature/PRI-MP-PAY-001-wechat-payment 开发。
  • MUST:提供统一支付契约工具,承接订单、预交金、商品和咨询支付上下文,输出支付金额、交易号、业务类型、医院、就诊人和用户标识。
  • MUST:注册支付确认、支付结果和支付异常查询页面,展示参数、状态和用户确认边界。
  • MUST:支付结果页支持 130980/130993/01050004/131027 只读查询和 SUCCESS/NOTPAY/UN 等状态分支。
  • MUST:异常查询页仅在服务端确认订单异常、且用户二次确认后,以旧版字段调用 130994 提交撤销并刷新状态。
  • MUST:支付确认页仅在用户明确确认且契约字段完整时,按旧版顺序调用 01050002、wx.requestPayment 和服务端状态查询;普通页面加载不得主动调用。
  • MUST:覆盖当前模块功能点专项矩阵,并对每个功能点给出已实现、暂缓、划归其他模块、待确认或不属于本模块的结论。
  • MUST:记录契约与依赖闭环,未完成依赖必须使用待开放、禁用态或安全兜底。
  • MUST:自检报告包含新版设计基线、旧源码功能基线、视觉布局基线、真实接口与禁止模拟业务数据检查。
  • MUST:提交待集成时列出共享文件清单、固定检查结果和人工联调项。
  • MUST NOT:子 Agent 自行合并或推送 develop。
  • MUST NOT:使用 mock、本地假接口、硬编码业务返回或静态业务数据替代真实接口。
  • MUST NOT:在页面加载、显示、回跳或刷新时自动触发真实支付、医保、退款、订单创建、预约提交、实名/OCR/人脸、IM/TRTC 等写操作;所有真实写操作均须保留用户明确确认和必要业务字段校验。

Scenario: 模块提交待集成

  • Given PRI-MP-PAY-001 模块开发完成
  • When 子 Agent 提交待集成材料
  • Then OpenSpec strict、功能点矩阵闭环、契约与依赖闭环、共享文件清单、禁止 mock/硬编码扫描、人工联调项和固定检查结果 MUST 齐全。

Scenario: 支付确认由用户确认后扣款

  • Given 用户从账单、订单详情、账户缴费或商品订单进入支付确认页
  • When 用户确认金额和就诊服务并点击“确认支付”
  • Then 系统 MUST 在字段完整时按旧版顺序调用 01050002、wx.requestPayment 与服务端状态查询;页面展示时 MUST NOT 自动调用这些写操作。

Scenario: 支付状态查询

  • Given 支付上下文包含交易号和医院/就诊人参数
  • When 用户刷新支付结果
  • Then 系统 SHOULD 查询 130980/130993/01050004/131027,并展示成功、未支付、异常或待确认状态。

Scenario: 异常撤销受控

  • Given 支付状态为异常或待确认
  • When 用户二次确认撤销
  • Then 系统 MUST 使用旧版 130994 请求字段提交撤销并刷新服务端状态;未确认或非异常订单 MUST NOT 提交撤销请求。