1、获取企业微信推送的suite_ticket,用于获取第三方应用凭证。
企业微信服务器会定时(每十分钟)推送ticket。ticket会实时变更,并用于后续接口的调用。
请求方式:POST(HTTPS)
请求地址:https://127.0.0.1/suite/receive?msg_signature=3a7b08bb8e6dbce3c9671d6fdb69d15066227608×tamp=1403610513&nonce=380320359
请求体参数及说明:
参数 | 说明 |
---|---|
SuiteId | 第三方应用的SuiteId |
InfoType | 字符串"suite_ticket",表示微信后台推送 ticket |
TimeStamp | 时间戳 |
SuiteTicket | Ticket内容,最长为512字节 |
以上接口为微信服务器自行推送的,我们只需要在后台拦截 '/suite/receive'接口,然后拿req.body.InfoType判断是微信后台推送,然后缓存请求体中的ticket,即req.body.SuiteTicket.最后响应成功获取到ticket.
app.post('/suite/receive', function (req, res) {
// 获取数据类型
let infoType = req.body.InfoType;
if (infoType === 'create_auth') {
// 企业推送授权信息
let authCode = req.body.AuthCode;
getPermanentCode(authCode);
} else if (infoType === 'suite_ticket') {
// 微信后台推送 ticket
ticketCount++;
if (ticketCount >= 10) {
// 10min推送一次,计10次,执行一次获取suite_access_token请求
let ticket = req.body.SuiteTicket;
getSuiteAccessToken(ticket);
}
}
res.send('success');
});
2、 获取第三方应用凭证(suite_access_token)
请求方式:POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/service/get_suite_token
请求体参数及说明:
suite_id | 是 | 第三方应用的SuiteID |
suite_secret | 是 | 第三方应用的secret |
suite_ticket | 是 | 企业微信后台推送的ticket(第一步缓存的suite_ticket) |
返回结果:
{
"errcode":0 ,
"errmsg":"ok" ,
"suite_access_token":"61W3mEpU66027wgNZ_MhGHNQDHnFATkDa9-2llMBjUwxRSNPbVsMmyD-yq8wZETSoE5NQgecigDrSHkPtIYA",
"expires_in":7200
}
参数说明:
参数 | 说明 |
---|---|
suite_access_token | 第三方应用access_token,最长为512字节 |
expires_in | 有效期 |
3、获取预授权码
现在我们需要拿着第三方应用的access_token,去进行第三方服务商的安全验证。
请求方式:GET(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/service/get_pre_auth_code?suite_access_token=SUITE_ACCESS_TOKEN
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
suite_access_token | 是 | 第三方应用access_token,最长为512字节 |
返回结果:
{
"errcode":0 ,
"errmsg":"ok" ,
"pre_auth_code":"Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw",
"expires_in":1200
}
参数说明:
参数 | 说明 |
---|---|
pre_auth_code | 预授权码,最长为512字节 |
expires_in | 有效期 |
4、 设置授权配置
该接口可对某次授权进行配置。可支持测试模式(应用未发布时)。详情见https://work.weixin.qq.com/api/doc#10975/%E8%8E%B7%E5%8F%96%E4%BC%81%E4%B8%9Aaccess_token
5、获取企业的永久授权码
使用临时授权码可以换取授权方的永久授权码,并换取授权信息、企业access_token,临时授权码一次有效。
6、获取企业access_token
此处获得的企业access_token与企业获取access_token拿到的token,本质上是一样的,只不过获取方式不同。获取之后,就跟普通企业一样使用token调用API接口
7、获取企业授权信息
该API用于通过永久授权码换取企业微信的授权信息。
8、获取应用的管理员列表
该应用必须与SUITE_ACCESS_TOKEN对应的suiteid对应,否则没权限查看
9、第三方根据code获取企业成员信息
首先,构造第三方oauth2链接,获取到code。
请求方式:GET(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/service/getuserinfo3rd?access_token=SUITE_ACCESS_TOKEN&code=CODE
参数说明:
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 第三方应用的suite_access_token,参见“获取第三方应用凭证” |
code | 是 | 通过成员授权获取到的code,最大为512字节。每次成员授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。 |
权限说明:
跳转的域名须完全匹配access_token对应第三方应用的可信域名,否则会返回50001错误。
10、第三方使用user_ticket获取成员详情
请求方式:POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/service/getuserdetail3rd?access_token=SUITE_ACCESS_TOKEN
请求包体:
{
"user_ticket": "USER_TICKET"
}
参数说明:
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 第三方应用的suite_access_token,参见“获取第三方应用凭证” |
user_ticket | 是 | 成员票据 |
权限说明:
成员必须在授权应用的可见范围内。