首页 > 技术文章 > 微信网页授权获取用户OPEN ID 等信息,错误码 48001

zoutong 原文

问题描述

前端在做微信网页授权时,调用我们已经运行很久的获取微信用户信息接口时,报微信错误码 48001。

解决办法

https://open.weixin.qq.com/connect/oauth2/authorize?appid=&redirect_uri=&response_type=code&scope=snsapi_base&state=#wechat_redirect

将微信网页授权地址中的 scope 参数设置为 snsapi_userinfo

问题原因

根据微信官方提供的《全局返回码说明》,我们查到错误码的解释:


 
48001含义

根据错误码的提示,我们排查了公众号后台的配置,发现我们的接口权限已经授权。但是仍会报这个异常。而且,我们授权服务已经上线很久,以前的网页授权业务并没有这个问题。通过与前端沟通,核对了appid、snsapi_base等信息。发现snsapi_base与以往的参数不一致。

  • scope=snsapi_base 时,只能用于获取openid,不能获取用户的基本信息
  • scope=snsapi_userinfo时,可以获取用户信息、open_id、union_id(需要绑定微信开放平台)等。

scope 设置为 snsapi_base,调用微信获取用户信息接口时,由于未获得用户授权同意(snsapi_base为静默授权,不需要用户同意),因而调用接口失败。

最后,要吐槽微信这个返回码文档。并没有说清楚出现这个错误的真正原因。

推荐阅读