企业微信回调验证

本文介绍了如何进行企业微信的回调验证,包括消息交互、审批状态回调和审批查询。在实现过程中,可能会遇到Java安全异常、内存溢出错误以及解密问题。针对这些问题,提供了解决方案,如安装JCE无限制权限策略文件、调整JVM内存设置以及检查微信配置的一致性。还提到了微信官方提供的示例代码和工具包,并分享了XML转JSON的方法以及控制器层的验证URL方法。
摘要由CSDN通过智能技术生成

参考博文1:企业微信回调验证、消息交互、审批状态回调及审批查询
参考博文2:企业微信通讯录回调模板-XML转JSON-让回调不再难!//主要参考实现XML转JSON

企业微信设置接收事件服务器url
设置事件接收器图片
微信官方提供的示例代码(工具)包:下载地址
示例代码包下载地址
其中的异常及:
1、java.security.InvalidKeyException:illegal Key Size
demo包中报错提示
官方网站下载JCE无限制权限策略文件,oracle下载地址

如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

2、java.lang.OutOfMemoryError:Java heap space
可略,设置默认vm参数:-Xms800m -Xmx800m
3、com.qq.weixin.mp.aes.AesException: 解密后得到的buffer非法
参考博文
解决方案:检查微信后台随机获取的Token和EncodingAESKey是否一致。

实现步骤:
1、验证url的有效性(必须GET方法)
controller层写个方法:

@Value("${corpId}")
private String corpId;//企业Id

//微信后台,随机获取的Token和EncodingAESKey,写死在配置文件中。
//注意:一定要跟微信后台配置的一样,否则会报解密后得到的buffer非法
@Value("${token}")
private String token;
@Value("${EncodingAESKey}")
private String encodingAESKey;

 //企业微信回调验证
@RequestMapping(value = "callback",method = RequestMethod.GET)
  public void connect(HttpServletRequest request, HttpServletResponse response){
   
      // 微信加密签名
	 String msgSignature = request.getParameter("msg_signature");
	  // 时间戳
	  String timestamp = request.getParameter("timestamp");
	  // 随机数
	  String nonce = request.getParameter("nonce");
	  // 随机字符串
	  String echoStr = request.getParameter("echostr");
	  WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token,encodingAESKey,corpId);

      //回调key值
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值