Java微信二次开发(一) Java微信请求验证功能
准备用Java做一个微信二次开发项目,把流程写在这里吧。
第一篇,做微信请求验证
需要导入库:servlet-api.jar
第一步:新建包com.wtz.service,新建类LoginServlet.java
packagecom.wtz.service; importjava.io.IOException; importjava.io.PrintWriter; importjavax.servlet.ServletException; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importcom.wtz.util.ValidationUtil; /** *@authorwangtianzeQQ:864620012 *@date2017年4月17日下午8:11:32 *version:1.0
*description:微信请求验证类
*/ publicclassLoginServletextendsHttpServlet{ @Override protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ System.out.println("get请求。。。。。。"); //1.获得微信签名的加密字符串 Stringsignature=request.getParameter("signature"); //2.获得时间戳信息 Stringtimestamp=request.getParameter("timestamp"); //3.获得随机数 Stringnonce=request.getParameter("nonce"); //4.获得随机字符串 Stringechostr=request.getParameter("echostr"); System.out.println("获得微信签名的加密字符串:"+signature); System.out.println("获得时间戳信息:"+timestamp); System.out.println("获得随机数:"+nonce); System.out.println("获得随机字符串:"+echostr); PrintWriterout=response.getWriter(); //验证请求确认成功原样返回echostr参数内容,则接入生效,成为开发者成功,否则失败 if(ValidationUtil.checkSignature(signature,timestamp,nonce)){ out.print(echostr); } out.close(); out=null; } }
第二步:新建包com.wtz.util,新建类Validation.java
packagecom.wtz.util; importjava.security.MessageDigest; importjava.security.NoSuchAlgorithmException; importjava.util.Arrays; /** *@authorwangtianzeQQ:864620012 *@date2017年4月17日下午8:35:57 *version:1.0
*description:微信请求校验工具类
*/ publicclassValidationUtil{ privatestaticStringtoken="wangtianze"; publicstaticbooleancheckSignature(Stringsignature,Stringtimestamp,Stringnonce){ //1.将token,timestamp,nonce三个参数进行排序 String[]str=newString[]{token,timestamp,nonce}; Arrays.sort(str); //2.将三个参数字符串拼接成一个字符串 StringBuilderbuff=newStringBuilder(); for(inti=0;i>>4)&0X0F]; temp[1]=digit[mByte&0X0F]; Stringstr=newString(temp); returnstr; } }
第一天就做了这些,完成了微信请求验证的功能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。