结论:同一用户,对同一个微信开放平台下的不同应用,unionid是相同的
用处:用unionID关联同一个微信开放平台帐号下移动应用openID、网站应用openID和公众帐号(包括小程序)openID,维护自己的用户
获取unionID的4种方式:
1、调用接口 wxgetUserInfo,从解密数据中获取 UnionID。注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。
2、如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。开发者可以直接通过 wxlogin + code2Session 获取到该用户 UnionID,无须用户再次授权。
3、如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过 wxlogin + code2Session 获取到该用户 UnionID ,无须用户再次授权。
4、小程序端调用云函数时,当满足 UnionID 获取条件时可在云函数中通过 cloudgetWXContext 获取 UnionID
参考: UnionID 机制说明
以小程序里面为例,上图:
code2Session ,参数appid、secret、js_code、grant_type='authorization_code',请求地址:
下发小程序和公众号统一的服务消息 ,参数access_token、openid、mp_template_msg,请求地址:
access_token ,参数grant_type=client_credential、appid、secret,请求地址:
openid是一个以用户为中心的数字身份识别框架,它具有开放性、分散性。openid系统的第一部分是身份验证,即如何通过URI来认证用户身份。openid按照最大自由方式授权,使用它不需要任何费用、任何注册或者许可证。
要获取openid,必须要通过OAuth20来完成网页授权才能完成,通过OAuth20来完成网页授权后,在经过用户许可后,就可以通过授权页面,获得用户的openid;
如何通过OAuth20网页授权呢?要先通过申请高级接口功能;
申请通过后,还要做一个授权页面,引导用户授权就能获得openid。
在进行微信公众号开发的时候我们很常用的一个功能就是获取用户的信息。但是获取用户信息的方式有哪几种,我目前用到的有两种。
一种是通过网页授权获取用户信息。一种是通过户和公众号产生消息交互或关注后事件推送后,根据用户OpenID来获取用户基本信息。
要特别注意的有两点:
第一点是两者向微信请求获取用户信息时的地址是不同的;
网页授权请求的“获取用户基本信息接口”接口地址:
>
很简单就是用微信提供的接口自己获取,接口是
>
一、通过JS获取授权code
[javascript] view plain copy
<script>
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&])(&|$)", "i");
var r = locationsearchsubstr(1)match(reg);
if (r != null)
return unescape(decodeURI(r[2]));
return null;
}
$(function () {
var access_code = getQueryString('code');
if (access_code == null) {
var fromurl = locationhref;//获取授权code的回调地址,获取到code,直接返回到当前页
var url = '>
方法/步骤
要获取openid,必须要通过OAuth20来完成网页授权才能完成的,通过OAuth20来完成网页授权后,在经过用户许可后,就可以通过授权页面,获得用户的openid
如何通过OAuth20网页授权呢?要先通过申请高级接口功能
申请通过后,还要做一个授权页面,引导用户授权就能获得openid!
以上就是关于微信的openID、unionID等总结全部的内容,包括:微信的openID、unionID等总结、自己的微信openid怎么查询、微信公众号获取用户信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)