准备用Java做一个微信二次开发项目,把流程写在这里吧。

第一篇,做微信请求验证
需要导入库:servlet-api.jar
第一步:新建包com.wtz.service,新建类LoginServlet.java
package com.wtz.service;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.wtz.util.ValidationUtil;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月17日 下午8:11:32
* <p>version:1.0</p>
* <p>description:微信请求验证类</p>
*/
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("get请求。。。。。。");
//1.获得微信签名的加密字符串
String signature = request.getParameter("signature");
//2.获得时间戳信息
String timestamp = request.getParameter("timestamp");
//3.获得随机数
String nonce = request.getParameter("nonce");
//4.获得随机字符串
String echostr = request.getParameter("echostr");
System.out.println("获得微信签名的加密字符串:"+signature);
System.out.println("获得时间戳信息:"+timestamp);
System.out.println("获得随机数:"+nonce);
System.out.println("获得随机字符串:"+echostr);
PrintWriter out = response.getWriter();
//验证请求确认成功原样返回echostr参数内容,则接入生效,成为开发者成功,否则失败
if(ValidationUtil.checkSignature(signature, timestamp, nonce)){
out.print(echostr);
}
out.close();
out = null;
}
}
第二步:新建包com.wtz.util,新建类Validation.java
package com.wtz.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
/**
* @author wangtianze QQ:864620012
* @date 2017年4月17日 下午8:35:57
* <p>version:1.0</p>
* <p>description:微信请求校验工具类</p>
*/
public class ValidationUtil {
private static String token = "wangtianze";
public static boolean checkSignature(String signature,String timestamp,String nonce){
//1.将token,timestamp,nonce三个参数进行排序
String[] str = new String[]{token,timestamp,nonce};
Arrays.sort(str);
//2.将三个参数字符串拼接成一个字符串
StringBuilder buff = new StringBuilder();
for(int i=0;i<buff.length();i++){
buff.append(str[i]);
}
//3.进行sha1加密
MessageDigest md = null;
String result = "";
try {
md = MessageDigest.getInstance("SHA-1");
byte[] data = md.digest(buff.toString().getBytes());
//将字节数组转换成字符串
result = bytesToString(data);
System.out.println("加密后的字符串为:"+result);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result!=null?(result.equals(signature.toUpperCase())):false;
}
/**
* 将字节数组转换成十六进制字符串
* @param byteArray
* @return
*/
private static String bytesToString(byte[] byteArray){
String stringDigest = "";
for(int i=0;i<stringDigest.length();i++){
stringDigest += byteToHexString(byteArray[i]);
}
return stringDigest;
}
/**
* 将一个字节转换为十六进制字符串
* @param mByte
* @return
*/
private static String byteToHexString(byte mByte){
char[] digit = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] temp = new char[2];
temp[0] = digit[(mByte>>>4) & 0X0F];
temp[1] = digit[mByte & 0X0F];
String str = new String(temp);
return str;
}
}
第一天就做了这些,完成了微信请求验证的功能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Java微信二次开发
# Java微信开发
# Java微信请求验证
# Java发送https请求并跳过ssl证书验证方法
# Java中如何模拟HTTP请求并验证功能
# 随机数
# 转换成
# 下午
# 做一个
# 写在
# 转换为
# 第二步
# 就做
# 第一篇
# 大家多多
# 开发项目
# 准备用
# 完成了
# digit
# version
# gt
# lt
# wangtianze
# author
# ValidationUtil
相关文章:
建站之星如何取消后台验证码生成?
如何选择美橙互联多站合一建站方案?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何选择建站程序?包含哪些必备功能与类型?
如何在Windows环境下新建FTP站点并设置权限?
Thinkphp 中 distinct 的用法解析
C#如何在一个XML文件中查找并替换文本内容
建站之星logo尺寸如何设置最合适?
如何在阿里云服务器自主搭建网站?
建站主机核心功能解析:服务器选择与网站搭建流程指南
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
网站制作模板下载什么软件,ppt模板免费下载网站?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
如何用狗爹虚拟主机快速搭建网站?
北京网站制作网页,网站升级改版需要多久?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
C++用Dijkstra(迪杰斯特拉)算法求最短路径
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
网站制作公司,橙子建站是合法的吗?
如何快速搭建高效可靠的建站解决方案?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
常州自助建站工具推荐:低成本搭建与模板选择技巧
制作网站怎么制作,*游戏网站怎么搭建?
如何快速搭建高效简练网站?
建站之星导航菜单设置与功能模块配置全攻略
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
如何在景安服务器上快速搭建个人网站?
制作电商网页,电商供应链怎么做?
七夕网站制作视频,七夕大促活动怎么报名?
如何破解联通资金短缺导致的基站建设难题?
如何通过二级域名建站提升品牌影响力?
如何通过虚拟主机快速完成网站搭建?
制作销售网站教学视频,销售网站有哪些?
如何通过多用户协作模板快速搭建高效企业网站?
建站之星2.7模板:企业网站建设与h5定制设计专题
如何在建站主机中优化服务器配置?
如何快速搭建自助建站会员专属系统?
宝塔新建站点报错如何解决?
建站之星安装后如何自定义网站颜色与字体?
如何在IIS7中新建站点?详细步骤解析
免费视频制作网站,更新又快又好的免费电影网站?
青岛网站建设如何选择本地服务器?
金*站制作公司有哪些,金华教育集团官网?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
制作网站外包平台,自动化接单网站有哪些?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
视频网站制作教程,怎么样制作优酷网的小视频?
常州企业建站如何选择最佳模板?
建站之星如何快速生成多端适配网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。