权限及签名算法
一、获取 access_token (https://work.weixin.qq.com/api/doc/90000/90135/91039)
注:为了安全考虑,开发者请勿将access_token返回给前端,需要开发者保存在后台,所有访问企业微信api的请求由后台发起
二、通过 access_token 拿到 jsapi_ticket (https://work.weixin.qq.com/api/doc/90001/90144/90539#%E8%8E%B7%E5%8F%96%E4%BC%81%E4%B8%9A%E7%9A%84jsapi_ticket)
三、通过 jsapi_ticket 计算签名 (https://work.weixin.qq.com/api/doc/90001/90144/90539#%E7%AD%BE%E5%90%8D%E7%AE%97%E6%B3%95)
  • 参与签名的参数有四个:
    • noncestr(随机字符串)
    • jsapi_ticket(如何获取参考“获取企业jsapi_ticket”以及“获取应用的jsapi_ticket接口”)
    • timestamp(时间戳)
    • url(当前网页的URL,不包含#及其后面部分)
    • 注:当前网页的url必须和后端留存的url一致,否则会导致签名校验失败
  • 将这些参数使用URL键值对的格式 (即 key1=value1&key2=value2…)拼接成字符串string
  • 有两个注意点:1. 字段值采用原始值,不要进行URL转义;2. 必须严格按照如下格式拼接,不可变动字段顺序
  • 然后对string作sha1加密即可
四、access_token 2小时过期且有次数限制,服务端做好存储
五、企业微信后台需配置可信域名
六、企业微信可信域名只能是域名+端口,需要申请对外端口(可信域名,必须与当前域名完全一致。)
七、官方demo链接 https://open.work.weixin.qq.com/api/jsapidemo
八、备注
  • 为了安全考虑,开发者请勿将access_token返回给前端,需要开发者保存在后台,所有访问企业微信api的请求由后台发起
  • 第一、二、三步最好均由后端发起,后期开发由前端处理
插件
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。