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

这两天一直在弄微信公众号开发,在进行服务器配置时,发现总是返回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请求了返回的结果是

微信公众平台服务器配置时token验证失败_第1张图片

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

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

微信公众平台服务器配置时token验证失败_第2张图片

这样返回的结果就是

微信公众平台服务器配置时token验证失败_第3张图片

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

二、改变配置文件

方法一、
  

 
        
        
    

方法二、


		
			
			
				text/json;charset=UTF-8  
			
		
	

	
	
		
			
			    
				
			
			
		
	

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

微信公众平台服务器配置时token验证失败_第4张图片

你可能感兴趣的:(微信公众号开发)