文章
  • 文章
搜索
禀漾科技多网合一技术服务平台
3H-shop商城系统

新 闻 资 讯

NEWS INFORMATION

详细内容

微信H5和微信小程序获取openid和unionid等用户信息的机制解读

我们在做微信开发的时候有时候需要确认用户身份来完成登录注册、消息推送、用户关联、快捷登录等功能,但是小程序或H5应该在何时获取openidunionid,如何才能设计出更加顺滑的操作,让产品经理们倍感头疼,今天就来简单讲讲H5和小程序获取用户信息的机制。

什么是openid、unionid和用户基本信息?


WechatIMG506.png

这张图的意思是说,同一个微信用户在不同的应用中存在不同的唯一ID,就是openid,但是当两个应用绑定在同一个微信开发者平台账号下的时候,可以判断出两个openid关联的是同一个unionid,这样,开发者就知道两个应用中的两个用户其实是同一个用户。需要注意,假如两个应用没有绑定在同一个开发者账号下,那意味着无法获取到unionid

用户基本信息包括:openidunionid、昵称、头像、所在城市等众多信息,我们不需要明确太多,完全可以查看接口,这里要注意的是用户基本信息是包括unionid的,但是如果没有申请开发者平台账号并进行应用的绑定,那么用户基本信息是无法返回unionid的。

H5如何获取用户的openid和unionid

明确H5:

这里说的H5,是指网页应用,也就是说用户在微信客户端访问网页应用,可以通过授权机制获取到用户的信息,进而实现业务逻辑。

网页授权回调域名的说明:

(翻译一下,就是H5网页在微信公众号的配置,这个不难,也不是重点,就直接复制微信开发者文档里面的内容看看就行了)

(1) 在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;
(2) 授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html  http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com  http://music.qq.com  http://qq.com 无法进行OAuth2.0鉴权;
(3) 如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可。
参考文档链接

网页授权的两种形式

官方文档
方式1-静默授权获取openid

snsapi_basescope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

方式2-非静默授权获取openid

snsapi_userinfoscope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
(翻译:就是说,用户可以通过授权框确认授权,获取用户的基本信息,这里的基本信息是包含unionid的,但是前提是应用已经绑定了微信开放平台的开发者账号)

到这里两种方式并没有完,微信官方文档中又增加了一条奇怪的限制:
用户管理类接口中的获取用户基本信息接口,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。




Copyright 2014-2025    All rights reserved

客服中心
联系方式
17187468006
- 经理
扫一扫,添加微信