企微配置回调服务

这篇具有很好参考价值的文章主要介绍了企微配置回调服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、企微配置可信域名
2、企微获取成员userID
3、企微获取用户敏感数据
4、企微配置回调服务



一、简介

1、概述

什么时候需要回调服务

在集成企业微信与内部系统时,我们往往需要搭建一个回调服务。回调服务,可以实现:

  • 自定义丰富的服务行为。比如,用户向应用发消息时,识别消息关键词,回复不同的消息内容;用户点击应用菜单时,转化为指令,执行自动化任务。
  • 可以及时获取到状态变化。比如,通讯录发生变化时,不需要定时去拉取通讯录对比,而是实时地获取到变化的通讯录结点,进行同步。

回调流程:

  • 企业微信会先判断URL服务是否具备解析企业微信推送消息的能力。
    具体方式是,企业微信往URL服务上发一条Get请求带签名及密文参数到URL服务上,如果URL服务检查签名通过,并能正确返回密文参数对应的明文字符串,则验证通过。此时在企业微信的配置就开始生效。
  • 后续的业务请求(比如应用菜单的点击事件,用户消息等),都会类似的方式(签名+密文)向服务URL推送消息。URL服务验证签名通过后,需要将POST数据解密,就可以得到对应的业务消息明文。

企微配置回调服务,企微开发,企业微信

企业收到消息后,需要作如下处理:

  1. 对msg_signature进行校验
  2. 解密Encrypt,得到明文的消息结构体(消息结构体后面章节会详说)
  3. 如果需要被动回复消息,构造被动响应包
  4. 正确响应本次请求
    · 企业微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
    · 当接收成功后,http头部返回200表示接收ok,其他错误码企业微信后台会一律当做失败并发起重试

2、相关文档地址

1、回调配置

https://developer.work.weixin.qq.com/document/path/90930

2、接收消息与事件

https://developer.work.weixin.qq.com/document/10514

3、加解密方案说明

https://developer.work.weixin.qq.com/document/path/90968

4、加解密库下载与返回码

https://developer.work.weixin.qq.com/document/path/90307

二、企微配置消息服务器

1、配置消息接收参数

企微配置回调服务,企微开发,企业微信

企微配置回调服务,企微开发,企业微信

URL:http://8.131.239.157
Token:UPN8pOCL
EncodingAESKey:Wz0cWqM7VcqPOLpNrMCaaxMMif3USVLOjhvK19tEQaX

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OZwjp3T2-1692458157388)(/Users/liyangda/Library/Application Support/typora-user-images/image-20230819222344569.png)]

2、参数解析

整体会用到8个参数。

参数 必须 说明
url URL是企业后台接收企业微信推送请求的访问协议和地址,支持http或https协议。
token Token可由企业任意填写,用于生成签名。
encodingAesKey EncodingAESKey用于消息体的加密,是AES密钥的Base64编码。
receiveid 加解密库里,ReceiveId 在各个场景的含义不同:
1. 企业应用的回调,表示corpid。
2. 第三方事件的回调,表示suiteid。
3. 个人主体的第三方应用的回调,ReceiveId是一个空字符串
msg_signature 企业微信加密签名,msg_signature结合了企业填写的token、请求中的timestamp、nonce参数、加密的消息体
timestamp 时间戳
nonce 随机数
echostr 加密的字符串。需要解密得到消息内容明文,。

3、参数拼接规则

请求方式:GET
请求地址

http://api.3dept.com/?msg_signature=ASDFQWEXZCVAQFASDFASDFSS&timestamp=13500001234&nonce=123412323&echostr=ENCRYPT_STR
http://8.131.239.157?msg_signature=ed7c74fcb19645d3c8312e703063539fe96a532c&timestamp=1692450209&nonce=1693051991&echostr=9fGql+XxePufd9E71gh4kXooAJJ+PtxH3MwwZWzxFNdZwTT3qccs6zHxFEDtGuaxJHWktTV97BiKkJI+rOhcPw==

三、代码编写—使用已有库

