企业微信获取企业凭证全流程

时间:2024-04-09 15:06:55

1、配置回调配置

企业微信获取企业凭证全流程
在如图所示的地方配置指令回调URL,这个URL地址是你自己写的服务器的地址,需要同时可以响应GET请求POST请求
GET请求:在你第一次填写“指令回调URL”的时候,需要在输入框下面会有一个按钮,点击之后会给你写的url发送一个GET请求,来验证这个URL的合法性。对参数“timestamp”、“nonce”、“echostr”、“msg_signature”做一系列校验,校验方式比较繁琐,官网给出了SDK辅助校验,还是比较方便的。https://work.weixin.qq.com/api/doc/90000/90138/90307,参照官网示例可以很容易完成验证。
企业微信获取企业凭证全流程
笔者用的是python写的,WXBizMsgCrypt即是python的SDK,接入调用一下,然后将sEchoStr返回即可完成认证。
POST请求:认证完成之后,企业微信每十分钟会推送一个SuiteTicket过来,这个SuiteTicket也是被加密过的,需要使用SDK解密之后才能获得。POST请求成功后需要返回“success”字符串才可以。

2、获取第三方应用凭证

通过刚刚企业微信推送的suitTicket以及小程序配置项suite_id和suite_secret,发送post请求到https://qyapi.weixin.qq.com/cgi-bin/service/get_suite_token获取第三方应用凭证suite_access_token
企业微信获取企业凭证全流程

3、获取预授权码

通过获取的suite_access_token,发送get请求到https://qyapi.weixin.qq.com/cgi-bin/service/get_pre_auth_code?suite_access_token=SUITE_ACCESS_TOKEN获取预授权码pre_auth_code。
企业微信获取企业凭证全流程

4、对预授权码设置授权配置

第三步获取到的预授权码暂时是无效的,需要进行授权配置才能变成有效的。如果直接采用第三步获取的预授权码进行第五步的操作,会提示”该应用已下线“的报错。
通过刚刚获取的预授权码以及第二步获取的suit_access_token,发送POST请求到https://qyapi.weixin.qq.com/cgi-bin/service/set_session_info?suite_access_token=SUITE_ACCESS_TOKEN,对预授权码进行授权配置
企业微信获取企业凭证全流程
appid参数代表允许进行授权的应用id,如1、2、3, 不填或者填空数组都表示允许授权套件内所有应用。
auth_type为授权类型:0 正式授权, 1 测试授权。 默认值为0。注意,请确保应用在正式发布后的授权类型为“正式授权”

5、通过suitID和pre_auth_code获取临时授权码

获取临时授权码需要用户自己点击授权才可以,具体操作流程如下

  1. 服务端拼接一个url https://open.work.weixin.qq.com/3rdapp/install?suite_id=SUITE_ID&pre_auth_code=PRE_AUTH_CODE&redirect_uri=REDIRECT_URI&state=STATE ,参数分别是预授权码pre_auth_code、suite_id(小程序自己的配置)、redirect_uri(转跳URL), 转跳url也是本地服务器自己配置的。
  2. 由前端请求这个url进入一个页面,用户点击授权
  3. 授权成功后会给redirect_uri发一个get请求,auth_code(临时授权码)在这个get请求的xml请求体里面。注意auth_code是有时效性的,需要尽快用临时授权码换取永久授权码。

在应用测试初期可以点击”安装测试“按钮做到在测试环境获取到企业的永久授权码。企业微信获取企业凭证全流程

企业微信获取企业凭证全流程
点击确定
弹出一个二维码页面,注意不要立马扫码授权,上面的url路径有临时授权码配置和redirect_uri配置,改为自己配置的即可完成授权。

6、通过临时授权码换取永久授权码

通过第二步获取的suite_access_token和第五步获取的临时授权码换取永久授权码,发送POST请求到https://qyapi.weixin.qq.com/cgi-bin/service/get_permanent_code?suite_access_token=SUITE_ACCESS_TOKEN,获取永久授权码

企业微信获取企业凭证全流程
获取到的永久授权码是不会变的,永久且唯一的

7、通过永久授权码获取企业凭证

通过第二步获取的suite_access_token和第六步获取的永久授权码获取企业凭证,发送POST请求到https://qyapi.weixin.qq.com/cgi-bin/service/get_corp_token?suite_access_token=SUITE_ACCESS_TOKEN,获取企业凭证
企业微信获取企业凭证全流程
通过获取的企业凭证即可获取其他的一系列信息,包括部门列表、成员列表等。