企业微信应用案例
操作步骤:
- 申请企业微信,并配置好相关应用(应用管理-自建-创建应用)。
- 进入应用,配置工作台应用主页,自动授权则配置为用户授权链接。
自动授权链接:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE &state=STATE#wechat_redirect
参数说明:
appid:企业的CorpID,(我的企业-企业信息-企业ID)。
Redirect_uri: 授权后重定向的回调链接地址,请使用urlencode对链接进行转码处理。重定向地址为用户首次访问的后端接口地址,一般为getUserId接口。
response_type:返回类型,此时固定为:code。
scope:应用授权作用域。企业自建应用固定填写:snsapi_base。
state:非必需,重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值,长度不可超过128个字节。
#wechat_redirect:终端使用此参数判断是否需要带上身份信息。
3. 配置网页授权及JS-SDK
配置可信域名并将验证文件放置到根目录下。
JS-SDK认证过程:
①. 配置可信可信域名;
②. JS-SDK使用权限签名算法:
获取企业的jsapi_ticket:
请求方式:GET(HTTPS)
请求URL:https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=ACCESS_TOKEN
注意事项:企业微信提供的获取access_token接口有调用限制,需将access_token全局缓存,默认存活时间为7200s,需定时更新;
③. 签名算法
签名生成规则如下:
参与签名的参数有四个: noncestr(随机字符串), jsapi_ticket, timestamp(时间戳), url(当前网页的URL, 不包含#及其后面部分)
将这些参数使用URL键值对的格式 (即 key1=value1&key2=value2…)拼接成字符串string1。
有两个注意点:1. 字段值采用原始值,不要进行URL转义;2. 必须严格按照如下格式拼接,不可变动字段顺序。
jsapi_ticket=JSAPITICKET&noncestr=NONCESTR×tamp=TIMESTAMP&url=URL
然后对string1作sha1加密即可。
注意事项:noncestr:长度为16;jsapi_ticket:可将其做全局缓存,并定时清理;timestamp:单位为s,并非ms,url:当前网页的URL, 不包含#及其后面部分,无需转码;前端调用wx.config传值需与签名算法的4个值一致。