准备用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
相关文章:
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
三星网站视频制作教程下载,三星w23网页如何全屏?
如何安全更换建站之星模板并保留数据?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何零基础开发自助建站系统?完整教程解析
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何通过建站之星自助学习解决操作问题?
已有域名和空间如何搭建网站?
建站168自助建站系统:快速模板定制与SEO优化指南
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
如何在Golang中使用replace替换模块_指定本地或远程路径
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
制作农业网站的软件,比较好的农业网站推荐一下?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
微课制作网站有哪些,微课网怎么进?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
建站之星云端配置指南:模板选择与SEO优化一键生成
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
制作网站的模板软件,网站怎么建设?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
网站代码制作软件有哪些,如何生成自己网站的代码?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
建站主机如何选?性能与价格怎样平衡?
建站上传速度慢?如何优化加速网站加载效率?
香港服务器如何优化才能显著提升网站加载速度?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
建站之星如何实现五合一智能建站与营销推广?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
金*站制作公司有哪些,金华教育集团官网?
建站之星如何快速生成多端适配网站?
C#如何序列化对象为XML XmlSerializer用法
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
常州企业建站如何选择最佳模板?
如何通过网站建站时间优化SEO与用户体验?
营销式网站制作方案,销售哪个网站招聘效果最好?
如何自定义建站之星模板颜色并下载新样式?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
焦点电影公司作品,电影焦点结局是什么?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
实现虚拟支付需哪些建站技术支撑?
大连 网站制作,大连天途有线官网?
建站之星安装路径如何正确选择及配置?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
*请认真填写需求信息,我们会在24小时内与您取得联系。