微信开发、Java服务器有效性验证
2016-04-30 00:00
477 查看
验证代码:
工具类:
web配置:
项目结构:
请求URL:
http://api.xxx.com/weixin/check.do
CheckServiceServlet.java
/** * Servlet implementation class CheckService * Java微信服务器验证 */ public class CheckServiceServlet extends HttpServlet { private static final long serialVersionUID = 7783989149982325969L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取参数 String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); //获取输出对象 PrintWriter out = response.getWriter(); //验证 if (CheckUtil.checkSignature(signature, timestamp, nonce)) { out.print(echostr); } } }
工具类:
CheckUtil.java
public class CheckUtil { private static final String Token = "weixintoken"; /** * 1)将token、timestamp、nonce三个参数进行字典序排序 * 2)将三个参数字符串拼接成一个字符串进行sha1加密 * 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 * @param signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 * @param timestamp 时间戳 * @param nonce 随机数 * @return */ public static boolean checkSignature(String signature, String timestamp, String nonce) { String[] arr = new String[] { Token, timestamp, nonce }; // 1、排序 Arrays.sort(arr); // 2、生成字符串 StringBuffer sb = new StringBuffer(); for (int i = 0; i < arr.length; i++) { sb.append(arr[i]); } // sha1加密 String temp = SHA1.sha1(sb.toString()); return temp.equals(signature); } }
web配置:
web.xml
<servlet> <description></description> <display-name>CheckService</display-name> <servlet-name>CheckService</servlet-name> <servlet-class>com.mg.weixin.servlet.CheckServiceServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CheckService</servlet-name> <url-pattern>/check.do</url-pattern> </servlet-mapping>
项目结构:
请求URL:
http://api.xxx.com/weixin/check.do
相关文章推荐
- 微信商城开发:本地服务器的环境配置 (内附花生壳内网映射教程)
- 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果
- Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
- 微信登录
- 微信开发问题1
- 微信公众平台开发入门教程
- HTML5服务器端推送事件 解决PHP微信墙推送问题
- PHP微信墙制作
- 人脸识别测颜值、测脸龄、测相似度微信接口
- ios微信点击超链接,去掉半透明黑色框效果
- ios微信跳转页面后,点击返回无效
- 微信开发基础框架、微信支付
- 微信开发(3)语音,视频
- 使得fiddler来抓包查看微信浏览器的网页源码
- 微信开发(二)天气
- 微信开发(1)
- 微信公众平台java开发详解(工程代码+解析)
- 微信平台开发环境
- 微信内置的浏览器如何上传文件
- 用IO流写的一个登录注册的小程序