feat(M05-A): 建立统一支付领域与幂等回调

This commit is contained in:
Codex
2026-06-20 14:30:35 +08:00
parent f9ec0af2ee
commit 6c506ff862
19 changed files with 905 additions and 14 deletions
@@ -0,0 +1,8 @@
# M05-A 统一支付领域 API
- `POST /app-api/payments`:基于订单服务端未付金额创建支付单;客户端不能提交金额。
- `POST /app-api/payments/:paymentId/test-complete`:仅在非生产环境且显式开启时模拟可信支付回调。
支付单使用 `clientRequestId` 幂等。测试回调使用 provider + callbackId 唯一键;错误金额回调会保存为拒绝状态但不记账。成功回调在同一事务内更新支付单、订单已付金额、订单状态历史和房间预占。
测试适配器默认关闭,生产环境即使配置开关为 true 也强制关闭。
@@ -0,0 +1,10 @@
# M05-A 统一支付领域数据库变更
- 迁移版本:`2026062015`
- 扩展 `qipai_payments`:小程序、门店、provider、客户端幂等键、币种、provider 支付号和失败信息。
- 新增 `qipai_payment_attempts``qipai_payment_callbacks``qipai_refunds``qipai_profit_shares`
- 新增 `qipai_payment_configs`,按 platform_app / tenant / store 分层解析。
- 支付配置只保存 `credential_ref`,例如 `env:WX_STORE`,不保存密钥、证书或 Token 正文。
- 旧支付记录迁移时从订单回填门店,并生成稳定的 legacy client request id。
所有金额使用整数分。支付回调以 tenant + provider + callbackId 唯一约束防止重复记账。