feat(M08-B): 接入保洁微信转账适配器

This commit is contained in:
Codex
2026-06-27 16:07:41 +08:00
parent 05907a6bea
commit b07c451700
22 changed files with 663 additions and 27 deletions
+18 -2
View File
@@ -50,6 +50,14 @@
- 新增 `POST /admin-api/cleaning/settlements/:settlementId/payout-failure`,仅允许对 `CONFIRMED` 结算单记录发放失败原因,保留 `CONFIRMED` 状态,支持修复外部付款后重试。
- 结算单查询返回新增发放字段,管理端后续可以直接展示发放状态、渠道流水和失败原因。
## 2026-06-27 微信转账适配增量
- `WechatPayClient` 新增微信支付商家转账请求能力,按商户转账单号、转账场景、openid、金额、备注、通知地址和场景报备信息发起 `POST /v3/fund-app/mch-transfer/transfer-bills`,并解析微信转账单号、状态、失败原因和 `package_info`
- 新增 `CleaningPayoutService`,从结算单解析租户、门店、保洁员、金额和状态,复用门店/全局微信收款账户与环境凭据,校验商户号一致、收款账户已授权、保洁员存在微信 openid,再执行真实微信转账或测试 Mock。
- 新增 `QIPAI_CLEANING_PAYOUT_MOCK_ENABLED`,仅非生产环境允许 Mock 发放;生产环境不会因为误配打开 Mock。
- 新增 `2026062729_m08b_cleaning_transfer_state` 迁移,为保洁结算单增加 `payout_state``payout_package_info`,记录 `SUCCESS``FAIL``WAIT_USER_CONFIRM``PROCESSING` 等微信转账中间态。
- 新增 `POST /admin-api/cleaning/settlements/:settlementId/wechat-transfer`,管理员可对 `CONFIRMED` 结算单发起微信转账;成功直接落 `PAID`,失败记录失败原因,待用户确认/处理中则保留 `CONFIRMED` 并写入中间态和微信 package 信息,便于后续查询或回调闭环。
## 验收结果
- `npm run build``backend/`):PASS。
@@ -73,14 +81,22 @@
- 发放闭环增量后 `node tests/migration-contract.test.mjs`PASS。
- 发放闭环增量后 `node tests/migration-runner.test.mjs`PASS。
- 发放闭环增量后 `node tests/cleaning-route.test.mjs`:PASS,覆盖结算发放成功和发放失败记录路由。
- 微信转账适配增量后 `npm run build``backend/`):PASS。
- 微信转账适配增量后 `node tests/wechat-pay.test.mjs`:PASS,覆盖商家转账请求签名与载荷。
- 微信转账适配增量后 `node tests/cleaning-payout-service.test.mjs`:PASS,覆盖真实 API 成功、失败、待确认和 Mock 门禁。
- 微信转账适配增量后 `node tests/cleaning-route.test.mjs`PASS,覆盖微信转账路由。
- 微信转账适配增量后 `node tests/migration-contract.test.mjs`PASS。
- 微信转账适配增量后 `node tests/migration-runner.test.mjs`PASS。
- 微信转账适配增量后 `node scripts/check-miniapp-m08-a.mjs`PASS。
- 微信转账适配增量后 `npm test``backend/`):PASS。
## 状态
M08-B 保持 `PARTIAL`。当前已完成保洁端任务大厅、我的任务、接单、开始、照片上传、提交验收、驳回补做、订单结束自动建任务、统计、管理员任务查询、指派、验收、驳回、超时回收、多人协作分账、待结算候选、正式结算单生成、确认、发放成功标记发放失败记录基础工程闭环;真实微信零钱/企业付款适配器接入和后台/小程序管理界面仍待继续。M08-A 的真机合法域名、真实微信支付和实物开门验证按外部条件阻塞保留,不阻断 M08-B 工程推进。
M08-B 保持 `PARTIAL`。当前已完成保洁端任务大厅、我的任务、接单、开始、照片上传、提交验收、驳回补做、订单结束自动建任务、统计、管理员任务查询、指派、验收、驳回、超时回收、多人协作分账、待结算候选、正式结算单生成、确认、发放成功标记发放失败记录、微信商家转账 API 适配、转账中间态落库和非生产 Mock 门禁;微信转账回调/轮询闭环、真实商户场景报备联调和后台/小程序管理界面仍待继续。M08-A 的真机合法域名、真实微信支付和实物开门验证按外部条件阻塞保留,不阻断 M08-B 工程推进。
## 提交
- 工程提交:`03496d7`
- 工程提交:`M08-B微信转账适配增量`
- 远端校验:待本轮 push 后执行 `HEAD == origin/main`