Files
邹进 25c081fe60
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 8h37m36s
fix: 第1批 M2、M3、M16、M23 导入与展示类缺陷
- M2 批量换绑表头改为“平台登录账号”,只认手机号,细分格式、不存在、多匹配、非平台、已禁用失败原因
- M3 后台订单列表与详情返回 C 端在线购买的交易流水号、支付渠道、商户名称,详情新增全部支付单 payments
- M16 预警规则不再返回 real_data_mb,预警列表/详情新增 threshold_mb,导出末列追加“阈值流量(MB)”
- M23 设备导入 IMEI 必填,空 IMEI 行记为失败
- OpenSpec Change fix-august-iteration-follow-up-gaps:13/18,导入任务、导出任务的 Worker 端到端验证与前端/运营通知待部署后完成
2026-10-11 23:49:29 +09:00

3.6 KiB
Raw Blame History

ADDED Requirements

Requirement: 后台订单返回 C 端在线购买的原始支付信息

系统 SHALL 在后台订单列表与 GET /api/admin/orders/{id} 的每条订单中始终返回字符串字段 third_party_trade_no(交易流水号)、payment_channel(支付渠道类型)、payment_merchant_name(商户名称)。仅当订单买家为个人客户、支付方式为微信或支付宝、且订单支付状态为已支付或已退款时,系统 MUST 从该订单自身的套餐订单支付记录(order_type = 'package_order')中状态为已支付的一条取值;存在多条已支付记录时 MUST 按支付时间倒序、记录 ID 倒序取第一条。payment_channel 取支付记录的渠道类型快照,快照为空时按支付记录关联的支付配置推断,推断不出为空串;payment_merchant_name 取商户名称快照,没有为空串。其他订单(代理购买、钱包支付、线下支付、未支付)三个字段 MUST 为空串。交易时间与支付方式沿用既有 paid_at、payment_method。

列表 MUST 按当页订单集合批量读取支付记录,MUST NOT 逐行查询;数据库错误 MUST 按既有数据库错误返回,MUST NOT 当作空值。系统 MUST NOT 调用第三方渠道补查,MUST NOT 改变 C 端订单接口与订单导出现有列。

Scenario: C 端微信或支付宝已支付订单

  • WHEN 后台调用方查询个人客户以微信或支付宝支付成功的套餐订单
  • THEN 列表与详情返回的三个字段与该订单已支付支付记录的流水号、渠道类型快照、商户名称快照一致

Scenario: 已退款订单仍返回原交易信息

  • WHEN 上述订单退款成功、订单支付状态变为已退款后再次查询
  • THEN 三个字段仍返回原已支付支付记录的值

Scenario: 非 C 端在线购买订单

  • WHEN 后台调用方查询代理购买、钱包支付、线下支付或未支付的订单
  • THEN 响应仍包含三个字段且值均为空串

Scenario: 套餐订单与同 ID 充值单不串

  • WHEN 存在一笔客户充值或代理充值支付记录,其业务单 ID 与某套餐订单 ID 相同
  • THEN 该套餐订单的三个字段只来自 order_type = 'package_order' 的支付记录

Requirement: 后台订单详情返回全部支付单

系统 SHALL 在 GET /api/admin/orders/{id} 响应中返回 payments 数组,列出该订单的全部支付单,用于排查付款后订单未成功、重复支付、更换支付方式或重付。适用范围与“后台订单返回 C 端在线购买的原始支付信息”相同;不适用的订单返回空数组 []。取数 MUST 按该订单且 order_type = 'package_order',包含所有状态,按创建时间倒序、记录 ID 倒序排序。每条 MUST 返回支付单号、支付方式、支付渠道类型(取值规则同上)、商户名称、交易流水号、金额(分)、状态与状态名称、创建时间、支付时间、过期时间;MUST NOT 返回二维码内容、商户号、商户池与路由信息、支付配置 ID、付款凭证存储键。订单列表 MUST NOT 返回 payments。

Scenario: 先微信未付再支付宝已付

  • WHEN 个人客户对同一订单先发起微信支付未完成、再用支付宝支付成功,后台查询该订单详情
  • THEN payments 含两条支付单,按创建时间倒序,状态分别为已支付与待支付或已失败,且不含二维码、商户号与路由字段

Scenario: 不适用订单返回空数组

  • WHEN 后台查询代理购买、钱包支付或线下支付订单的详情
  • THEN payments 为空数组