zoukankan      html  css  js  c++  java
  • 微信校验接口

    Controller:
    /**
    * 校验
    * @param request
    * @param response
    * @throws Exception
    */
    @RequestMapping(value = "wx_check",method = {RequestMethod.GET})
    public void wxCheck(HttpServletRequest request, HttpServletResponse response) throws Exception{
    String signature = request.getParameter("signature");
    String timestamp = request.getParameter("timestamp");
    String nonce = request.getParameter("nonce");
    String echostr = request.getParameter("echostr");

    System.out.print(echostr);
    PrintWriter out = response.getWriter();
    if (WeiXinCheck.weiXinCheckSignature(signature,timestamp,nonce)){
    out.print(echostr);
    }
    }
    WeiXinCheck:
    private static final String token = "admin";
    /**
    * 签名校验
    * @param signature
    * @param timestamp
    * @param nonce
    * @return
    */
    public static boolean weiXinCheckSignature(String signature,String timestamp,String nonce){
    String[] arr = new String[]{token,timestamp,nonce};
    //排序
    Arrays.sort(arr);

    //生成字符串
    StringBuffer content = new StringBuffer();
    for (int i =0; i<arr.length;i++){
    content.append(arr[i]);
    }

    //sha1加密
    String temp = getSha1(content.toString());
    return temp.equals(signature);
    }
    /**
    * sha1加密
    * @param str
    * @return
    */
    public static String getSha1(String str) {
    if (null == str || str.length() == 0) {
    return null;
    }
    char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
    'a', 'b', 'c', 'd', 'e', 'f'};
    try {
    MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
    mdTemp.update(str.getBytes("UTF-8"));

    byte[] md = mdTemp.digest(http://www.amjmh.com/v/BIBRGZ_558768/);
    int j = md.length;
    char[] buf = new char[j * 2];
    int k = 0;
    for (int i = 0; i < j; i++) {
    byte byte0 = md[i];
    buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
    buf[k++] = hexDigits[byte0 & 0xf];
    }
    return new String(buf);
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    }
    ————————————————

  • 相关阅读:
    apache和tomcat有什么不同,为什么要整合apache 和tomcat?
    servlet
    关于Spring配置文件xml文档的schema约束
    request对象和response对象
    多线程
    数据结构得到连续数据的手段java Enumeration
    程序员八荣八耻
    windows更改MySQL存储路径
    Tomcat源码学习(1)
    Tomcat源码学习(2)——启动过程分析
  • 原文地址:https://www.cnblogs.com/ly570/p/11414326.html
Copyright © 2011-2022 走看看