a563c1ca4b
docs/api目录文档分类和补全 --------- Co-authored-by: guke <guke@autohome.com.cn> Reviewed-on: #111
1.9 KiB
1.9 KiB
POST /admin/api/withdraws/reconcile — 批量对账(扫超时 pending 单)
所属:Admin·提现 组(前缀
/admin/api/withdraws) | 鉴权:Bearer admin_token(角色:finance,super_admin恒通过) | ← 返回 API 索引
扫描创建时间超过 older_than_minutes 分钟、仍为 pending 的提现单,逐单调微信查单并归一化(成功落 success;失败/已撤销则退款落 failed;查到 WAIT_USER_CONFIRM 视为用户放弃,撤单+退款)。用于解开"扣了款但转账没发起/没确认"的孤儿单。单笔失败不影响其余(内部 rollback 后继续,下轮再试)。
路由注册顺序上,静态路径
/reconcile必须在路径参数/{out_bill_no}/refresh之前声明。
入参
- 路径:无
- query:
| 字段 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
older_than_minutes |
int | ❌ | 15 | 只扫创建时间早于「现在 − N 分钟」的 pending 单;ge=0 |
- body:无
出参
响应 200:ReconcileResult
ReconcileResult
| 字段 | 类型 | 说明 |
|---|---|---|
checked |
int | 本次扫到的超时 pending 单数量 |
resolved |
int | 其中被归一化为终态(success/failed)的数量 |
错误码
401未带/无效/过期 admin token、管理员被禁用(响应头带WWW-Authenticate: Bearer)403角色不足(需finance或super_admin)422query 参数校验失败(如older_than_minutes < 0)503微信支付未配置(捕获WxPayNotConfiguredError,detail="微信支付未配置")
说明
- 调用底层
app.repositories.wallet.reconcile_pending_withdraws(内部逐单调微信查单/撤单/退款,各自 commit)。 - 写操作记审计 admin_audit_log(
action="withdraw.reconcile",detail为{checked, resolved},含触发管理员与客户端 IP)。 - 关联 withdraw_order。