申请成为微信开发者,申请消息接口

来源:互联网 发布:淘宝好还是自建商城好 编辑:程序博客网 时间:2024/06/05 17:31
//
public class WeixinAction extends ActionSupport{private String signature;private String timestamp;private String nonce;private String echostr;private String token;ActionContext context = ActionContext.getContext();private HttpServletResponse response = ServletActionContext.getResponse();public void weiXinInfo() throws Exception{//1. 将token、timestamp、nonce三个参数进行字典序排序token = "weixin";String[] str = {token,timestamp,nonce};for(int i=0;i<str.length-1;i++){for (int j = i + 1; j < str.length; j++) {                  if(str[i].compareTo(str[j])>0){//字符串比较用compareTo方法                      String temp = str[i];                      str[i] = str[j];                      str[j] = temp;                  }               }  }StringBuilder sb = new StringBuilder();for(String str1 : str){    sb.append(str1);}String s = sb.toString();response.setContentType("text/html");        response.setCharacterEncoding("UTF-8");        PrintWriter out= response.getWriter();if(SHA1Util.encodeBySHA(s).equals(signature)){//LogUtil.logger.info("echo"+echostr);out.write(echostr);}else{//LogUtil.logger.info("fail"+echostr);out.write("false");}out.flush();         out.close();}public String getToken() {return token;}public void setToken(String token) {this.token = token;}public String getSignature() {return signature;}public void setSignature(String signature) {this.signature = signature;}public String getTimestamp() {return timestamp;}public void setTimestamp(String timestamp) {this.timestamp = timestamp;}public String getNonce() {return nonce;}public void setNonce(String nonce) {this.nonce = nonce;}public String getEchostr() {return echostr;}public void setEchostr(String echostr) {this.echostr = echostr;}}



//进行SHA-1加密public class SHA1Util {    /**    * 转换字节数组为十六进制字符串    * @param b    * @return    */private final static String[] hexDigits = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};   public static String byteArrayToHexString(byte[] b){         StringBuffer stringBuffer = new StringBuffer();         for (int i = 0; i < b.length; i++){             stringBuffer.append(byteToHexString(b[i]));         }         return stringBuffer.toString();     }        /**    * 将一个字节转化成十六进制形式的字符串    * @param b    * @return    */   public static String byteToHexString(byte b){         int n = b;         if (n < 0) {           n = 256 + n;         }       int d1 = n / 16;         int d2 = n % 16;         return hexDigits[d1] + hexDigits[d2];     }       /**         * 字符串SHA-1加密    * @param string    * @return    */   public static String encodeBySHA(String string){       if(string != null && !string.isEmpty()){           try {               //创建具有指定算法名称的信息摘要                 MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");               //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算                 byte[] bytes = messageDigest.digest(string.getBytes());               //将得到的字节数组变成字符串返回                 string = byteArrayToHexString(bytes);             } catch (Exception e) {               // TODO Auto-generated catch block               e.printStackTrace();           }       }       return string;   }}



原创粉丝点击