1. token验证失败
问题描述: 在公众号基本配置页面上配置URL,token等信息之后, 点击提交, 系统提示:token验证失败.
调试方法:
1.在测试账号上调试, 出现同样问题;
2.使用不同项目绑定,可以绑定成功.
3.debug时,执行微信调用接口方法返回的数据正常.
导致原因: 为了实现网页版聊天功能,在springMVC配置文件中添加了对JSON转换的适配器org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
解决方法: (临时)先注释掉问题代码, 绑定成功后取消注释, 重启服务.
(永久)由于项目中需要自动处理对象转换json的功能, 所以只能修改返回微信时的返回方式: 将方法返回值设为void, 并将返回数据通过request.getWriter().write();的方式以流的方式写出数据.
==============================================================================================================
2. redirect_URI参数错误
在微信中,如果要在访问第三方网页时获取用户OPENID,则需要调用网页授权接口. 该接口参数如下:
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 公众号的唯一标识 |
redirect_uri | 是 | 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 |
response_type | 是 | 返回类型,请填写code |
scope | 是 | 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息) |
state | 否 | 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节 |
#wechat_redirect | 是 | 无论直接打开还是做页面302重定向时候,必须带此参数 |
redirect_uri参数需要注意两点:1. url需要使用URLEncode进行编码; 2.url只支持域名, 不支持IP.
解决方法: 改为域名.
==============================================================================================================