jsp(java)开发微信公众平台入门
2013-10-22 16:46
267 查看
开发的先决条件
1、有一台服务器
2、一套可区分PSOT和GET请求的框架,或是直接用servlet+jsp。(请自觉PASS struts,原因后面有说明)
3、会用程序解析及生成XML
1和2是必要条件,3是非必要条件,因为很好学,网上的例子有很多。
进入到微信公众平台的开发模式,首先需要一个接口配置。
从这里就可以看出来,其中URL,就是要求有一台独立的服务器,可以用来处理微信请求,此处配置完成后,微信要进行接口验证,验证通过才可以成为开发模式。
验证部分的代码如下:
在开放接口指南中,已明确说明,验证是通过GET请求发送,而接口内容是通过POST发送的。对于大家熟悉的struts应该在这里抛弃掉,struts将GET及POST合二为一,无法进行区分,而我们的程序与微信互通的URL只有唯一一个,就是验证时填写的,所以使用struts无法区分是验证请求,还是接口请求,当然能改框架代码的高手请无视我说的话。
一、消息文本
官方的参数解释已经很到位了,但是注意一点,这是收到的消息的格式,而非回复的消息格式。微信公众平台的开发模式是在高级功能下,也就是只能实现高级功能下编辑模式的功能。
这个接口就是我们所有功能的开关,通过判断Content中的消息,来执行不同的业务。
回复文本消息与接收文件消息相差一个参数,就是MsgId,对于回复的消息,这是一个无用的东西,当然把这个发送回复微信,也不会出错。
对于XML消息的造成,建议采取模板的形式来进行回复,如下图:
在服务启动时,预先读取这些模板,以字符串或XML对象的形式保存在内存中,用的时候直接调出,使用替换的方法就可以了。
如果是要在输入窗口中实现连续性的业务话,如实现注册功能,那就需要一个第三方的缓存,虽然微信公众平台的接口是http形式的,但每条消息所用的sessionId是截然不同的,所以需要一个缓存保存业务执行的状态。
接口消息是通过post发送,收取的时候也需要到doPost中收取,xml消息是以流的形式传递过来的,需要用request.getInputStream()来收取,而返回消息的时候,也需要以流的形式返回到微信服务器上,request.getWrite.write(xml);
入门介绍到些为止,^_^
1、有一台服务器
2、一套可区分PSOT和GET请求的框架,或是直接用servlet+jsp。(请自觉PASS struts,原因后面有说明)
3、会用程序解析及生成XML
1和2是必要条件,3是非必要条件,因为很好学,网上的例子有很多。
进入到微信公众平台的开发模式,首先需要一个接口配置。
从这里就可以看出来,其中URL,就是要求有一台独立的服务器,可以用来处理微信请求,此处配置完成后,微信要进行接口验证,验证通过才可以成为开发模式。
验证部分的代码如下:
String token = this.getInitParameter("token"); if (token == null) token = "11111111"; Map<String, String[]> map = request.getParameterMap(); for (Entry<String, String[]> en : map.entrySet()) { System.out.println(en.getKey() + " = " + en.getValue()[0]); } String timestamp = map.get("timestamp")[0]; String nonce = map.get("nonce")[0]; String sha1 = ""; String[] ss = new String[] { token, timestamp, nonce }; Arrays.sort(ss); for (String s : ss) { sha1 += s; } sha1 = new SHA1().getDigestOfString(sha1.getBytes()); if (sha1.toLowerCase().equals(map.get("signature")[0])) { response.getWriter().write(map.get("echostr")[0]); }
在开放接口指南中,已明确说明,验证是通过GET请求发送,而接口内容是通过POST发送的。对于大家熟悉的struts应该在这里抛弃掉,struts将GET及POST合二为一,无法进行区分,而我们的程序与微信互通的URL只有唯一一个,就是验证时填写的,所以使用struts无法区分是验证请求,还是接口请求,当然能改框架代码的高手请无视我说的话。
一、消息文本
官方的参数解释已经很到位了,但是注意一点,这是收到的消息的格式,而非回复的消息格式。微信公众平台的开发模式是在高级功能下,也就是只能实现高级功能下编辑模式的功能。
这个接口就是我们所有功能的开关,通过判断Content中的消息,来执行不同的业务。
回复文本消息与接收文件消息相差一个参数,就是MsgId,对于回复的消息,这是一个无用的东西,当然把这个发送回复微信,也不会出错。
对于XML消息的造成,建议采取模板的形式来进行回复,如下图:
在服务启动时,预先读取这些模板,以字符串或XML对象的形式保存在内存中,用的时候直接调出,使用替换的方法就可以了。
如果是要在输入窗口中实现连续性的业务话,如实现注册功能,那就需要一个第三方的缓存,虽然微信公众平台的接口是http形式的,但每条消息所用的sessionId是截然不同的,所以需要一个缓存保存业务执行的状态。
接口消息是通过post发送,收取的时候也需要到doPost中收取,xml消息是以流的形式传递过来的,需要用request.getInputStream()来收取,而返回消息的时候,也需要以流的形式返回到微信服务器上,request.getWrite.write(xml);
入门介绍到些为止,^_^
相关文章推荐
- Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门
- JSP开发入门(三)----JSP与JavaBean
- JSP——第1章: Java Web开发快速入门
- JSP开发入门(三)--JSP与JavaBean
- JSP开发入门(三)--JSP与JavaBean
- javaWeb入门<1>Servlet+Jsp+JavaBean实现MVC开发模式登陆注册实例详解
- JSP开发入门(三)--JSP与JavaBean
- JavaWeb开发基础--JSP入门
- 【备忘】【No5】微信公众平台开发入门到实战开发视频教程(Java+PHP)
- 【备忘】微信公众平台开发入门到实战开发视频教程(Java+PHP)
- 微信公众平台开发入门到实战开发视频教程(Java+PHP)
- Java socket 入门编程实例-Java基础-Java-编程开发
- 我的java学习之路-开发入门常见问题
- Java IDE-NetBeans IDE 4.1 入门指南-Java基础-Java-编程开发
- JSP自定义标签开发入门
- 微信公众平台开发之模板消息(Java)
- JAVAWEB开发之Lucene详解——Lucene入门及使用场景、全文检索、索引CRUD、优化索引库、分词器、高亮、相关度排序、各种查询
- MyEclipse开发javaweb项目时遇到的异常java.lang.NoSuchMethodError: javax.servlet.JSP.PageContext.getELContext()L
- Java微信公众平台开发之发送模板消息