企业微信小程序-临时登录凭证校验(code2Session)中获取的userid是加密的
场景:
小程序端通过wx.qy.login()接口获取code,到服务端进行如下调用获取Userid
//获取企业token var token = await Senparc.Weixin.Work.Containers.AccessTokenContainer.GetTokenAsync(corpId, corpSecret); //获取当前登录用户企业用户 var oauth= await Senparc.Weixin.Work.AdvancedAPIs.MiniApi.LoginCheckAsync(token, code); //Senparc.Weixin.Work.AdvancedAPIs. var UserId = oauth.userid;
但是获取的userid是加密的如下
查看官网对于userid加密的说法
检查了一下结果发现返回的corpid的值是另外一个企业B的信息,但奇怪的是小程序中的Appid是当前企业A,服务端的企业信息也是配置的企业A的信息并且
Senparc.Weixin.Work.Containers.AccessTokenContainer.GetTokenAsync(corpId, corpSecret)请求的corpId, corpSecret也是企业A的信息。
后查阅官方资料发现
检查微信开发者工具发现还真是没有切换企业为A,导致wx.qy.login()返回的Code是企业B的信息,那么与userid加密得情况就符合了。
解决方法:
针对本情况,在模拟操作里切换为小程序对应的企业即可。