一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java微信二次開發(一) Java微信請求驗證功能

Java微信二次開發(一) Java微信請求驗證功能

2020-09-18 14:38wangtianze Java教程

這篇文章主要為大家詳細介紹了Java微信二次開發第一篇,Java微信請求驗證功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

準備用Java做一個微信二次開發項目,把流程寫在這里吧。

第一篇,做微信請求驗證

需要導入庫:servlet-api.jar

第一步:新建包com.wtz.service,新建類LoginServlet.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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;
 }
}

第一天就做了這些,完成了微信請求驗證的功能。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: free chinese麻豆| 歪歪漫画a漫入口 | 天美影视文化传媒mv免费 | 婚色阿花在线全文免费笔 | 99久久香蕉国产线看观香 | 亚洲乱码一二三四区国产 | 欧洲破处| 亚洲视频在线观看免费 | 日韩精品久久不卡中文字幕 | 我把寡妇日出水好爽 | 日韩免费一级片 | 国产79av| 好大好硬好湿好紧h | 精品久久久久久久久久久 | 色777777女人色 | 久久精品热在线观看30 | 亚洲一区二区精品视频 | 201天天爱天天做 | 日本一卡二卡3卡四卡网站精品 | 欧美亚洲国产精品久久第一页 | 欧美一区二区三区四区五区六区 | 欧美一级在线全免费 | 99久久国语露脸精品国产 | 欧美亚洲国产综合在线 | chinese高中生gay男同 | 天堂精品高清1区2区3区 | 黄情视频 | 啊啊啊好大好爽视频 | 搞逼综合网 | 99久久一区二区精品 | 三上悠亚国产精品一区 | 日本动漫黄网站在线观看 | bdsm中国精品调教 | 视频大全在线观看网址 | 国内体内she精视频免费 | 麻豆网站在线免费观看 | 国产亚洲精品激情一区二区三区 | 国产成人免费在线观看 | 97porm自拍视频区原创 | 日韩成人影视 | 精品亚洲一区二区三区在线播放 |