微信公众号开发常见问题

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值