这次采用的是企微提供的已由库方式,进行验证。

1、代码下载

源代码地址:https://developer.work.weixin.qq.com/document/path/90307

企微配置回调服务,企微开发,企业微信

2、代码修改

因为参数执行有一些问题,需要对提供的工具类进行修改。

企微配置回调服务,企微开发,企业微信

修改内容

		// 密钥,公众账号的app secret
		// 提取密文
//		Object[] encrypt = JsonParse.extract(postData);
		Object[] encrypt = new Object[]{postData,postData};

企微配置回调服务,企微开发,企业微信

3、服务代码编写

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.9</version>
</dependency>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180813</version>
</dependency>

代码编写

import com.lydms.demowechat0.WechatUtils.AesException;
import com.lydms.demowechat0.WechatUtils.WXBizJsonMsgCrypt;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
public class AllTwoController {


    @RequestMapping("/*")
    public String getCheckInfo(String msg_signature, String timestamp, String nonce, String echostr) throws AesException {
        String token = "UPN8pOCL";
        String encodingAesKey = "Wz0cWqM7VcqPOLpNrMCaaxMMif3USVLOjhvK19tEQaX";
        String receiveid = "ww3e40cde07cc21a01";

        log.info("msg_signature:{},timestamp:{},nonce:{},echostr:{}", msg_signature, timestamp, nonce, echostr);
        log.info("token:{},encodingAesKey:{},receiveid:{}", token, timestamp, receiveid);

        WXBizJsonMsgCrypt wxBizJsonMsgCrypt = new WXBizJsonMsgCrypt(token, encodingAesKey, receiveid);

        String str = wxBizJsonMsgCrypt.DecryptMsg(msg_signature, timestamp, nonce, echostr);
        log.info("return:{}", str);
        return str;
    }
}

测试代码:

/**
 * 测试代码
 *
 * @param args
 * @throws AesException
 */
public static void main(String[] args) throws AesException {
    //  Token
    String token = "UPN8pOCL";
    //
    String encodingAesKey = "Wz0cWqM7VcqPOLpNrMCaaxMMif3USVLOjhvK19tEQaX";
    //
    String receiveid = "ww3e40cde07cc21a01";
    //  企业微信加密签名
    String msgSignature = "359410caca920fe74a426f5a3057ad437b3b9fa4";
    //  时间戳
    String timeStamp = "1692448043";
    //  随机数
    String nonce = "1692495025";
    //  加密的字符串
    String echostr = "BrO11qZxqM8TBczJq17VRzSnhJff5aGXgnTvWl+yGaoAZ+dd5xg1VxbmmPzMJMmkNPv6DSlpMQ6vz4lwoCXMjg==";
    
    WXBizJsonMsgCrypt wxBizJsonMsgCrypt = new WXBizJsonMsgCrypt(token, encodingAesKey, receiveid);
    //  解析后的值:7695278663958312959
    String s = wxBizJsonMsgCrypt.DecryptMsg(msgSignature, timeStamp, nonce, echostr);
    System.out.println(s);
}

四、测试

将服务部署到配置的URL地址后:http://8.131.239.157。点击保存

企微配置回调服务,企微开发,企业微信

保存成功

企微配置回调服务,企微开发,企业微信

查看用户消息

企微配置回调服务,企微开发,企业微信

企微配置回调服务,企微开发,企业微信文章来源地址https://www.toymoban.com/news/detail-662159.html

