Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >企业微信接入文档

企业微信接入文档

作者头像
创译科技
发布于 2022-04-19 06:50:42
发布于 2022-04-19 06:50:42
6.4K0
举报
文章被收录于专栏:Node开发Node开发

1. 进入企业微信应用管理,需要配置应用的回调配置。

从上图可以看到应用有提供Token和EncodingAESKey,这两个参数是我们调用企业微信接口进行加解密操作需要使用到的。 数据回调和指令回调,可以是一个接口,也可以是分开,数据回调是直接调用,查看是否接口可以调通。指令回调是给后端的接口传送推一些数据,比如suit_token等。如果不太理解可以理解成就是后端需要提供一个接口,并且配置回调服务时,需要能同时支持HttpGet以及HttpPost两种能力。

回调接口的GET请求主要用于鉴权,也就是你在设置上面的回调配置时,企业微信企业微信会使用GET请求调用你后端已经实现的回调接口,带签名及密文参数到接口上,如果接口检查签名通过,并能正确返回密文参数对应的明文字符串,则验证通过。此时在企业微信的配置就开始生效。

举个简单的例子:

在你设置上面的回调配置接口,假设你的接口地址为/api/index/index,企业微信则会使用GET方式调用/api/index/index?msg_signature=ASDFQWEXZCVAQFASDFASDFSS&timestamp=13500001234&nonce=123412323&echostr=ENCRYPT_STR,然后后端需要使用应用提供的Token对timestamp,nonce,echostr三个参数进行签名,并将签名接口和msg_signature作比较,判断来源是否来源于企业微信,如果签名一致,则使用EncodingAESKey对企业微信提供的echostr加密字符串进行解密,并将解密得到的message返回给企业微信去做一致性比较,比较成功则设置回调配置接口成功。具体加解密算法可以直接使用企业微信提供的SDK,SDK地址:https://developer.work.weixin.qq.com/document/path/95372。

2. 设置应用的回调接口完毕,就进入正式的企业微信对接流程。刚才我们讲过了,假设你的回调接口地址为/api/index/index,你既需要实现GET请求去给企业微信验签,也需要实现POST请求。POST请求的用处就是在不同情况企业微信会使用POST请求传入不同的参数,后端需要在POST接口中针对企业微信传入的不同参数做不同的逻辑操作。企业微信对于POST 接口的说明文档链接:https://developer.work.weixin.qq.com/document/path/91116

简单解释下,就是企业微信使用POST调用接口时,会使用application/json传入很多参数,我们假设使用params去接收body传入的参数,params.xml.Encrypt[0]就是加密字符串需要用于解密的,然后和上面的解密算法一样使用EncodingAESKey对企业微信提供的params.xml.Encrypt[0]加密字符串进行解密,解密出来的message时一个xml,我们需要先对xml解析,解析成json格式,json数据其中有一个InfoType参数,这个参数就是表示当前操作是什么操作,我们一般只需要监听两个值,suite_ticket表示需要去获取系统的suite_access_token,create_auth表示企业的授权登录,需要做获取对应企业的组织架构等操作。

InfoType = suite_ticket时,json数据中会有一个SuiteTicket参数,需要使用SuiteTicket参数去获取suite_access_token,获取suite_access_token文档链接:https://developer.work.weixin.qq.com/document/path/90600

获取suite_access_token时,需要suite_ticket参数。suite_ticket由企业微信后台定时推送给“指令回调URL”,每十分钟更新一次,suite_ticket实际有效期为30分钟,通过本接口获取的suite_access_token有效期为2小时,开发者需要进行缓存,不可频繁获取。上面是获取suite_access_token文档对于suite_access_token和SuiteTicket的介绍,也就是说suite_access_token有效期两小时,每十分钟会推送一次SuiteTicket到回调接口,所以我们需要在InfoType = suite_ticket时,去调用接口获取suite_access_token并且替换旧的suite_access_token。大概看一个实现逻辑:

InfoType = create_auth时,代表企业管理员在授权使用这个应用,这时候就得获取企业的组织架构并进行存储

