Files
junhong_cmp_fiber/openspec/specs/agent-recharge-payment-voucher/spec.md
huang 4aab0bcbf2
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m39s
提案以及归档
2026-04-18 09:10:29 +08:00

2.1 KiB
Raw Blame History

ADDED Requirements

Requirement: 创建线下充值订单时必须上传支付凭证

系统 SHALL 在 POST /api/admin/agent-recharges 接口中,当 payment_method=offline 时强制要求 payment_voucher_key 字段非空。凭证 key 为通过 /storage/upload-url 上传至对象存储后获得的文件标识符。当 payment_method=wechat 时,payment_voucher_key 字段忽略。

Scenario: 线下支付缺少凭证时拒绝创建

  • WHEN 调用 POST /api/admin/agent-rechargespayment_method=offlinepayment_voucher_key 为空或未传
  • THEN 系统返回 400错误码 CodeInvalidParam,消息"线下充值必须上传支付凭证"

Scenario: 线下支付有凭证时创建成功

  • WHEN 调用 POST /api/admin/agent-rechargespayment_method=offlinepayment_voucher_key 非空
  • THEN 系统创建充值记录,凭证 key 写入 tb_agent_recharge_record.payment_voucher_key,返回 200

Scenario: 微信支付不需要凭证

  • WHEN 调用 POST /api/admin/agent-rechargespayment_method=wechat,不传 payment_voucher_key
  • THEN 系统正常创建充值记录,不做凭证校验,返回 200

Requirement: 充值记录存储支付凭证

系统 SHALL 将 payment_voucher_key 持久化到 tb_agent_recharge_record 表的 payment_voucher_key 列,与充值记录创建在同一个数据库操作内完成。

Scenario: 凭证随记录创建写入

  • WHEN Create 方法执行创建充值记录
  • THEN payment_voucher_key 与其他字段一同写入数据库,不可分割

Requirement: 充值记录响应包含凭证信息

系统 SHALL 在 AgentRechargeResponse 中返回 payment_voucher_key 字段,允许为空(历史记录及微信支付无凭证)。

Scenario: 已上传凭证的线下充值记录查询

  • WHEN 查询已创建的线下充值记录
  • THEN 响应 payment_voucher_key 字段返回非空的对象存储 key

Scenario: 微信支付记录无凭证字段

  • WHEN 查询微信支付的充值记录
  • THEN 响应 payment_voucher_key 字段为空字符串或 omitempty前端不展示