微信公众平台开发者文档有详细接口调用示例,第一次接触微信公众号开发的,需要花点时间将“开始前必读”以及“开始开发”的”接入指南”和”获取接口调用凭据”读完。
常见名词解释
- access_token
是公众号的全局唯一票据,公众号调用各接口时都需使用access_token,有效期是7200秒,所有用户是相同的(公用)虽然公众平台会保证在access_token刷新后,旧的access_token在5分钟内仍能使用,但是,还是应该避免同一时刻项目中使用了不同的access_token。 - openid
每个微信用户在每个公众号下有唯一的openid
微信开发主要步骤
微信接入
开发者在微信公众平台配置好相关信息并提交,如图1,提交后,微信服务器get请求配置的URL服务器地址(比如:后台某个servlet访问路径),在这个地址对应servlet的doGet方法中,除了可以写接入验证之外,接口创建菜单的操作也适合放在这里做。
配置的url对应的servlet中 doGet和 doPost分别应做的事:
doGet : 做接入验证以及菜单创建。公众平台保存服务器配置时,会自动调用(注意:servlet的doGet中写创建菜单的逻辑,请求创建菜单时用post方式调用,get有长度限制,菜单串在后台中生成)
doPost: 处理微信发过来的消息或事件(用户在公众号中输入信息,用户点击公众号中的菜单时触发doPost)
图1:
接入验证参考: http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html获取接口调用凭据access token
http://mp.weixin.qq.com/wiki/14/9f9c82c1af308e3b14ba9b973f99a8ba.html获取openid
https://mp.weixin.qq.com/wiki/2/ae9782fb42e47ad79eb7b361c2149d16.html
常见错误
redirect_uri参数错误
原因1:redirect_uri值为空。
原因2:redirect_uri值不在微信公众平台配置的网页授权域名下(比如:授权域名为t.test.com,而地址为http://61.154.221.198:8090/m/index.html,就会提示参数错误)。正确写法如下:(appid为wxdf84s7b3d071ac53的公众号,其授权域名设置为t.test.com,下面的写法就是正确的)
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxdf84s7b3d071ac53&redirect_uri=https://t.test.com/m/index.html&response_type=code&scope=snsapi_userinfo&state=123微信公众号接口只支持80接口
所以tomcat启动应用的端口必须为80
微信配置的服务器地址 如:https://t.test.com/m/wechatAccess.do
公众平台配置菜单与使用接口创建自定义菜单的使用场景
微信公众平台确实可以直接配置菜单,可是需要停用服务器配置,如下图2, 服务器配置的服务器地址,是消息以及事件的入口,公众平台上直接配置菜单会导致没法进行消息交互(不能实现推送消息,事件触发)。而通过接口的方式创建菜单,是需要启动服务器配置的,能实现消息的交互。
图2:
如何在后台调用微信接口
可以网上找一个HttpUtils类,get或post方式调用微信接口。
实现扫描二维码关注公众号
进入微信公众平台,点击公众号设置,就能看到二维码的图片,这个图片可用于公众号的推广,用户只需用微信扫描这个图片就能关注了。
微信web开发者工具
http://mp.weixin.qq.com/wiki/10/e5f772f4521da17fa0d7304f68b97d7e.html
网页底部有不同系统的对应微信调试工具