Java如何實現微信請求驗證功能

這篇文章將為大家詳細講解有關Java如何實現微信請求驗證功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創新互聯公司是一家專注于成都做網站、網站建設與策劃設計,沙灣網站建設哪家好?成都創新互聯公司做網站,專注于網站建設10年,網設計領域的專業建站公司;建站業務涵蓋:沙灣等地區。沙灣做網站價格咨詢:13518219792

需要導入庫: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如何實現微信請求驗證功能
瀏覽地址:http://m.kartarina.com/article6/ppheog.html

成都網站建設公司_創新互聯,為您提供云服務器響應式網站靜態網站定制開發網站制作網站營銷

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管
主站蜘蛛池模板: 亚洲av无码乱码国产精品 | 中文字幕无码日韩专区| 中文字幕丰满乱孑伦无码专区 | 亚洲成a人片在线观看无码专区| 无码人妻精品一区二区三区久久| 无码一区二区三区免费视频| 精品无码AV无码免费专区| 成人av片无码免费天天看| 免费无遮挡无码视频在线观看 | 无码人妻丰满熟妇区五十路| 国产成人无码AV片在线观看| 亚洲成a人片在线观看无码 | 蜜桃AV无码免费看永久| 日韩美无码五月天| 无码人妻丰满熟妇区96| 无码国产色欲XXXXX视频| 日韩AV无码一区二区三区不卡| 亚洲AV无码无限在线观看不卡| 无码8090精品久久一区| 亚洲中文字幕久久精品无码VA| 免费无码中文字幕A级毛片| 久久久久久AV无码免费网站下载| 国产午夜鲁丝片AV无码免费| 亚洲AV综合色区无码二区偷拍 | 国产在线精品无码二区二区| 中文字幕无码不卡一区二区三区| 国产在线无码视频一区二区三区| 国产拍拍拍无码视频免费| 白嫩无码人妻丰满熟妇啪啪区百度| 麻豆国产精品无码视频| 人妻系列无码专区无码中出| 亚洲人成人无码网www电影首页| 亚洲日韩精品无码专区网站| 中文午夜乱理片无码| 日韩人妻无码精品无码中文字幕| 尤物永久免费AV无码网站| 九九在线中文字幕无码| 少妇爆乳无码专区| 国产免费av片在线无码免费看 | 亚洲成a人片在线观看无码| 亚洲AV无码乱码国产麻豆穿越|