配置接收消息服务器URL
企业微信限制过多,公司域名所有权检验不通过。采用接收消息服务器URL的方式。
先将请求打到公网服务器ngnix、再转发给内网穿透地址,请求Java后端。
免费的内网穿透
一分钟图文快速上手
企业微信加解密文档
企业微信加解密官方代码
使用vscode,将UTF-8 BOM文本编码改为UTF-8
编写代码参考的文章
//tokenpublic final static String TOKEN = "n5SHOwoXKo9UTQg2zv3Vs2B";// encodingAESKeypublic final static String ENCODINGAES_KEY = "wVdvdhBY6EDWG96S7EjU6hg9BR3v7M5SS9a4jK";//企业IDpublic final static String CORP_ID = "wwec27f62ca8";//应用的凭证密钥public final static String CORPSECRET = "PdDcN-ZjInXNsvNuzlPl55qZrLLVJvDvcIp3wZNt";@GetMapping("/wei")public void list(HttpServletRequest request, HttpServletResponse response) throws IOException {// 微信加密签名String msg_signature = request.getParameter("msg_signature");// 时间戳String timestamp = request.getParameter("timestamp");// 随机数String nonce = request.getParameter("nonce");// 随机字符串String echostr = request.getParameter("echostr");System.out.println("request=" + request.getRequestURL());PrintWriter out = response.getWriter();// 通过检验msg_signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败String result = null;try {WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(TOKEN, ENCODINGAES_KEY, CORP_ID);result = wxcpt.VerifyURL(msg_signature, timestamp, nonce, echostr);} catch (AesException e) {e.printStackTrace();}if (result == null) {result = TOKEN;}out.print(result);out.close();out = null;}
设置成功