企业微信小程序-临时登录凭证校验(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加密得情况就符合了。

 

解决方法:

针对本情况,在模拟操作里切换为小程序对应的企业即可。

 

 

 

 

 

 

 

 

posted @ 2021-05-14 14:48  流年sugar  阅读(1365)  评论(0编辑  收藏  举报