1 配置公众号服务器失败
(1)原理:
配置公众号服务器时,服务器url只需对微信后台请求的echostr作出相同的字符串响应即可,验证签名的过程实际可以忽略。
(2)问题:
一个常见的问题的服务器url的响应字符串包含了双引号””,这会导致配置失败。
(3)原因:
此问题的一种常见原因是Sping MVC的@ResponseBody注解时会强制返回json格式,在返回字符串时会默认加上双引号。
(4)解决:
去掉引号可以在springMVC配置文件中加入如下配置项:
<mvc:annotation-driven>
< mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
<bean class="org.springframework.http.converter.StringHttpMessageConverter" />
< /mvc:message-converters>
< /mvc:annotation-driven>
参考:http://blog.csdn.net/u013268066/article/details/51603604
2 网页授权失败
用户进行公众号网页授权时,配置会比较容易出错,常见的问题如下:
(1) 创建菜单时重定向url(redirect_uri参数)需要进行URL code编码
如:https%3a%2f%2fwww.mydomain.com%2fwechatstock%2ftrade%2fsendform.do
http://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe649dc08bf553be2&redirect_uri=https%3a%2f%2fwww.mydomain.com%2fwechatstock%2ftrade%2fsendform.do&response_type=code&scope=snsapi_base&state=123#wechat_redirect
(2) 重定向url(redirect_uri参数)的request参数不能与回调url参数重复
即重定向url(redirect_uri参数)的request参数不能包含:code和state。
否则重定向url的参数会被回调url的参数覆盖。
原因:
用户点击此菜单按钮后,微信后台将调用回调地址:
https://www.mydomain.com/wechatstock/trade/sendform.do?code=CODE&state=STATE
(3) 重定向url(redirect_uri参数)所访问的地址不能再重定向
由于回调地址url就是redirect_uri?code=CODE&state=STATE,带有code和state参数作为获取用户openID的必要参数,redirect_uri所指向的地址不能再重定向到另外一个url,否则会丢失code和state参数。如有需要,可以转发到另一个地址。
关于重定向(redirect)和转发(forward)的区别,请参考:
http://www.javapractices.com/topic/TopicAction.do?Id=181