
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
java版,微信公众平台新手入门第一节
java版 微信公众平台开发 配置开发者中心 完成关注时内容回复 配置开发者中心然后启用配置
新建项目配置一个servlet进行接收微信发的消息 web.xml - <servlet>
- <servlet-name>WechatServlet</servlet-name>
- <servlet-class>com.demo.servlet.WechatServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>WechatServlet</servlet-name>
- <url-pattern>/wechat.servlet</url-pattern>
- </servlet-mapping>
复制代码WechatServlet.java - public void doGet(HttpServletRequest request, HttpServletResponseresponse)throws ServletException, IOException {
- request.setCharacterEncoding("UTF-8");
- response.setCharacterEncoding("UTF-8");
-
- String encryptType = request.getParameter("encrypt_type");
- /** 读取接收到的xml消息 */
- StringBuffer sb = new StringBuffer();
- InputStream is = request.getInputStream();
- InputStreamReader isr = new InputStreamReader(is, "UTF-8");
- BufferedReader br = new BufferedReader(isr);
- String s = "";
- while ((s = br.readLine()) != null) {
- sb.append(s);
- }
- String xml = sb.toString(); //接收到微信端发送过来的xml数据
-
- String result = "";
- /** 判断是否是微信接入激活验证,只有首次接入验证时才会收到echostr参数,此时需要把它直接返回 */
- String echostr = request.getParameter("echostr");
- if (echostr != null && echostr.length() > 1) {
- result = echostr;
- } else {
- if("".equals(xml)){
- request.getRequestDispatcher("res.jsp").forward(request,response);
- return;
- }
-
- //解析微信发来的xml数据
- System.out.println("自己的业务逻辑处理");
- }
- try {
- OutputStream os = response.getOutputStream();
- os.write(result.getBytes("UTF-8"));
- os.flush();
- os.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public void doPost(HttpServletRequest request, HttpServletResponseresponse)
- throws ServletException, IOException {
- doGet(request, response);
- }
复制代码WeChatProcess.java - /**
- * 解析处理xml
- */
- public String processWechatMag(String xml){
-
- /** 解析xml数据 */
- ReceiveXmlEntity xmlEntity = new ReceiveXmlProcess().getMsgEntity(xml);
-
- String result = "";
-
-
- //点击事件
- if("event".equals(xmlEntity.getMsgType())){
-
- //点击关注
- if("subscribe".equals(xmlEntity.getEvent())){
- result = "欢迎关注";
- }
-
- //取消关注
- if("unsubscribe".equals(xmlEntity.getEvent())){
- result = "取消关注";
- }
-
- }
-
-
- result = newFormatXmlProcess().formatXmlAnswer(xmlEntity.getFromUserName(),xmlEntity.getToUserName(), result);
-
- return result;
- }
复制代码FormatXmlProcess.java - /**
- * 封装文字类的返回消息
- * @param to
- * @param from
- * @param content
- * @return
- */
- public String formatXmlAnswer(String to, String from, Stringcontent) {
- StringBuffer sb = new StringBuffer();
- Date date = new Date();
- sb.append("<xml><ToUserName><![CDATA[");
- sb.append(to);
- sb.append("]]></ToUserName><FromUserName><![CDATA[");
- sb.append(from);
- sb.append("]]></FromUserName><CreateTime>");
- sb.append(date.getTime());
- sb.append("</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[");
- sb.append(content);
- sb.append("]]></Content><FuncFlag>0</FuncFlag></xml>");
- return sb.toString();
- }
复制代码
|
|
|
|
|
|