企业微信回调JAVA开发 腾讯文档写了依托答辩 这里写点实战代码更容易理解
以下代码中的变量 token, encodingAESKey, corpID
是你自己账户的token 、AES钥、 corpID
WXBizJsonMsgCrypt 类是腾讯给到的JAVA类库,可以在 腾讯企业微信开发文档中心下载
@ApiOperation("企业微信回调")
@GetMapping("/callback")
public void callback(HttpServletResponse response, HttpServletRequest request) throws Exception {
//List<AITaskEntity> taskList = new ArrayList<AITaskEntity>(tasks.values());
logger.info("=========QYWXController get callback===========");
logger.info(System.getProperty("java.library.path"));
WXBizJsonMsgCrypt wxcpt = new WXBizJsonMsgCrypt(token, encodingAESKey, corpID);
String sVerifyMsgSig = request.getParameter("msg_signature");
String sVerifyTimeStamp = request.getParameter("timestamp");
String sVerifyNonce = request.getParameter("nonce");
String sVerifyEchoStr = request.getParameter("echostr");
// 解析出url上的参数值如下:
String sEchoStr = "签名验证错误"; //需要返回的明文
try {
sEchoStr = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp, sVerifyNonce, sVerifyEchoStr);
System.out.println("verifyurl echostr: " + sEchoStr);
// 验证URL成功,将sEchoStr返回
//HttpUtils.SetResponse(sEchoStr);
} catch (Exception e) {
//验证URL失败,错误原因请查看异常
e.printStackTrace();
}
// 设置内容类型和字符编码
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
// 获取PrintWriter用于写入响应
PrintWriter out = response.getWriter();
// 写入输出内容
out.print(sEchoStr);
// 在完成写入后,确保out被关闭
out.close();
//return R.ok("test");
}