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

你们都知道经过网页调用微信官方提供的API获取微信用户基本信息有两种方式:php

  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错误,错误信息为:api

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

微信全局返回码说明app

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

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

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

获取的正确的数据为:code

相关文章
相关标签/搜索