WeChat 요청 검증의 2차 개발
이 글에서는 주로 Java WeChat의 첫 번째 2차 개발인 Java WeChat 요청 확인 기능을 자세히 소개하며, 관심 있는 친구는 이를 참고하여
WeChat을 수행할 수 있습니다. Java의 보조 개발 프로젝트인 경우 여기에 프로세스를 작성하세요.
첫 번째 기사, WeChat 요청 확인
라이브러리를 가져와야 합니다: 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; } }
로그인 후 복사
2단계: 새 패키지 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; } }
로그인 후 복사
첫날부터 하세요 이것으로 위챗 요청 인증 기능이 완성되었습니다.
[관련 추천]
위 내용은 WeChat 요청 검증의 2차 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
4 몇 주 전
By DDD
Windows 11 KB5054979의 새로운 기능 및 업데이트 문제를 해결하는 방법
3 몇 주 전
By DDD
Atomfall에서 크레인 제어 키 카드를 찾을 수 있습니다
4 몇 주 전
By DDD
<s> : 데드 레일 - 모든 도전을 완료하는 방법
1 몇 달 전
By DDD
Atomfall Guide : 항목 위치, 퀘스트 가이드 및 팁
1 몇 달 전
By DDD

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7715
15


자바 튜토리얼
1641
14


Cakephp 튜토리얼
1395
52


라라벨 튜토리얼
1289
25


PHP 튜토리얼
1232
29

