問題描述
前端在做微信網頁授權時,調用我們已經運行很久的獲取微信用戶信息接口時,報微信錯誤碼 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為靜默授權,不需要用戶同意),因而調用接口失敗。
最后,要吐槽微信這個返回碼文檔。並沒有說清楚出現這個錯誤的真正原因。