# 2026-04-25 工作日志

## 微信支付"下单账号与支付账号不一致"问题修复

**问题**：用户支付时微信提示「下单账号与支付账号不一致，请核实后再支付」

**根因**：下单时后端使用的 openid 与当前实际支付的微信用户 openid 不匹配。前端在创建订单前没有刷新 openid，依赖登录/注册时的旧绑定。

**修改文件**：
1. `src/utils/payment.ts` — 新增 `ensureOpenIdBeforePay()` 方法，在 `pay()` 方法中、微信支付创建订单前强制调用 `Taro.login()` + `getWxOpenId()` 刷新绑定当前用户的 openid
2. `src/hooks/useUser.ts` — 在 `autoLoginByOpenId()` 登录成功后补充 openid 绑定逻辑（之前只调了 loginByOpenId 没有调 getWxOpenId）

**方案特点**：
- 非阻塞设计：openid 刷新失败不阻止支付（网络波动时兼容）
- 仅微信支付触发：余额支付/支付宝不受影响
- 兼容已有 openid 的场景：即使已有 openid 也会刷新（防止切号）
