場景:
小程序端通過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加密得情況就符合了。
解決方法:
針對本情況,在模擬操作里切換為小程序對應的企業即可。