一直以来,公司都在运营一个微信号和两个小程序。在每个应用的入口,除了秘密登录之外,还有一个微信快速登录。
目前,openId用于业务逻辑处理。但有一个问题:因为属于不同的应用,所以导致了同一个微信。
applet 1和applet 2返回的openid不同。
显然,这是非常不合理的!就解决方案而言:
①两个openId都可以存储,然后进行比较。但是随着应用的增加,保存的openid会逐渐增加。
②鉴于此,官方的方案是使用unionid。
二、什么是unionid2.1、什么是unionid简单来说,如果开发者拥有多个移动应用、网站应用、微信官方账号应用等。,用户的唯一性可以通过unionid来区分。
只要是同一微信开放平台账号下的应用、网站或微信官方账号,其unionid都是唯一的。换句话说:同一个用户对同一个微信感兴趣
开放平台下不同应用的unionid是一样的。
2.2、如何获取unionid开发者账号绑定的小程序可以通过以下方式获取unionid
①开发者使用wx.login+jscode2session获取用户的unionid。没有用户授权。
②小程序调用云函数时,可以通过云函数中的Cloud.getWXContet获取unionid。
2.3、绑定小程序到微信开放平台①注册微信开放平台
登录微信开放平台:https://open.weixin.qq.com/
②注册账号
填写邮箱-& gt;密码-& gt;填写组织的名称-& gt;和位置-->:认证个人信息(姓名和身份证号)->:绑定管理员
PS:基本的账号注册流程,没什么特别要说的。
③绑定applet
填写小程序登录账号和密码,最后小程序管理员确认扫码即可。大致如下:
微信可以快速登录相关代码:
& lt;!-微信快速登录-& gt; & lt;view class = & # 34xa-微信-登录-面板& # 34;& gt & lt;button class = & # 34xa-微信-登录-BTN & # 34;bindtap = & # 34微信登录& # 34;& gt & lt;image class = & # 34xa-微信-登录-logo & # 34;src = & # 34../log in/we chat . png & # 34;& gt& lt/image & gt; & lt;/button & gt; & lt;/view & gt; & lt;view class = & # 34集装箱& # 34;& gt & lt;view class = & # 34userinfo & # 34& gt & lt;block wx:if = & # 34;{{!hasUserInfo } } & # 34& gt & lt;button wx:if = & # 34;{ { canIUseGetUserProfile } } & # 34bindtap = & # 34getUserProfile & # 34& gt获取头像昵称
3.2、向后端发起验证请求we chat log in(){ const that = this; wx . log in({ success(RES){ if(RES . code){ /*发起网络请求*/ 调试器; that . dowechatfastlogin(RES . code); } else { console . log(& # 39;登录失败!'+RES . errmsg) } } }) }, Java
3.3、后端发起网络请求public R wechatFastLogin(WeichatFastLoginVO WeichatFastLoginVO){ String URL = null; try { URL = useraccestokenurl . replace(& # 34;APPID & # 34,appId)。替换(& # 34;秘密& # 34;,秘密) 。替换(& # 34;JSCODE & # 34,weichatfastloginvo . getwechatcode()); logger . info(& # 34;获取微信登录凭证的验证网址:& # 34;+网址); } catch(Exception e){ logger . info(& # 34;未能获得微信登录凭证的验证:& # 34;+网址); } /*发送get请求获取WxUserAccessToken */[h/]String resp rlt = httpclientutil . doget(URL,null); WxUserAccessTokenDTO WxUserAccessTokenDTO = JSON object . parse object(resp rlt,WxUserAccessTokenDTO . class); if(null = = wxUserAccessTokenDTO){ return r . error(& # 34;微信未登录,请先登录微信!"); } else if (null!= wxuseraccesstokendto . geterrcode()& & wxuseraccesstokendto . geterrcode()!= 0){ return r . error(& # 34;微信未登录,请先登录微信!"); } else if(null = = wxuseraccesstokendto . get OpenID()| | wxuseraccesstokendto . get OpenID()。isEmpty()){ return r . error(& # 34;微信未登录,请先登录微信!"); } String openId = wxuseraccesstokendto . get openId(); ... /* unionid存在于wxUserAccessTokenDTO中,可以用于自定义相关的业务逻辑处理*/ } Java

微信公众平台需要见证人,但如果是同一主体,暂时可以不做认证。认证费用300元左右。
4.3、关联不同主体时当你要关联不同主体的微信微信官方账号和小程序时,首先要进行认证。








