本地使用postman,请求了要设置在微信公众号服务器回调的URL,可以正常返回echostr,点击提交,
一直报错token验证失败,请问这个是什么原因呢?
解决办法:
解决了,我去,好坑啊,遇到该问题的朋友,请做如下检查:
1.检查,request 是不是 UTF-8,避免获取的数据是乱码
2.response.setContentType("application/json;charset=UTF-8"),并且设置编码 response.setCharacterEncoding("UTF-8")
3.也是最重要的一点,接口方法要设置为void,不要返回String,因为微信公众号验证签名的那个URL,人家要求返回echostr,但是这个echostr是要输出在response.getWriter().write(echostr)中
的,不要直接 retrun echostr,(这里是真的坑,卡我好久)
4.加密的几种方式,第一种明文,第二种兼容,第三种安全模式,重点说一下,token验证的时候 微
信公众号 服务器发送的数据是不同的,大致如下:
(1)明文,signature、timeStamp、nonce和echostr都是空
(2)兼容模式和安全模式下,signature、timeStamp、nonce都是有值的,echostr是空。
区别:1.token验证和兼容模式和安全模式的,signature、timeStamp、nonce都是有值的,区别
在于,token验证的时候echostr是有值的,而安全模式下和兼容模式下,微信给我们接口发消息的
时候echostr是没有值的 2.明文模式和安全模式和兼容模式的区别在于,四个字段是否有值,可以
作为判断依据。判断是否哦要加解密
标签:验证,微信,模式,兼容,token,echostr,服务器 From: https://www.cnblogs.com/wwssgg/p/18525772