被动鉴权操作其实是微信在校验服务器真实性的一个行为,微信通过你在微信公众平台设置的参数和地址来请访问你的服务器,通过校验加密数据确认安全性。
配置url的时候微信会进行鉴权,包括后期的微信会定时来和一些行为
触发的时候他也会来调用鉴权接口
url是你的接口访问地址,用来鉴权的接口地址 token是你的**, 消息**暂时不做介绍, 加密方式采用明文模式,即可 public static boolean checkSignature(HttpServletRequest request) { String signature = null; String stnStr = null; try { //微信加密签名 signature = request.getParameter("signature"); //时间戳 String timestamp = request.getParameter("timestamp"); //随机数 String nonce = request.getParameter("nonce"); String[] arra = new String[]{该参数为Token, timestamp, nonce}; //将token,timestamp,nonce组成数组进行字典排序 Arrays.sort(arra); StringBuilder sb = new StringBuilder(); for (int i = 0; i < arra.length; i++) { sb.append(arra[i]); } MessageDigest md = null; stnStr = null; try { md = MessageDigest.getInstance("SHA-1"); byte[] digest = md.digest(sb.toString().getBytes()); stnStr = byteToStr(digest); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } //释放内存 sb = null; //将sha1加密后的字符串与signature对比,标识该请求来源于微信 } catch (Exception e) { logger.error("WeChatBaseUtil.checkSignature--系统异常:", e); } return stnStr != null ? stnStr.equals(signature.toUpperCase()) : false; }