//package com.ynxbd.wx.servlet; // //import com.ynxbd.api.utils.MessageUtil; //import com.ynxbd.api.config.WeChatConfig; //import org.apache.log4j.Logger; //import weixin.popular.bean.message.EventMessage; //import weixin.popular.bean.xmlmessage.XMLMessage; //import weixin.popular.bean.xmlmessage.XMLNewsMessage; //import weixin.popular.bean.xmlmessage.XMLNewsMessage.Article; //import weixin.popular.bean.xmlmessage.XMLTextMessage; //import weixin.popular.support.ExpireKey; //import weixin.popular.support.expirekey.DefaultExpireKey; //import weixin.popular.util.SignatureUtil; //import weixin.popular.util.StreamUtils; //import weixin.popular.util.XMLConverUtil; // //import javax.servlet.ServletException; //import javax.servlet.ServletInputStream; //import javax.servlet.ServletOutputStream; //import javax.servlet.http.HttpServlet; //import javax.servlet.http.HttpServletRequest; //import javax.servlet.http.HttpServletResponse; //import java.io.IOException; //import java.io.OutputStream; //import java.io.UnsupportedEncodingException; //import java.nio.charset.Charset; //import java.util.ArrayList; //import java.util.List; //import java.util.Map; // //public class DemoServlet2 extends HttpServlet { // private final static Logger logger = Logger.getLogger(DemoServlet2.class); // // // 重复通知过滤 // private final static ExpireKey expireKey = new DefaultExpireKey(); // // // protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // // 验证服务器的有效性 // ServletInputStream inputStream = request.getInputStream(); // ServletOutputStream outputStream = response.getOutputStream(); // String signature = request.getParameter("signature"); // String timestamp = request.getParameter("timestamp"); // String nonce = request.getParameter("nonce"); // String echostr = request.getParameter("echostr"); // // // 首次请求申请验证,返回echostr // if (echostr != null) { // outputStreamWrite(outputStream, echostr); // return; // } // // // 验证请求签名 // if (!signature.equals(SignatureUtil.generateEventMessageSignature(WeChatConfig.getToken(), timestamp, nonce))) { // System.out.println("The request signature is invalid"); // return; // } // // if (inputStream != null) { // // 转换XML // EventMessage eventMessage = XMLConverUtil.convertToObject(EventMessage.class, inputStream); // String key = eventMessage.getFromUserName() + "__" + eventMessage.getToUserName() + "__" // + eventMessage.getMsgId() + "__" + eventMessage.getCreateTime(); // if (expireKey.exists(key)) { // // 重复通知不作处理 // return; // } else { // expireKey.add(key); // } // // // 创建回复 // XMLMessage xmlTextMessage = new XMLTextMessage(eventMessage.getFromUserName(), eventMessage.getToUserName(), // "你好"); // // 回复 // xmlTextMessage.outputStreamWrite(outputStream); // return; // } // outputStreamWrite(outputStream, ""); // } // // protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // request.setCharacterEncoding("UTF-8"); // response.setCharacterEncoding("UTF-8"); // // System.out.println("appid:" + WeChatConfig.getAppId()); // // // 验证服务器的有效性 // ServletInputStream inputStream = request.getInputStream(); // ServletOutputStream outputStream = response.getOutputStream(); // String signature = request.getParameter("signature"); // String timestamp = request.getParameter("timestamp"); // String nonce = request.getParameter("nonce"); // String echostr = request.getParameter("echostr"); // // // 首次请求申请验证,返回echostr //// if (echostr != null) { //// outputStreamWrite(outputStream, echostr); //// System.out.println("首次验证"); //// return; //// } // //// WxConfig = WxConfig.getInstance(); // // 验证请求签名 //// if (!signature.equals(SignatureUtil.generateEventMessageSignature(WxConfig.getToken(), timestamp, nonce))) { //// System.out.println("The request signature is invalid"); //// return; //// } // // // PrintWriter out = response.getWriter(); // /* // * try { Map map = MessageUtil.xmlToMap(request); if // * (map != null) { String toUserName = map.get("ToUserName"); String // * fromUserName = map.get("FromUserName"); String msgType = // * map.get("MsgType"); String content = map.get("Content"); String // * eventType = map.get("Event"); String eventKey = map.get("EventKey"); // * System.out.println("收到消息:toUserName=" + toUserName + // * ", fromUserName=" + fromUserName + ", msgType=" + msgType + // * ", content=" + content + ", eventKey=" + eventKey + ", eventType=" + // * eventType); // * // * // [start]华坪县人民医院 if // * (WxConfig.getAppId().equals("wx18b15dc67fc96f89")) { if (content != // * null) { if (content.equals("支付") || content.equals("微信支付") || // * content.contains("费")) { Article article = new Article(); // * article.setTitle("微信支付"); article.setPicurl( // * "https://mmbiz.qpic.cn/mmbiz_jpg/RUm4m8SVypy7nVubUuo6KgdlibcduK8l4tWnXrz7VfTO5EYOeDc9hZxR70wTQgX1sYhRR7SeND6426uczdpf1BA/0?wx_fmt=jpeg" // * ); article.setDescription( // * "请点这里进入支付页面,支付您的账单,不用再去排队缴费。如需查看检查结果,请输入“检查”。如需查看化验结果,请输入“化验”。"); // * WxConfig WxConfig = WxConfig.getInstance(); // * article.setUrl(WxConfig.getBaseURL() + "my-pay.jsp"); List
// * list = new ArrayList<>(); list.add(article); XMLNewsMessage msg = new // * XMLNewsMessage(fromUserName, toUserName, list); // * msg.outputStreamWrite(response.getOutputStream()); } else if // * (content.equals("检查")) { Article article = new Article(); // * article.setTitle("查看检查结果"); article.setPicurl( // * "https://mmbiz.qpic.cn/mmbiz_jpg/RUm4m8SVypy7nVubUuo6KgdlibcduK8l4tWnXrz7VfTO5EYOeDc9hZxR70wTQgX1sYhRR7SeND6426uczdpf1BA/0?wx_fmt=jpeg" // * ); article.setDescription( // * "请点这里查看您的检查结果,如要查看化验结果,请输入“化验”或“检验”。如需缴费,请输入“支付”。"); WxConfig // * WxConfig = WxConfig.getInstance(); // * article.setUrl(WxConfig.getBaseURL() + "check.jsp"); List
// * list = new ArrayList<>(); list.add(article); XMLNewsMessage msg = new // * XMLNewsMessage(fromUserName, toUserName, list); // * msg.outputStreamWrite(response.getOutputStream()); } else if // * (content.equals("检验") || content.equals("化验")) { Article article = // * new Article(); article.setTitle("查看化验结果"); article.setPicurl( // * "https://mmbiz.qpic.cn/mmbiz_jpg/RUm4m8SVypy7nVubUuo6KgdlibcduK8l4tWnXrz7VfTO5EYOeDc9hZxR70wTQgX1sYhRR7SeND6426uczdpf1BA/0?wx_fmt=jpeg" // * ); // * article.setDescription("请点这里查看您的化验结果,如要查看检查结果,请输入“检查”。如需缴费,请输入“支付”。") // * ; WxConfig WxConfig = WxConfig.getInstance(); // * article.setUrl(WxConfig.getBaseURL() + "inspection.jsp"); // * List
list = new ArrayList<>(); list.add(article); // * XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, // * list); msg.outputStreamWrite(response.getOutputStream()); } else if // * (content.equals("挂号")) { Article article = new Article(); // * article.setTitle("挂号"); article.setPicurl( // * "https://mmbiz.qpic.cn/mmbiz_jpg/RUm4m8SVypy7nVubUuo6KgdlibcduK8l4tWnXrz7VfTO5EYOeDc9hZxR70wTQgX1sYhRR7SeND6426uczdpf1BA/0?wx_fmt=jpeg" // * ); article.setDescription("请点这里进入挂号,如要查看检查结果,请输入“检查”。如需缴费,请输入“支付”。"); // * WxConfig WxConfig = WxConfig.getInstance(); // * article.setUrl(WxConfig.getBaseURL() + "reg.jsp"); List
list // * = new ArrayList<>(); list.add(article); XMLNewsMessage msg = new // * XMLNewsMessage(fromUserName, toUserName, list); // * msg.outputStreamWrite(response.getOutputStream()); } } if (msgType != // * null) { if (MessageUtil.MESSAGE_EVENT.equals(msgType)) { if // * (eventKey.equals("MYDDC")) { List
list = new ArrayList<>(); // * Article article = new Article(); article.setTitle("华坪县人民医院患者满意度调查"); // * article.setUrl("http://mp.weixin.qq.com/s/MCswklxDHdmYr3sFP70Xdw"); // * article.setPicurl( // * "https://mmbiz.qpic.cn/mmbiz_jpg/0jg8QrIOHOwYlpPRQDFKpbFQsN2ibtZqcS9H9pqX4nOCzdaAHNiciaZubLF9jiayZJBV8ADxAqL6XdbpdqolJuwJIQ/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1" // * ); list.add(article); // * // * article = new Article(); article.setTitle("患者满意度调查"); // * article.setUrl("http://mp.weixin.qq.com/s/7l2YsE2Y-XSTWEXN7BJlIQ"); // * article.setPicurl( // * "https://mmbiz.qpic.cn/mmbiz_jpg/0jg8QrIOHOzYGDMbzzyKicXD9QlRA5MdmpGgicibSdY0A4kmgV94qibuKylgRXbMgPb4zGNw9BvWqDXiby1XyFCFCaQ/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1" // * ); list.add(article); // * // * article = new Article(); article.setTitle("员工满意度调查"); // * article.setUrl("http://mp.weixin.qq.com/s/VyoOCM8FoEZ53ZQC3yX-Yw"); // * article.setPicurl( // * "https://mmbiz.qpic.cn/mmbiz_jpg/0jg8QrIOHOzYGDMbzzyKicXD9QlRA5MdmpF19PW1oFibvCDj60twgfGC556fY3wThlAhIYJsHykiaDIU8h3Igh8Dw/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1" // * ); list.add(article); XMLNewsMessage msg = new // * XMLNewsMessage(fromUserName, toUserName, list); // * msg.outputStreamWrite(response.getOutputStream()); } if // * (MessageUtil.EVENT_SUB.equals(eventType)) { Article article = new // * Article(); article.setTitle("微信支付使用流程!"); article.setDescription( // * "首先关注微信公众号“华坪县人民医院”,其次打开公众号,点击“微信支付”,首次需进行身份绑定,按要求输入相关内容,获取账单;最多可以绑定除本人外加4个人,在身份绑定页面,点“添加绑定”" // * ); List
list = new ArrayList<>(); list.add(article); // * XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, // * list); msg.outputStreamWrite(response.getOutputStream()); } } } } // // * [end] // [start]巍山县人民医院 else if // * (WxConfig.getAppId().equals("wx1e30610a28d189a8")) { // * logger.info("巍山县人民医院收到消息:toUserName=" + toUserName + // * ", fromUserName=" + fromUserName + ", msgType=" + msgType + // * ", content=" + content + ", eventKey=" + eventKey + ", eventType=" + // * eventType); if (msgType != null) { if // * (MessageUtil.MESSAGE_EVENT.equals(msgType)) { // 满意度 if // * (eventKey.equals("MYDDC")) { Article article = new Article(); // * article.setTitle("巍山县人民医院患者满意度调查"); // * article.setUrl("https://mp.weixin.qq.com/s/R-tX9YtRRM9Hpw2rMmw2iQ"); // * article.setPicurl( // * "https://mmbiz.qpic.cn/mmbiz_jpg/5kpYU2jcMVicvMfVRATtAKOEjh4A4VvtHmCMKgD9vAfr741FDDEwiccNdj2ZTicBibeeQZfwp6zbaYMI5ubib1TaaeA/640?wx_fmt=jpeg" // * ); List
list = new ArrayList<>(); list.add(article); // * XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, // * list); msg.outputStreamWrite(response.getOutputStream()); } // 关注 if // * (MessageUtil.EVENT_SUB.equals(eventType)) { Article article = new // * Article(); article.setTitle("微信预约挂号开通喽,大家快快用起来!"); // * article.setUrl("http://mp.weixin.qq.com/s/gl_NitQTP6_ZzoV8pwxOcw"); // * article.setPicurl( // * "http://mmbiz.qpic.cn/mmbiz_jpg/5kpYU2jcMVicNybruqia0dn6kBqiakDlrTgDkweiafibyRl9uK6bkKoiaXib0xktJIywqTDzfe9fHcq5x0gggKkurDicpg/0?wx_fmt=jpeg" // * ); List
list = new ArrayList<>(); list.add(article); // * XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, // * list); msg.outputStreamWrite(response.getOutputStream()); } } } } // // * [end] // [start]芒市人民医院 else if // * (WxConfig.getAppId().equals("wxca97aaeb3c40c0d0")) { if (msgType != // * null) { if (MessageUtil.MESSAGE_EVENT.equals(msgType)) { if // * (MessageUtil.EVENT_SUB.equals(eventType)) { Article article = new // * Article(); article.setTitle("微信预约挂号开通喽,大家快快用起来!"); // * article.setUrl("https://mp.weixin.qq.com/s/rJF1qBo1-mV5CUdRsi4Z5g"); // * article.setPicurl( // * "https://mmbiz.qpic.cn/mmbiz_jpg/RUm4m8SVypy7nVubUuo6KgdlibcduK8l4tWnXrz7VfTO5EYOeDc9hZxR70wTQgX1sYhRR7SeND6426uczdpf1BA/0?wx_fmt=jpeg" // * ); List
list = new ArrayList<>(); list.add(article); // * XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, // * list); msg.outputStreamWrite(response.getOutputStream()); } } } } // // * [end] } } catch (Exception e) { e.printStackTrace(); } // */ // // try { // String xmlData = StreamUtils.copyToString(request.getInputStream(), Charset.forName("utf-8")); // Map map = XMLConverUtil.convertToMap(xmlData); // if (map != null) { // String toUserName = map.get("ToUserName"); // String fromUserName = map.get("FromUserName"); // String msgType = map.get("MsgType"); // String content = map.get("Content"); // String message = ""; // System.out.println("收到消息:toUserName=" + toUserName + ", fromUserName=" + fromUserName + ", msgType=" // + msgType + ", content=" + content); // // // 判断请求是否事件类型 event // if (msgType != null) { // if (MessageUtil.MESSAGE_EVENT.equals(msgType)) { // String eventType = map.get("Event"); // // 若是关注事件 subscribe // if (MessageUtil.EVENT_SUB.equals(eventType)) { // // Article article = new Article(); // // // article.setDescription("首先关注微信公众号“华坪县人民医院”,其次打开公众号,点击“微信支付”,首次需进行身份绑定,按要求输入相关内容,获取账单;最多可以绑定除本人外加4个人,在身份绑定页面,点“添加绑定”"); // // 巍山 // article.setTitle("微信预约挂号开通喽,大家快快用起来!"); // article.setUrl("http://mp.weixin.qq.com/s/gl_NitQTP6_ZzoV8pwxOcw"); // article.setPicurl( // "http://mmbiz.qpic.cn/mmbiz_jpg/5kpYU2jcMVicNybruqia0dn6kBqiakDlrTgDkweiafibyRl9uK6bkKoiaXib0xktJIywqTDzfe9fHcq5x0gggKkurDicpg/0?wx_fmt=jpeg"); // // 芒市 // // article.setTitle("微信挂号、微信门诊费用支付开通喽,大家快快用起来!"); // // article.setUrl("https://mp.weixin.qq.com/s/rJF1qBo1-mV5CUdRsi4Z5g"); // // article.setPicurl("https://mmbiz.qpic.cn/mmbiz_jpg/RUm4m8SVypy7nVubUuo6KgdlibcduK8l4tWnXrz7VfTO5EYOeDc9hZxR70wTQgX1sYhRR7SeND6426uczdpf1BA/0?wx_fmt=jpeg"); // List
list = new ArrayList<>(); // list.add(article); // XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, list); // msg.outputStreamWrite(response.getOutputStream()); // // } // } // } // } // } catch (Exception e) { // e.printStackTrace(); // } // // } // // /** // * 数据流输出 // * // * @param outputStream // * @param text // * @return // */ // private boolean outputStreamWrite(OutputStream outputStream, String text) { // try { // outputStream.write(text.getBytes("utf-8")); // } catch (UnsupportedEncodingException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // return false; // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // return false; // } // return true; // } //}