微信接口权限与多站共用一个公众号
用户信息获取收紧后的授权策略、公众号借权机制,以及多站点共用一个公众号的冲突与解法。
一、用户信息获取的调整与应对
微信对用户信息的获取逐步收紧,站点需要在正确的时机引导授权,而不是静默拉取:
- 静默授权只能拿到 openid,用于识别老用户,拿不到昵称头像。
- 显式授权需要用户点击确认,适合登录与完善资料环节。
- 手机号等敏感信息需要在具备相应权限的服务号下,通过专用按钮触发用户确认。
因此登录流程建议做成「先静默识别,再在需要昵称头像时弹出授权」,避免用户一进站就被要求授权而流失。
二、公众号借权
同一主体下若已有认证服务号,其他站点可通过借权方式复用该公众号的接口权限,无需为每个站点单独认证:
- 由公众号方在后台生成借权授权,指定借用范围与有效期。
- 借用方在自身后台填写公众号方的 AppID 与借权凭证。
- 借权方只获得接口调用能力,粉丝与素材仍归属原公众号。
借权关系与期限需登记留存,到期前续期,否则站点登录会突然失效。
三、多站共用一个公众号的冲突
| 冲突 | 原因 | 解决 |
|---|---|---|
| 网页授权域名数量不足 | 授权域名有数量上限 | 把站点统一到主域下的目录或子域,或为部分站点单独申请公众号 |
| 服务器配置互相覆盖 | 一个公众号只能指向一处回调 | 由统一入口做分发,或各站使用独立的借权凭证 |
| 用户识别混乱 | 同一 openid 在不同站点被当作同一用户 | 按站点维度建立用户映射,避免跨站串号 |
四、维护与排查
- 接口报错时,先核对 AppID、AppSecret 与 IP 白名单三处。
- 授权域名变更后,老用户需要重新授权才能登录。
- 借权到期、AppSecret 重置、回调地址变更都会导致登录失败,建议在后台留档,并在变更前做一次回归测试。