首页 > 微信大坑,获取不到之前使用开放平台登录用户的 unionid

微信大坑,获取不到之前使用开放平台登录用户的 unionid

我们的应用和公众号已经在微信开放平台进行了关联,现在用户登录可以获取到用户的 unionid,我也可以通过获取用户基本信息接口 https://api.weixin.qq.com/cgi-bin/user/info 获取到公众平台登录用户的账户信息,但是想获取开放平台用户的信息(因为之前开放平台登录用户没有保存 unionid,需要更新一遍 unionid 避免用户重复注册),这个接口是不能用的,如果你用公众平台服务号获取的 token,调用这个接口微信会告诉你 openid 不对

好吧,服务号 token 不认开放平台的 openid 我可以理解,但是我用开放平台 appid 和 appsecrect 获取的 token 依然报错:

尼玛,没权限,而且开放平台帐号压根没办法开通用户管理的 API 权限

只能去试试微信开放平台提供的获取用户信息接口: https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID ,结果还是报错,因为这个接口的 access_token 只能是 openid 对应用户的 token,我们在公众平台使用 appid 和 appsecret 生成的 token 是用不了的:


首先要说的是,你到底有没有理清你的逻辑。公众平台和开发平台相互独立,你来回使用一方的access_token或者openid去另一方获取数据当然是不可行的。
在公众平台获取用户unionid是通过公众平台的access_token去调用https://api.weixin.qq.com/sns/userinfo这个接口获取的。
如果你通过上述接口获取的结果里没有unionid,则表示你没有使用snsapi_userinfo这个授权域(也就是公众平台授权时使用的静默授权,没有弹出授权页)。这时候你所有的access_token都是获取不到unionid

【热门文章】
【热门文章】