json数据中会有一个AuthCode参数表示企业授权码,首先第一步需要先使用AuthCode和suite_access_token去换取企业的基本信息,获取企业授权码的文档链接:https://developer.work.weixin.qq.com/document/10975#%E8%8E%B7%E5%8F%96%E4%BC%81%E4%B8%9A%E6%B0%B8%E4%B9%85%E6%8E%88%E6%9D%83%E7%A0%81,这一步和上面调用接口没什么区别,获取企业信息成功,需要存储企业基本信息到数据库并判断企业是否已经录入信息,后续员工登录就是通过这个员工表去判断员工权限,就简单贴一个代码:

企业信息写入成功,标识一个企业的参数为corp_id,下一步就是录入企业的组织架构。首先先获取企业的部门信息,获取企业部门列表的文档链接为:https://developer.work.weixin.qq.com/document/path/90344,直接上一步获得的企业授权后得到的access_token可以获取企业的部门列表,然后将部门列表存入到数据库,然后再通过循环分别获取企业部门下的成员列表,再分别写入到数据库。获取企业某个部门的成员列表文档链接:https://developer.work.weixin.qq.com/document/path/90336,这样循环结束就可以把整个企业的组织架构写入到数据库中,如果系统需要有组织架构的更新操作,也可以自行接入关于部门和成员增删改接口,这里就不多说,简单看个例子:

到这里B端企业管理员的整个授权流程就全部写完成了,然后可以根据企业组织架构去设置系统的不同权限,这样组织架构的不同员工登陆后就会拥有系统的不同权限。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿周先森 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【详细】.NET企业微信回调配置(数据回调URL和指令回调URL验证)
  前段时间因为公司业务需求,需要将微信小程序与企业微信对接通,也就是把小程序绑定到对应的企业微信账号下,在该企业微信的用户可以将该小程序绑定到工作台中,然后可以在工作台中打开该小程序并授权。不过将微信小程序与企业微信对接通需要后台去做数据回调URL和指令回调URL验证,因为第一次接触这个然后企业微信文档写的也不是很详细,并且在全网没有找到一篇.NET相关企业微信回调配置验证有用的文章,所以这里把自己的配置详细过程分享出来,希望能够帮助更多的同学。
追逐时光者
2021/09/09
4K0
【详细】.NET企业微信回调配置(数据回调URL和指令回调URL验证)
记一次企业微信对接踩坑之旅(ಥ_ಥ)
最近公司项目需要接入企业微信,所以体验了一把企业微信的对接流程,把对接过程中遇到的问题总结一下。
薛定喵君
2020/10/23
3.8K0
微信生态圈 | 企业微信中登录H5不便?“免密登录”来帮忙!
在日常工作中,我们经常需要使用企业微信进行沟通和协作。 然而,每次在企业微信打开H5页面时,都需要在H5页面输入账号密码进行登录,这不仅繁琐,而且在交互体验方面也比原生差。 那么,有没有一种方法可以让我们免去这个步骤呢? 答案是肯定的,那就是免密登录。接下来,我们将详细介绍免密登录的概念、实现条件以及具体操作方法。
烟雨平生
2023/10/25
7340
微信生态圈 | 企业微信中登录H5不便?“免密登录”来帮忙!
企业微信开启接收消息+验证URL有效性
千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮助请帮我点一个Star~
千寻简
2023/11/07
2.2K0
企业微信开启接收消息+验证URL有效性
微信企业号二次开发--自定义菜单接口开发--应用中心
https://zb.oschina.net/market/opus/1444646_161 代码 1.注册完微信企业号,需要扫描二维码。就出现输入账号和密码的表单了。登陆就会出现下面的页面了。
小帅丶
2018/02/08
1.6K0
微信企业号二次开发--自定义菜单接口开发--应用中心
企业微信回调模式开发
回调模式接口地址:https://work.weixin.qq.com/api/doc/90000/90135/90930
用户4191150
2021/08/11
2.6K0
编写企业微信应用 - 回调URL验证笔记
Title: 编写企业微信应用 - 回调URL验证笔记 公号: 编写企微应用 - 回调URL验证笔记 (qq.com) 前言 第一版是在2021-08-11 09:36:32写的,有点乱,优化下 验证需要搭建HTTP服务器,使用的框架为Python-Flask 通过API向手机发送信息已解决,目前需要解决通过API接收手机发送的信息 添加回调URL需要先验证URL正确性,企业微信服务器会往URL发送一个请求,我的服务器需要解密请求中的信息并返回,完成验证 验证URL正确性使用的是GET请求,接收业务数据使用
kr
2022/05/14
5.4K0
编写企业微信应用 - 回调URL验证笔记
企业微信PC版应用跳转到默认浏览器,避坑指南,欢迎补充。。。
我们公司内部用企业微信沟通,最近有个需求,一个应用在企业微信PC版打开时,要自动跳转到PC的默认浏览器。在开发过程中,我经历了几个坑,在这里记录一下,希望对你有所帮助。
zhanyd
2022/12/05
4.2K0
企业微信PC版应用跳转到默认浏览器,避坑指南,欢迎补充。。。
企微获取成员userID
如果企业委托授权第三方服务商将通讯录从其他系统同步到企业微信,则需要企业授权“通讯录编辑授权”给服务商。
ha_lydms
2023/08/10
6880
企微获取成员userID
微信企业号回调模式配置讲解 Java Servlet+Struts2版本 echostr校验失败解决
异常java.security.InvalidKeyException:illegal Key Size 也就是 echostr校验失败,请您检查是否正确解密并输出明文echostr 这个错误 企业微
小帅丶
2018/02/09
1.4K0
微信企业号回调模式配置讲解 Java Servlet+Struts2版本 echostr校验失败解决
vue开发企业微信_vue全局api
4、用 ticket + 随机字符串 + 时间戳 + 当前网页url 拼接成一串字符,然后进行sha1加密。
全栈程序员站长
2022/11/11
2K1
vue开发企业微信_vue全局api
Java微信公众平台开发_02_启用服务器配置
                     见:【  Java微信公众平台开发_01_本地服务器映射外网  】
