Files
shaguabijia-app-server/docs/api/wallet-unbind-wechat.md
T
ouzhou 8d7b91219a feat(wallet): 解绑微信前对待审核提现二次确认 (#46)
## 改动
解绑微信前若有**待审核(reviewing)**提现单,首次解绑被拦下返回二次确认,用户确认后带 `force=true` 才真解绑。

- `schemas`: `UnbindWechatRequest{force}` + `UnbindWechatResultOut{needs_confirm, message}`
- `repositories`: `has_reviewing_withdraw`(只看 reviewing)
- `api`: `unbind-wechat` 接受可选 body(兼容旧无 body 客户端);`bound` 返回真实绑定态
- `docs/api`: 同步协议

## 为什么只拦 reviewing
reviewing 单解绑后审核打款会回读空 openid → 自动退回现金(钱不丢、只为让用户知情);pending 转账已在途、解绑影响不到,不拦。

配套客户端见 shaguabijia-app-android 同名分支。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: OuYingJun1024 <1034284404@qq.com>
Reviewed-on: #46
Co-authored-by: ouzhou <ouzhou@wonderable.ai>
Co-committed-by: ouzhou <ouzhou@wonderable.ai>
2026-06-13 03:53:43 +08:00

1.8 KiB
Raw Blame History

POST /api/v1/wallet/unbind-wechat — 解绑微信(清空 openid)

所属:Wallet 组(前缀 /api/v1/wallet | 鉴权:Bearer | ← 返回 API 索引

集成实现:见 integrations/wxpay

入参

请求体 UnbindWechatRequest可选:旧客户端可不带 body,等价 force=false:

字段 类型 默认 说明
force bool false 跳过「有待审核提现」二次确认,强制解绑。首次解绑传 false;命中 needs_confirm 后用户确认,再带 true 调一次才真解绑

出参

响应 200:UnbindWechatResultOut

字段 类型 说明
bound bool 解绑成功为 false;命中二次确认(本次未解绑)时为当前真实绑定态(通常 true)
needs_confirm bool true = 有待审核提现且未 force,本次未解绑,客户端应弹确认弹窗
message string | null needs_confirm=true 时的提示文案,直接展示给用户

说明

清空当前用户的 wechat_openid / wechat_nickname / wechat_avatar_url。幂等:未绑定时调用也返回 bound=false。解绑后该微信可被其他账号绑定。

有待审核提现时的二次确认:用户有 reviewing(待审核)状态的提现单且未带 force=true 时,首次解绑被拦下——不清 openid,返回 bound(真实绑定态)+ needs_confirm=true + message。客户端据此弹确认弹窗,用户确认后带 force=true 再调一次即放行解绑。

只拦 reviewing:这类单还没打款,用户确认解绑(force=true)时立即退回现金余额(写 withdraw_refund 流水、单子置终态),后台不再挂单、不必等管理员审核。pending(打款在途)单转账已发起、解绑影响不到、照常打款到微信,故不拦