{"errcode":48001,"errmsg":"api unauthorized}

微信公众号基础知识说明

网页授权获取微信用户信息:两种 scope 域

https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope={2}&state=ok#wechat_redirect

snsapi_base:静默授权,直接跳转到授权后的页面,只能用于获取openid

snsapi_userinfo:必须用户同意授权后,可以获取用户基本信息

案例说明

公司有两个公众号分别是公众号1,公众号2,有个业务场景,需要用户在关注公众号1中,输入指定商品积分码后,会给另外一个公众号2发一个现金红包,这里就要在公众号1页面通过snsapi_base方式获取用户在公众号2的网页授权code,调用微信开放api换成openId,这时,用户很可能未关注公众号2(如果用户未关注公众号2,必须采用snsapi_userinfo方式才能获取到用户基本信息),本人就掉进这个坑,在调用获取token后,又调用了获取用户信息,从而导致报错{"errcode":48001,"errmsg":"api unauthorized}。

错误原因分析

由于调用微信第三方插件,对微信公众号基础api了解不深入,其实获取token接口的返回结果就有openId,格式如下:

{

"access_token":"112123123123",

"expires_in":7200,

"refresh_token":"12312312312",

"openid":"oYbGRs8MmU6bESxXcX2Z0rFRivjQ",

"scope":"snsapi_base"

}

猜你喜欢

转载自blog.51cto.com/13971805/2335320
今日推荐