关于openid与unionID需要了解一下
openid对于不同应用来说是唯一的 每个账号在不同应用的openid是唯一的
所以对于一个企业来说,如果存在多个程序,在a中是注册了的用户 可以用在b中判断unionid是不是相同和a中(即后台去查看有没有这个unionID有的话那就是之前注册过直接返回数据加unionID
关于理解下面这个讲的不错
https://mp.weixin.qq.com/s?__biz=MzI4MzQ5ODcyMQ==&mid=2247486248&idx=1&sn=6db9bb2e1092e7559f5cd0b1a1cdc4f6&chksm=eb888aa6dcff03b046f90d65a29b381be55e20dc370335c609c75cc34c344c75e376e167545f&xtrack=1&scene=0&subscene=93&clicktime=1601253048&enterid=1601253048&ascene=7&devicetype=android-29&version=3.0.31.2998&nettype=ctnet&abtest_cookie=AAACAA%3D%3D&lang=zh_CN&exportkey=AXu2PDIUIT5MaNkesx4VYoA%3D&pass_ticket=tAsjpIosFnUML2UhV84CeZM%2BOiRNin0%2BSM%2Bs2TS4n%2FpERfDChlNljy9oflbAvoi5&wx_header=1&platform=win
关注公众号 静默:能拿到openid unionID 非默默:能拿到openid unionID
不关注公众号 静默:能拿到openid 非默默:能拿到openid unionID
官方对于静默与非静默定义 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
授权大概流程
进入页面初始化时候直接去跳转页加上下面这个代码
window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(
local)}&response_type=code&scope=${scopeType}&state=STATE#wechat_redirect`;
appid:"公众号appid";
local:"重定向地址"; "例如 www.123.com/home/rediredtUrl 那么后台返回code之后会跳转到这个页面 地址上会带上code字段"
"有些地址可能识别不了所以传给后台需要转译 那么我们需要在公众号后台配置 www.123.com就行"
scopeType:"这个是静默还是非静默 静默授权就填 snsapi_base 非静默就填 snsapi_userinfo"
"只需要注意这三个就行 还有参数顺序不能发生变化"
下面是官方对于参数解释
跳转到我们页面例如上面我定义的www.123.com/home/rediredtUrl页面
我们可以通过下面方法拿到code
getUrlParam(name) {
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
let a = window.location.search.substr(1).match(reg);
if (a != null) {
return unescape(a[2]);
}
return null;
},`
const code = getUrlParam(code)
通过code去掉用后台接口即可获取openid unionID
最后总结一下
触发静默或者非静默(点击触发或者扫二维码触发)> 跳转重定向页面(如果是非静默需要点击同意再跳转 >获取code 调用接口拿到openid 或者unionid(非静默可以拿 静默只有关注可以拿到unionid
如果有不正确的欢迎指错 相互交流哈