这两天一直在弄微信公众号开发,在进行服务器配置时,发现总是返回token验证失败。这个问题困扰了两天,今天终于解决了。现在总结一下。

一般来说服务器配置token验证失败,可能有以下几个方面:

1.服务器ip或者域名没有认证备案(可以通过Natapp购买隧道,获取备案域名)

2.自己的服务器没有正常运行(基本不可能)

3.获取到的请求数据乱码(也没有啥可能性)

4.返回的echostr格式不正确。

前三个问题还是好解决的,现在主要说第四了问题。第四个问题主要是我用 signature、timestamp、nonce、echostr这四个参数发起请求时,我的服务器接收到了数据而且验证通过,同时也成功地返回了echostr的值,但是就是一直报“token校验失败”。

微信服务器返回的数据是

{"base_resp":{"ret":200302,"err_msg":"verify token fail"}}

我用postman请求了返回的结果是

发现虽然echostr虽然是正确的,但是带上了两个"",返回的是一个字符串,所以微信token验证错误。由于我使用的springMVC,返回的数据contentType是application/json,是以json字符串的形式返回的,如果直接返回的String类型的数据,就会加上""。所以有两种方法,一个是把返回的数据改为整形,二是把springMVC的框架配置文件更改一下

一、我们把返回的echostr转为整形(Long),如下

这样返回的结果就是

此时再进行token验证,就可以通过。

二、改变配置文件

方法一、<mvc:annotation-driven>

 <mvc:message-converters><bean class="org.springframework.http.converter.StringHttpMessageConverter"/><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/></mvc:message-converters>
</mvc:annotation-driven>

方法二、

<bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="supportedMediaTypes"><list><!--   <value>text/html;charset=UTF-8</value> --><value>text/json;charset=UTF-8</value>  <!-- 微信公纵号开发新加的--></list></property></bean>
<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter" /><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="messageConverters"><list><ref bean="stringHttpMessageConverter" /><ref bean="mappingJacksonHttpMessageConverter" /></list></property></bean>

stringHttpMessageConverter一定要放在mappingJacksonHttpMessageConverter前面。因为返回的string类型的解析器要放到json的前面。结果如下:

微信公众平台服务器配置时token验证失败相关推荐

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

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

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

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

  3. ASP.NET MVC4 微信公众平台开发测试一: 验证

    ASP.NET MVC4 微信公众平台开发测试一: 验证 背景,想做一个微信公众号的自动回复系统,于是想动手写一下.记录这些,是一边写程序一边写在这里,也是记录一下自己的思路. 微信公众平台开发时,需 ...

  4. url 微信公众号开发 配置失效_微信开发者中心配置服务器url时token验证失败的原因和处理方法...

    一.问题由来 在使用URL和Token启用微信公众平台开发模式消息接口的时候,我们会碰到下面三种情况 1. token校验失败 这样回头检查一下各项配置是否正确.如果确定配置没有问题,请按下面的方法检 ...

  5. 关于微信公众号配置URL时token验证失败

    话不多说,先上个官方文档中的截图 注意,其实官方文档给的东西并不坑,这里token验证失败的问题是 没有按照文档中所说的输出echostr,而这个echostr在哪呢?就在上面人家说的参数里 这里官方 ...

  6. 关于微信公众平台服务器配置Token

    1.打开微信公众平台 2.修改配置 3.填写服务器地址(URL) -------------域名或者ip地址加验证token接口,路径 例如:http://xxxxxx.cn/api/wx/token ...

  7. php如何与微信公众平台连接失败,微信公众平台接入问题,配置失败不知道是哪的原因?...

    想接入微信平台实现远程控制家里面点灯打开,用的是新浪云应用,现在的问题是新浪的云应用平台搭建好了(应该有错误),和微信配置连接失败.求大神帮我看看哪出问题了.附代码: downup.php:<? ...

  8. 微信公众平台服务器配置-PHP

    本人小菜,今天下午研究了一下午,才将微信公众接口的服务器配置搞定,说实话,理论还是不是很清楚,为了方便后来人和提醒自己,特发此文.因为很多内容雷同,所以有部分内容摘自百度文档. 下面这段摘自柳大神!! ...

  9. 微信公众平台服务器配置启用说明

    在微信公众平台机型服务器配置的时候,下图中的服务必须先在服务端跑起来,后台接口使用java开发. authenticate控制器接口如下: /*** 验证只接受微信后台的服务请求* 开发者通过检验si ...

最新文章

  1. 一文入门 Zookeeper
  2. 微信小程序开发系列一:微信小程序的申请和开发环境的搭建
  3. windows环境下如何安装memcached教程
  4. python itertools模块实现排列组合
  5. 图片二进制编码_python3从零学习-5.7.4、quopri编码与解码经过MIME转码打印数据
  6. 推荐系统笔记:基于模型的协同过滤
  7. Matlab:成功解决引用了已清除的变量 handles
  8. 经典C语言程序100例之八九
  9. 获取mac地址方法之一 GetAdaptersInfo()
  10. mysql 双从性能_MySQL双主一致性架构优化
  11. 【毕业设计/课程设计】基于STM32的六臂行走机器小车设计
  12. 武汉工程大学matlab,Lorenz系统动力学行为的MATLAB仿真与分析[1]
  13. 思考的救赎(一):三消游戏实现探索
  14. 老九学堂 学习 C++ 第五天
  15. 解决windows 10下文件名太长无法删除的问题
  16. 基建不再是架桥铺路,“新基建”正星火驰援行业的数字化转型
  17. Hive MetaStore服务增大内存
  18. Educoder头歌单总线CPU设计(定长指令周期3级时序)(HUST)谭志虎 华中科技大学计算机组成原理实验计算机硬件系统设计
  19. 推背图预测新冠病毒来袭
  20. 【牛客刷题】-- 围棋

热门文章

  1. 离别,总免不了有些悲伤
  2. 国产AT2401c完全替代RFX2401C直接兼容软件硬件
  3. 美团后端2020.4.23笔试题目
  4. 机器学习入门之:使用 scikit-learn 决策分类树来预测泰坦尼克号沉船生还情况
  5. 三十岁了学python还可以吗-三十岁了还可以学编程吗?只要你想,只要你做,什么时候都不晚...
  6. Goland中time.Timer and time.Ticker
  7. 【论文写作】汽车销售管理系统的设计与开发引言参考
  8. 计算机系统维护工作内容
  9. 生死看淡,不服就GAN
  10. 前端html的base64使用方法window.btoa()和window.atob()