微信公众平台开发入门
因工作需要,要在微信公众平台上进行服务号的开发,现记录下开发流程。
环境
win7、IDEA14、Jdk1.7、微信公众平台测试号、外网域名
搭建基础开发环境
搭建web项目使用最简单的Servlet做消息入口。
创建WeChatServlet 继承 HttpServlet
在web.xml中配置sevlet的url路径
<servlet-name>wechat</servlet-name>
<servlet-class>cn.wh.wechat.WeChatServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>wechat</servlet-name>
<url-pattern>/wechat</url-pattern>
</servlet-mapping>
在微信公众平台申请管理测试号
http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
登陆之后设置URL和token,URL就是外网域名/项目名/wechat,必须是80端口。
配置消息通道认证
WeChatServlet的doGet方法如下:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String signature = request.getParameter("signature");// 微信加密签名
String timestamp = request.getParameter("timestamp");// 时间戳
String nonce = request.getParameter("nonce");// 随机数
String echostr = request.getParameter("echostr");// 随机字符串
if (StringUtils.isBlank(signature) || StringUtils.isBlank(timestamp)|| StringUtils.isBlank(nonce)) {
Writer out = response.getWriter();
out.write("error...");
out.flush();
out.close();
return;
}
// 重写totring方法,得到三个参数的拼接字符串
List<String> list = new ArrayList<String>(3) {
private static final long serialVersionUID = 2621444383666420433L;
public String toString() {
return this.get(0) + this.get(1) + this.get(2);
}
};
list.add(TOKEN);
list.add(timestamp);
list.add(nonce);
Collections.sort(list);// 排序
String tmpStr = new MySecurity().encode(list.toString(),
MySecurity.SHA_1);// SHA-1加密
Writer out = response.getWriter();
if (signature.equals(tmpStr)) {
out.write(echostr);// 请求验证成功,返回随机码
} else {
out.write("");
}
out.flush();
out.close();
}
在微信公众平台测试页面点击提交请求会到WeChatServlet的doGet方法,如果验证通过返回验证码。
以上是在微信公众平台接入开发模式。
后续会写一些开发中用到的消息处理机制。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 编程私厨!