前端代码使用wx.qy.login方法获取到了code,传给后端,后端调用接口:
https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token=xxxxxxx&js_code=前端给的code&grant_type=authorization_code
返回结果是errcode=40029, errmsg=invalid code, hint: [1602662671_51_03188a5a9c8b29029742635bc12c4dd1],但是这个code是wx.qy.login给的,还会无效吗? 公司CorpID:ww6428221c7ee8ac33 企业微信小程序 APPID:wxe971ac5798f4a13a
你好,看日志,使用的accesstoken是某个名字是云进销存标准版自建应用获取的,而不是这个wxe971ac5798f4a13a小程序关联企业微信的应用secret获取的accesstoken
A接口:第三方请求登录凭证校验接口:
https://qyapi.weixin.qq.com/cgi-bin/service/miniprogram/jscode2session?suite_access_token=SUITE_ACCESS_TOKEN&js_code=CODE&grant_type=authorization_code
(注意,第三方请求jscode2session的url与企业自建应用不同,url中多了/service/;参数是suite_access_token,而非access_token,请开发者注意区分。)
B接口:自建应用登录凭证校验接口:
https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token=ACCESS_TOKEN&js_code=CODE&grant_type=authorization_code
这个B接口,获取access_token使用接口:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET(这里的SECRET是企业管理后台里面,与小程序的
AgentId写一块的那个SECRET,这个SECRET每次重新关联小程序都会发生变化)
这个的地方,之前做的时候,如果该企业内部人员,使用第三方请求登录凭证校验接口,即上面的A接口,获取用户信息,也能获取到,只是获取的用户的userid是一串数字,
如果使用B接口,内部人员获取的就是拼音形式可识别的userid,所以,我们现在做了一个判断,如果使用企业微信小程序的用户是公司内部人员,则使用A接口获取用户
信息,如果是其他公司,则使用B接口获取用户信息,这样,就都可以拿到可识别的拼音形式的userid;
我们现在的问题是,第三方公司的人,使用小程序,可以正常使用,自己公司的人,会一直提示40029 invalid code,
现在我不知道,对于企业内部人员,想要获取用户信息,到底用哪个接口,SECRET是拿哪个呢。。