shirayner
2018/08/10
8.5K0
Java微信公众平台开发_02_启用服务器配置
Java企业微信开发_01_接收消息服务器配置
                     见:Java微信公众平台开发_01_本地服务器映射外网
shirayner
2018/08/10
2.4K0
Java企业微信开发_01_接收消息服务器配置
微信公众号、企业微信应用回调URL验证对比 - 带部分Java示例
同样是4个参数:msg_signature(signature)、timestamp、nonce、echostr。
kr
2022/06/15
3.5K0
企业微信PC版应用跳转到默认浏览器,避坑指南,欢迎补充(Vue项目版)。。。
关于企业微信PC版应用跳转到默认浏览器,我之前写过一篇文章:企业微信PC版应用跳转到默认浏览器,避坑指南,欢迎补充。。。
zhanyd
2024/07/30
7210
企业微信PC版应用跳转到默认浏览器,避坑指南,欢迎补充(Vue项目版)。。。
【微信生态圈】微信体系中的access_token有哪些?
access_token是公众号/小程序的全局唯一接口调用凭据,公众号/小程序调用各接口时都需使用access_token。开发者需要进行妥善保存。 access_token的存储至少要保留512个字符空间。 access_token的有效期目前为2个小时,需定时刷新。
烟雨平生
2023/09/22
9040
【微信生态圈】微信体系中的access_token有哪些?
基于NodeJS实现企业微信机器人推送
公司是企业微信协同的,刚好之前搞得CLI有输出报告文件的功能; 想了想也可以打通这个流程,让沟通成本降低【不用人工转发】;
CRPER
2022/09/28
1.5K0
基于NodeJS实现企业微信机器人推送
网站提示用微信扫码登录,他们是怎么实现的?
作为一个技术码农,在使用社区、论坛或者各类AI服务的时,经常会看到这样一个提示:“使用微信公众号扫码登录”。那因为这种的登录方式除了登录,还可以让用户沉淀到公众号上,以后还能接收到公众号推广,可谓是一举两得。那它是怎么做的呢?🤔
小傅哥
2024/02/26
4.4K0
网站提示用微信扫码登录,他们是怎么实现的?
微信公众号模板消息
模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。
神葳
2021/01/22
4.7K0
微信公众号开发基本流程
背景: 过年前后做了个微信公众号项目,已经过去一段时间了,抽空回忆总结下基本流程吧,不然很快估计自己就忘了。。
全栈程序员站长
2022/09/06
3.8K0
微信公众号开发基本流程
推荐阅读
相关推荐
【详细】.NET企业微信回调配置(数据回调URL和指令回调URL验证)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档