文档地址:
https://work.weixin.qq.com/api/doc#90000/90136/90289

1、获取code

wx.qy.login
调用接口 wx.qy.login() 获取企业微信派发的临时登录凭证(code)

2、获取应用 或小程序的 secret

地址:
https://work.weixin.qq.com/api/doc#10013/%E7%AC%AC%E4%B8%89%E6%AD%A5%EF%BC%9A%E8%8E%B7%E5%8F%96access_token

请求方式:GET(HTTPS
请求URL:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRECT
注:此处标注大写的单词ID和SECRET,为需要替换的变量,根据实际获取值更新。其它接口也采用相同的标注,不再说明。

若企业安装了第三方应用,该服务商可通过“获取企业access_token”获得此调用凭证。

参数说明:

参数 必须 说明
corpid 企业ID
corpsecret 应用的凭证密钥

权限说明:

每个应用有独立的secret,所以每个应用的access_token应该分开来获取

3、服务端请求接口返回用户ID与会话密匙

接口地址:
https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token=ACCESS_TOKEN&js_code=CODE&grant_type=authorization_code
请求参数
参数 是否必须 说明
access_token 是 调用接口凭证(注意,此处的access_token 是企业微信应用的access_token,获取方法参见“获取access_token”。要求必须由该小程序关联的应用的secret获取
js_code 是 登录时获取的 code
grant_type 是 此处固定为authorization_code
权限说明:
access_token必须是与小程序关联的应用secret所获得,见文档。
返回说明
//正常返回的JSON数据包
{
“corpid”: “CORPID”,
“userid”: “USERID”,
“session_key”: “kJtdi6RF+Dv67QkbLlPGjw==”,
“errcode”: 0,
“errmsg”: “ok”
}
//错误时返回JSON数据包(示例为Code无效)
{
“errcode”: 40029,
“errmsg”: “invalid code”
}
参数说明

corpid 用户所属企业的corpid
userid 用户在企业内的UserID,对应管理端的帐号,企业内唯一。注意:如果该企业没有关联该小程序,则此处返回加密的userid
session_key 会话密钥
注意:
企业微信的jscode2session请求url与微信的不同
企业微信的jscode2session返回的是userid,而微信返回的是openid
获取access_token时请使用企业的corpid参数,请勿使用小程序的appid

4、校验用户当前 session_key 是否有效。

wx.qy.checkSession
校验用户当前 session_key 是否有效。
如果有重新登录,需要调用 jscode2session 接口后,session_key 才会有效
OBJECT参数说明
参数名 类型 必填 说明
success Function 否 接口调用成功的回调函数,session_key未过期
fail Function 否 接口调用失败的回调函数,session_key已过期
complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)
示例代码
wx.qy.checkSession({
success: function(){
//session_key 未过期,并且在本生命周期一直有效
},
fail: function(){
// session_key 已经失效,需要重新执行登录流程
wx.qy.login() //重新登录
….
}
})