到了这里,关于企微配置回调服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • zabbix 钉钉&微信&企微告警(动作&操作&消息内容模板)

    1、配置zabbix服务端 2、配置监控主机监控项监控模板 zabbix配置安装_this page is used to test the proper operation of _疯飙的蜗牛的博客-CSDN博客 触发器的本质就是一个条件判断,对于不同的监控数据来说,我们要设置不同的触发器。如一个监控项不关联触发器,将不会提示错误,也不

    2024年02月07日
    浏览(32)
  • JVS开源基础框架:用户管理介绍(支持同步钉钉、企微、微信等)

    在企业内部系统中,用户管理是指对系统内的用户进行管理、授权和权限管理的过程,这里主要介绍用户的创建与基本信息的管理,权限、登录等详细介绍请参考相关章节。 点击平台管理-用户管理,界面上展示了组织管理与组织对应的用户,如下图所示 新增创建用户时,点

    2024年02月16日
    浏览(30)
  • 企业微信自定义应用 企业可信IP配置 企业可信ip怎么设置

    现在创建应用想要使用需要设置企业可信IP,而配置企业可信IP需要先配置 设置可信域名 或 设置接收消息服务器URL,域名需要花钱而且配置麻烦,这里选择 设置接收消息服务器URL。 不设置就报这个错误: 真麻烦呀!!! 这里其实是一个类似防火墙的功能,只要在里面配

    2024年04月11日
    浏览(29)
  • 小程序获取企业微信二维码,使用联系我插件配置企业微信二维码

    通过配置获取企业微信二维码总共分为五步: 第一步:登录企业微信管理后台,查询企业微信的企业ID(corpid)和Secret(corpsecret); 第二步:获取access_token; 第三步:通过员工ID配置生成config_id(即企业微信联系我plugid); 第四步:通过config_id获取企业已配置的「联系我」方式;

    2024年02月09日
    浏览(35)
  • Zabbix配置企业微信报警机器人

    微信告警机器人是一种可以将Zabbix告警通知发送到微信群或个人微信号的工具。 1、申请企业微信 自己到企业微信官网申请一个账号 2、配置微信企业号 1、创建机器人 在电脑企业微信群创建机器人 在企业微信上创建一个群聊,并添加需要接收告警通知的成员。 在群管理创建

    2024年02月06日
    浏览(28)
  • 企业微信消息推送(一)接收消息服务器URL

    1.点击左上角头像,打开微信管理平台 2.创建应用 3.获取五个参数 3.1获取应用的AgentId、Secret 3.2获取企业ID 配置接收消息服务器URL 企业微信限制过多,公司域名所有权检验不通过。采用接收消息服务器URL的方式。 3.3 获取token、EncodingAESKey 4.1 内网穿透、本地开发 先将请求打到

    2024年02月04日
    浏览(34)
  • WorkTool无障碍服务实现企业微信机器人接口

    想要实现一个企业微信机器人,如京东/拼多多福利群、美团瑞幸定时营销群、自助订单查询、智能咨询或社群管理机器人等,首先官方未提供外部群/客户群的机器人API,会话存档也只在一定场景下适用,及时使用会话存档也存在只能收不能发的问题,有哪些办法可以合规的

    2024年02月14日
    浏览(40)
  • Zabbix 6.4 版本企业微信群机器人报警配置

    从Zabbix 5.4升级后配置企业微信报警发下原来的脚本代码报错,搜索一圈发下使因为新版本对里面的部分代码不支持,几经周折终于找到这段可用的代码。 告警-媒介-创建媒介类型 直接添加webhook类型脚本 Token是企业微信内建好的机器人webhook地址后面的参数 其他照填,很简单

    2024年02月15日
    浏览(32)
  • jenkins配置企业微信机器人通知,自定义通知内容

    1.企业微信的配置 1.1 进入企业微信群 创建一个群 - 右击群标签,添加群机器人 1.2 填写机器人信息 创建机器人,填写机器人信息 1.3 复制Hook地址 复制WebHook地址,此处的Webhook将用于Jenkins当中的参数配置 2.Jenkins的配置 2.1 安装插件 进入系统管理--管理插件--搜索插件(Qy Wechat

    2024年02月10日
    浏览(34)
  • 企业微信群:机器人定时提醒功能数据库配置化

    目录 企微群机器人使用 APScheduler概要使用说明 cron方式设置 场景设置案例  表结构 代码 场景:对于周期性重复需要做的事情,每次都需要人工去提醒,容易忘记,而企业微信群可以添加群机器人,群机器人提供接口能力,按照接口格式说明把消息内容发到群里以及@相关人,

    2024年02月15日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包