微信公共平台(一)网址接入
package com.chaowen; import java.io.IOException; import java.io.PrintWriter; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class WeiXinServlet */ public class WeiXinServlet extends HttpServlet { private static final long serialVersionUID = 1L; public static final String Token = "token" ; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this .doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //response.setContentType("text/xml;charset=utf-8"); response.setCharacterEncoding( "UTF-8" ); PrintWriter out = response.getWriter(); String signature = request.getParameter( "signature" ); String timestamp = request.getParameter( "timestamp" ); String nonce = request.getParameter( "nonce" ); String[] ArrTmp = { Token, timestamp, nonce }; Arrays.sort(ArrTmp); StringBuffer sb = new StringBuffer(); for ( int i = 0 ; i < ArrTmp.length; i++) { sb.append(ArrTmp[i]); } String pwd = Encrypt(sb.toString()); String echostr = request.getParameter( "echostr" ); System.out.println( "pwd==" +pwd); System.out.println( "echostr==" +echostr); if (pwd.equals(signature)){ if (! "" .equals(echostr) && echostr != null ){ response.getWriter().print(echostr); } } out.flush(); out.close(); } public String Encrypt(String strSrc) { MessageDigest md = null ; String strDes = null ; byte [] bt = strSrc.getBytes(); try { md = MessageDigest.getInstance( "SHA-1" ); md.update(bt); strDes = bytes2Hex(md.digest()); //to HexString } catch (NoSuchAlgorithmException e) { System.out.println( "Invalid algorithm." ); return null ; } return strDes; } public String bytes2Hex( byte [] bts) { String des = "" ; String tmp = null ; for ( int i = 0 ; i < bts.length; i++) { tmp = (Integer.toHexString(bts[i] & 0xFF )); if (tmp.length() == 1 ) { des += "0" ; } des += tmp; } return des; } } |
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述