解决获取微信用户信息 48001错误

原创
2019/03/18 09:38
阅读数 4.8K

大家都知道通过网页调用微信官方提供的API获取微信用户基本信息有两种方式:

  1. 用户通过授权的方式
  2. 用户非感知的静默授权方式

    /*
    * 获取网页静默授权url
    */
    public function snsapiBaseUrl($url)
    {

        $redirect_uri = urlencode($url);
        $auth_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . $this->appId . "&redirect_uri=" . $redirect_uri . "&response_type=code&scope=snsapi_base&state=base#wechat_redirect";
        return $auth_url;

    }

    /*
     * 获取用户信息的网页授权url
     */
    public function snsapiUserinfoUrl($url)
    {
        $redirect_uri = urlencode($url);
        $auth_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . $this->appId . "&redirect_uri=" . $redirect_uri . "&response_type=code&scope=snsapi_userinfo&state=userinfo#wechat_redirect";
        return $auth_url;
    }

然后,如果想通过静默授权方式获取用户信息,必须第一次调用snsapi_userinfo方式,经用户授权之后,以后再通过snsapi_base获取用户信息之后,就不需要用户授权了,否则则会报48001错误,错误信息为:

错误码说明文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433747234

微信全局返回码说明

Array
(
    [errcode] => 48001
    [errmsg] => api unauthorized, hints: [ req_id: hJhbDpLoRa-1pKena ]
)

技术文档说明为: api 功能未授权   实际上后台已经取得了相关权限

然而官方文档并没有对此进行说明,开发者在开发时需注意

获取的正确的数据为:

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部