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

本文介绍了在使用微信API时遇到48001错误的情况,该错误通常表示api未经授权。文章指出,要通过snsapi_userinfo首次获取用户授权,后续才能使用snsapi_base无感获取信息。当出现48001错误时,可能是因为后台权限设置问题,而官方文档并未明确说明。开发者需要注意这一细节以避免错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

5a007b91928d2f777fc9903d8cc49cdbc29.jpg

    /*
    * 获取网页静默授权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

微信全局返回码说明

9fc40d77b590935983bfc80b7677b2c0f5d.jpg

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

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

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

获取的正确的数据为:

258d5149e29cbd2f4864b67bc555287510e.jpg

 

转载于:https://my.oschina.net/u/1447974/blog/3023783

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值