@微信公众号修改服务器配置token验证失败

微信公众号修改服务器配置token验证失败

新建SignUtil类

public class SignUtil {// 与接口配置信息中的 Token 要一致private static String token = "填写自己编的token";/*** 验证签名** @param signature* @param timestamp* @param nonce* @return*/public static boolean checkSignature(String signature, String timestamp, String nonce) {String[] arr = new String[]{token, timestamp, nonce};// 将 token、timestamp、nonce 三个参数进行字典序排序Arrays.sort(arr);StringBuilder content = new StringBuilder();for (int i = 0; i < arr.length; i++) {content.append(arr[i]);}MessageDigest md = null;String tmpStr = null;try {md = MessageDigest.getInstance("SHA-1");// 将三个参数字符串拼接成一个字符串进行 sha1 加密byte[] digest = md.digest(content.toString().getBytes());tmpStr = byteToStr(digest);} catch (NoSuchAlgorithmException e) {e.printStackTrace();}content = null;// 将 sha1 加密后的字符串可与 signature 对比,标识该请求来源于微信return tmpStr != null ? tmpStr.equals(signature.toUpperCase()) : false;}/*** 将字节数组转换为十六进制字符串** @param byteArray* @return*/private static String byteToStr(byte[] byteArray) {String strDigest = "";for (int i = 0; i < byteArray.length; i++) {strDigest += byteToHexStr(byteArray[i]);}return strDigest;}/*** 将字节转换为十六进制字符串** @param mByte* @return*/private static String byteToHexStr(byte mByte) {char[] Digit = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};char[] tempArr = new char[2];tempArr[0] = Digit[(mByte >>> 4) & 0X0F];tempArr[1] = Digit[mByte & 0X0F];String s = new String(tempArr);return s;}
}

创建Controller层

@Controller
@RequestMapping("/wechat")
public class WechatSecurityController {@RequestMapping(value = "/security", method = RequestMethod.GET)public void doGet(HttpServletRequest request,HttpServletResponse response,@RequestParam(value = "signature", required = true) String signature,@RequestParam(value = "timestamp", required = true) String timestamp,@RequestParam(value = "nonce", required = true) String nonce,@RequestParam(value = "echostr", required = true) String echostr) {try {if (SignUtil.checkSignature(signature, timestamp, nonce)) {PrintWriter out = response.getWriter();out.print(echostr);out.close();} else {System.out.println("这里存在非法请求!");}} catch (Exception e) {System.out.println(e);}}
}

后台代码都写好之后就可以在微信后台设置中更改urltoken

注意:

url:这里的url填写的地址为域名+后台写接口的路径
token:填写SignUtil工具类中的token

之后修改了域名之后需要还需要在公众号设置-功能设置-网页授权域名填写自己的域名

微信公众号修改服务器配置token验证失败相关推荐

  1. 2 微信公众号开发 服务器配置 Token验证

    服务器配置的主要难点就是Token验证. 官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432 接入指南 ...

  2. springboot微信公众号开发者配置 token验证失败和参数错误

    真的坑!!擦 首先参数错误 在使用ngrok的时候可能会发生,建议使用natnapp token验证失败,注意token的一致 代码奉上 AutowiredWeiXinConfig weiXinCon ...

  3. 阿里云服务器+微信公众号配置(Token验证不通过)

    推荐使用CentOS操作系统,本人在使用Ubuntu操作系统时安装第三方软件不是很顺利,导致在微信公众号服务器配置的Token验证失败不通过上浪费大量时间. 以下是 CentOS 和 Ubuntu的介 ...

  4. c# 微信公众号开发之token验证第三方服务器

    初入微信,才发现真的一坑又一坑,小程序之前坑可能是前辈填掉了,前辈走后,公司开始搞公众平台,需要公众号开发,唯一后端的我,顶了上去. 服务器配置验证token,从官方文档理解就是,官方发送signat ...

  5. 微信公众号认证法人信息验证失败怎么办?

    个体工商户认证公众号时,提示: "企业不存在或企业信息未更新"或"企业法定代表人身份证号码不一致",法定代表人验证失败,该怎么办呢? 公众号快速认证流程 1.准 ...

  6. 公众号服务器配置 token验证失败

    1. 背景 公司测试域名无法外网访问,利用个人服务器做了反向代理,使用个人域名配置公众号服务器域名: 2. 经过 按照公众号文档完成token验证代码 服务器配置 token验证失败,开始以为不支持做 ...

  7. php订阅号发送消息,关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题,_PHP教程...

    关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题, 相信很多人会跟我一样,token验证之后,发送消息给订阅号,没有消息返回. 以下,说一下我辛苦调试得到的解决办法 ...

  8. 微信公众号开发教程(一) 验证接入

    作者:陈惠,叩丁狼教育高级讲师.原创文章,转载请注明出处. 微信公众号开发教程(一)验证接入 本篇文章主要介绍了微信公众号开发接入详细流程,希望对刚接触公众号开发的同学有所帮助,有兴趣的同学可多多关注 ...

  9. 微信公众号 修改 应用签名 不生效

    因为写错了 android的应用签名 写成了 keystore的sha而不是用微信提供的apk 通过Package Name获取 应用签名 在微信公众号 修改 Package Name不刷新 测了好久 ...

最新文章

  1. Facebook开源Torchnet,加速AI研究
  2. 2000坐标转换成经纬度_ArcGIS中的坐标问题快问快答
  3. UVA 10020 Minimal coverage
  4. Nginx配置wss访问实现微信小程序的websocket通信
  5. Ceres Solver 非线性优化库
  6. 游戏是如何限制多开的,如何解决
  7. qmenu qt 关闭,Qt实现点击菜单项后QMenu不关闭功能
  8. 实际运用中DataSet、DataTable、DataRow点滴
  9. (绿色)修正版gooflow流程解决方案(源码分享+在线演示+UI地址下载)
  10. 50步带你在windows PC上创建属于自己的虚拟机(一)
  11. 软件间对接时,常用的接口类型和协议类型有哪些
  12. 弘辽科技:淘宝流量下滑了怎么办?淘宝流量下滑应对方法
  13. NAS 层架构_01
  14. 鲍威尔方法c语言程序,鲍威尔法编程-powell法编程-c语言编程-c++6.0.doc
  15. 如何快速办理软件著作权?
  16. Linux基础_软件包管理
  17. 浅谈SAP公有云:S4 HANA Cloud
  18. 计算机(本科)课程安排表
  19. Excel根据出生日期和身份证使用公式计算年龄
  20. python可视化-条形图(柱状图)与直方图

热门文章

  1. 渗透测试基础,初识渗透测试
  2. Word遇到错误以安全模式打开的解决方法
  3. crazy的比较级最高级_英语小问题:crazy比较级是crazier还是more crazy?
  4. 视频转换器 Wondershare Video Converter Ultimate v11.5.1 中文便携版
  5. 魔兽地图编辑器中触发器中文命名规则
  6. 金蝶EAS·BOS 如何修改解决方案(工程)名称 、工作空间路径
  7. 飞信登不上服务器未响应,ie未响应因为脚本长时间运行天天酷跑带跑
  8. Qt5.7以上调用虚拟键盘(支持中文),以及源码修改(可拖动,水平缩放)
  9. 杭州阿涩:关于银行业绩下降的分析
  10. 为什么有时候启动计算机会很卡,为什么我的电脑会卡?