java 微信开发token验证失败的一种情况
2016-09-03 15:53
405 查看
用java做微信开发,验证token时怎么尝试总是失败,于是把每一步获取和计算参数都打印出来看看到底发生了什么。
这是源代码
doGet 方法:
check util:
public static boolean checkSignature(String signature, String timestamp,
String nonce) {
String[] arr = new String[] { token, timestamp, nonce };
// sort
Arrays.sort(arr);
// generate String
String content = arr[0]+arr[1]+arr[2];
// shal code
String temp = new SHA1().getDigestOfString(content.getBytes());
return temp.equalsIgnoreCase(signature);
}
思想其实就是获取到参数 timestamp, nonce 和自己定义的 参数 token一起排序,然后生成一个它们排序后的新字符串,然后给这个字符串用SHA1加密,如果加密结果和获取到的参数 signature相等,则返回获得的参数 echostr。
刚开始我比较获得的参数,加密后怎么看都与 signature 相等,但是验证信息却总是发现不等,后来发现问题在大小写字母上,我使用的SHA1加密后返回的是大写字母,于是在比较的时候改为“temp.equalsIgnoreCase(signature)”忽略大小写比较后,果然通过验证。\(^o^)/~
这是源代码
doGet 方法:
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)){ System.out.println("check ok"); out.print(echostr); } out.close(); }
check util:
public static boolean checkSignature(String signature, String timestamp,
String nonce) {
String[] arr = new String[] { token, timestamp, nonce };
// sort
Arrays.sort(arr);
// generate String
String content = arr[0]+arr[1]+arr[2];
// shal code
String temp = new SHA1().getDigestOfString(content.getBytes());
return temp.equalsIgnoreCase(signature);
}
思想其实就是获取到参数 timestamp, nonce 和自己定义的 参数 token一起排序,然后生成一个它们排序后的新字符串,然后给这个字符串用SHA1加密,如果加密结果和获取到的参数 signature相等,则返回获得的参数 echostr。
刚开始我比较获得的参数,加密后怎么看都与 signature 相等,但是验证信息却总是发现不等,后来发现问题在大小写字母上,我使用的SHA1加密后返回的是大写字母,于是在比较的时候改为“temp.equalsIgnoreCase(signature)”忽略大小写比较后,果然通过验证。\(^o^)/~
相关文章推荐
- 微信开发token验证失败
- 微信开发token验证失败的解决
- 百度云引擎BAE连接微信开发平台TOKEN验证失败
- 微信开发 新浪SAE开发平台 验证Token 一直失败
- PHP微信开发新浪sea服务器提示token验证失败
- 微信开发之easyWchat服务器配置验证Token失败原因及解决办法
- 微信开发 新浪SAE开发平台 验证Token 一直失败
- 微信开发 修改url配置后token验证失败
- php版微信开发Token验证失败或请求URL超时问题的解决方法
- TP5微信开发地址验证中的配置失败或者token验证失败的解决办法
- 微信开发token搞定token验证失败。
- java 开发微信中回调验证一直提示 解密失败处理(Java)
- 微信开发 新浪SAE开发平台 验证Token 一直失败
- 关于ThinkPHP框架开发微信公众号在微信后台配置服务器URL提示Token验证失败的解决方案
- 阿里云服务器微信接口开发TOKEN验证失败
- 微信开发token验证失败怎么办的解决办法
- 微信token验证失败Java解决办法
- java 解决微信配置服务器时出现的token验证失败问题
- 微信绑定后台是验证token失败
- 微信token验证失败的解决方法