zoukankan      html  css  js  c++  java
  • 微信公众号“成为开发者”实践代码

    1、建立一个sha1加密文件,详细代码如下:

    import java.security.*;
    public class SHA1Encoder
    {
        //加密方法 bgy 2013-10-30
        public static String encode(String inStr)
        {
            MessageDigest md = null;
            String outStr = null;
            try
            {
                md = MessageDigest.getInstance("SHA-1");//选择SHA-1,也可以选择MD5
                byte[] bt = inStr.getBytes();
                md.update(bt);
                outStr = bytetoString(md.digest());
            }
            catch(NoSuchAlgorithmException nsae)
            {
                nsae.printStackTrace();
            }
            return outStr;
        }
       
        //将字节数组转换成16进制字符串  bgy 2013-10-30
        public static String bytetoString(byte[] b)
        {
             StringBuilder sbDes = new StringBuilder(); 
             String tmp = null; 
             for(int i = 0; i < b.length; i++)
             { 
                 tmp = (Integer.toHexString(b[i] & 0xFF)); 
                 if(tmp.length() == 1)
                 { 
                     sbDes.append("0"); 
                 } 
                 sbDes.append(tmp); 
             } 
             return sbDes.toString();
        }
    }

    2、微信服务器调用接口,详细代码如下:

    import java.io.IOException;
    import java.io.Writer;
    import java.util.Arrays;

    import 1中的包;

    public class WechatYxl extends CommonAction

    {  

        private static String TOKEN = "88888888";//与微信的密钥 俗称token

        //接收微信服务器传过来的参数串,进行业务处理 

        public void processingData() throws IOException  

       {   

             //微信服务器传来的   

             String signature = request.getParameter("signature");//微信加密签名

             String timestamp = request.getParameter("timestamp");//时间戳

             String nonce = request.getParameter("nonce");//随机数

             String echostr = request.getParameter("echostr");//随机字符串

             //1、将token、timestamp、nonce三个参数进行字典序排序  

             String[] arrDic = {TOKEN,timestamp,nonce};   

             Arrays.sort(arrDic);    

            //2、将三个参数字符串拼接成一个字符串   

            StringBuffer str = new StringBuffer();    

            for(int i = 0; i < arrDic.length; i++)   

           {     

                  str.append(arrDic[i]);   

           }         

           //3、进行sha1加密   

           String ticket = SHA1Encoder.encode(str.toString());   

           Writer out = response.getWriter();   

           if(signature==ticket || ticket.equals(signature))   

           {    

                  out.write(echostr);   

           }   

           else   

           {    

                  out.write("");   

           }   

           out.flush();   

           out.close();  

       }

    }

  • 相关阅读:
    开发趋势
    常用的meta
    meta基础
    HTTP请求方法GET和POST
    same-origin policy----wikipedia
    跨域——同源策略(译)
    DNS问答
    TCP/IP的整理
    鉴权方法
    Web攻击技术---OWASP top
  • 原文地址:https://www.cnblogs.com/jirglt/p/3399757.html
Copyright © 2011-2022 走看看