企业微信开发流程:
一、申请服务商中账号,并且通过企业微信认证
应用管理>开发接口>通用开发参数 获取配置信息(需要回调校验),
1、在这一步需要设置 系统事件接收URL,企微微信会通过GET方法验证URL是否有效
2、真正的数据处理是通过POST方法传输数据过来
具体看文档: https://work.weixin.qq.com/api/doc/90001/90143/91116
怎么验证解密的直接看demo就可以了:https://work.weixin.qq.com/api/doc/90001/90145/90446
二、创建应用
在应用管理>应用开发>网页应用>本地应用>创建应用
这个时候,你看到要填写、勾选的信息,不用纠结怎么填,先把应用logo、名称、标语、简介填了,然后就下一步配置开发信息,
看到这些各种域名、url又要犯愁怎么填写了具体说明文档也有详细说明:
https://open.work.weixin.qq.com/wwopen/common/readDocument/13245#2.%20%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8
我这里简单说明下:
应用主页: 就是你在企业微信app点击后会跳转到的地址
可信域名:设置可信域名后支持应用的OAuth2授权、JSSDK调用等
安装完成回调域名: 就是授权成功后,可重定向的地址域名
业务设置url: 如下图所示,点击跳转后,会在url后面带上 ?auth_code=xxx,后台可以根据auth_code获取跳转用户信息: https://work.weixin.qq.com/api/doc/90001/90143/91125
数据回调url:这个主要是 应用内具体事件的监听,比如用户信息、通讯录修改之类的提醒;
指令回调url:这个是配置管理事件的,比如企业对应用的授权变更(添加删除修改)还有接收应用的ticket参数。
数据回调和指令回调都是需要解密请求参数的,在配置地址时,需要通过GET请求校验,以后的业务请求都是通过POST请求。
这里有个坑就是 解密时 receiveId ,有时候传的是企业的corpid,有时传的是应用的suiteid,那怎么判断呢,当是数据回调时,解密receiveId 用的是企业的corpid,当是指令回调时,解密receiveid用的是应用的suiteid, 我们可以这设置: callback?type=1&corpid=$CORPID$
type判断的是指令回调还是数据回调,$CORPID$是微信的配置,可以在回调时填充为当前租户的id
至于token和aeskey 就是解密所用到的了,自动生成校验即可。
参考文档,直接看示例代码就好: https://work.weixin.qq.com/api/doc/90001/90145/90446
需要注意的是(第三方应用修改应用内配置,未上线的需要重新安装生效,已经上线的需要重新上线生效)
至此,有关配置都已经完成了,接下来开始走授权流程了。
对应的就是这么几步,文档上也写的很清楚了,
文档地址 :https://work.weixin.qq.com/api/doc/90001/90143/90597
很多同学一开始会迷惘如何区分三种类型access_token,然后在什么时候用这三种token。
简单地说: 在应用授权前和授权时,调用的接口一般都是用的第三方应用的token。而在授权后,操作企业相关接口,用的就是授权企业的token。
在第三方应用开发提供的接口中,会涉及到三种类型的access_token。下面表格对这三类token的定义及使用场景进行说明,开发者应在不同场景中选择对应的token:
类型 |
说明 |
适用场景 |
服务商的token |
以corpid(服务商CorpID)、provider_secret(服务商密钥)换取provider_access_token,代表的是服务商的身份 |
用于服务商级别的接口调用,比如登录授权、推广二维码等。说明文档参考 获取服务商凭证 |
第三方应用的token |
以suite_id(第三方应用ID)、suite_secret(第三方应用密钥)换取suite_access_token,代表第三方应用的身份 |
用于获取第三方应用的预授权码,获取授权企业信息等。说明文档参考 获取第三方应用凭证 |
授权企业的token |
企业安装第三方应用后,第三方服务商以企业的corpid、永久授权码来获取access_token |
用于操作授权企业相关接口,如通讯录管理,消息推送等。说明文档参考 获取企业凭证 |