1、医保现金部分退费限制优先级调整,新增HIS防止返回信息为空时,绕过退费处理。

2、微信回复信息新增枚举管理医院appid和微信自动回复的自动类型。
debug
wangsq 6 days ago
parent a67bf5d877
commit 7d695b12e6
  1. 1
      src/main/java/com/ynxbd/common/helper/common/Base64Helper.java
  2. 25
      src/main/java/com/ynxbd/common/service/MedicalService.java
  3. 62
      src/main/java/com/ynxbd/wx/config/HospConfigEnum.java
  4. 35
      src/main/java/com/ynxbd/wx/config/WxEventEnum.java
  5. 44
      src/main/java/com/ynxbd/wx/servlet/WxServlet.java
  6. 260
      src/main/java/com/ynxbd/wx/wxfactory/utils/WxPassiveReplyHelper.java

@ -92,7 +92,6 @@ public class Base64Helper {
return encode;
}
// 判断是否只有数字和字母
public static boolean isLetterDigit(String str) {
return str.matches("^[a-z0-9A-Z]+$");

@ -345,12 +345,7 @@ public class MedicalService {
return false;
}
if (!MdConfig.IS_AUTO_REFUND) {
log.info("[医保][挂号]现金自动退费功能未开启 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo);
return false;
}
if (respMessage != null && !respMessage.contains("(医保结算部分已回退)")) {
if (respMessage == null || !respMessage.contains("(医保结算部分已回退)")) {
log.info("[医保][挂号]HIS医保部分未退费成功,禁止现金部分退费 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo);
return false;
}
@ -363,6 +358,11 @@ public class MedicalService {
return false;
}
if (!MdConfig.IS_AUTO_REFUND) {
log.info("[医保][挂号]现金自动退费功能未开启 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo);
return false;
}
// 微信医保自动退费
MedicalOrder order = WxMedicalHelper.refundCash(outTradeNo, tradeNo, cashFee, "系统繁忙缴费失败,自动退费");
boolean isOk = order.isOk();
@ -454,12 +454,7 @@ public class MedicalService {
return false;
}
if (!MdConfig.IS_AUTO_REFUND) {
log.info("[医保][处方][现金自动退费]功能未开启 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo);
return false;
}
if (respMessage != null && !respMessage.contains("(医保结算部分已回退)")) {
if (respMessage == null || !respMessage.contains("(医保结算部分已回退)")) {
log.info("[医保][处方]HIS医保部分未退费成功,禁止现金部分退费 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo);
return false;
}
@ -472,6 +467,12 @@ public class MedicalService {
}
return false;
}
if (!MdConfig.IS_AUTO_REFUND) {
log.info("[医保][处方][现金自动退费]功能未开启 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo);
return false;
}
MedicalOrder order = WxMedicalHelper.refundCash(outTradeNo, tradeNo, cashFee, "系统繁忙缴费失败,自动退费");
boolean isOk = order.isOk();
String refundResult = order.isOk() ? WxPayHelper.OK : order.getMessage();

@ -0,0 +1,62 @@
package com.ynxbd.wx.config;
import lombok.ToString;
import org.apache.commons.lang3.ObjectUtils;
@ToString
public enum HospConfigEnum {
红河州第一人民医院("红河州第一人民医院", "wxd503671f502bd89d", null, null),
蒙自市妇幼保健院("蒙自市妇幼保健院", "wx90e7fe556d089e66", null, null),
德宏州妇幼保健院("德宏州妇幼保健院", "wx8e7ce6f6e83eb156", null, null),
武定忠爱医院("武定忠爱医院", "wx7a8aa861e400cc42", null, null),
// ===================================================================================================================================
华坪县人民医院("华坪县人民医院", "wx18b15dc67fc96f89", null, null),
巍山县人民医院("巍山县人民医院", "wx1e30610a28d189a8", null, null),
芒市人民医院("芒市人民医院", "wxca97aaeb3c40c0d0", null, null),
玉龙县人民医院("玉龙县人民医院", "wx1f1e9d29f9b44c36", null, null),
;
public final String NAME;
public final String WX_APP_ID;
public final String WX_APP_ID_02;
public final String ALI_APP_ID;
HospConfigEnum(String NAME, String WX_APP_ID, String WX_APP_ID_02, String ALI_APP_ID) {
this.NAME = NAME;
this.WX_APP_ID = WX_APP_ID;
this.WX_APP_ID_02 = WX_APP_ID_02;
this.ALI_APP_ID = ALI_APP_ID;
}
public static HospConfigEnum findEnumByWxAppId() {
return findEnumByWxAppId(WeChatConfig.APP_ID);
}
public static HospConfigEnum findEnumByWxAppId(String appId) {
if (ObjectUtils.isEmpty(appId)) {
return null;
}
for (HospConfigEnum item : HospConfigEnum.values()) {
if (!ObjectUtils.isEmpty(item.WX_APP_ID) && item.WX_APP_ID.equals(appId)) {
return item;
}
if (!ObjectUtils.isEmpty(item.WX_APP_ID_02) && item.WX_APP_ID_02.equals(appId)) {
return item;
}
}
return null;
}
public static HospConfigEnum findEnumByALIAppId(String appId) {
if (ObjectUtils.isEmpty(appId)) {
return null;
}
for (HospConfigEnum item : HospConfigEnum.values()) {
if (!ObjectUtils.isEmpty(item.ALI_APP_ID) && item.ALI_APP_ID.equals(appId)) {
return item;
}
}
return null;
}
}

@ -0,0 +1,35 @@
package com.ynxbd.wx.config;
import lombok.ToString;
@ToString
public enum WxEventEnum {
MSG_TYPE_TEXT("text", "文本消息"),
MSG_TYPE_IMAGE("image", "图片消息"),
MSG_TYPE_VOICE("voice", "语音消息"),
MSG_TYPE_VIDEO("video", "视频消息"),
MSG_TYPE_SHORT_VIDEO("shortvideo", "小视频消息"),
MSG_TYPE_LOCATION("location", "地理位置消息"),
MSG_TYPE_LINK("link", "链接消息"),
//
MSG_TYPE_EVENT("event", "事件消息"),
// ----------------------------------------------------
EVENT_SUBSCRIBE("subscribe", "订阅/关注"),
EVENT_UNSUB("unsubscribe", "取消订阅/取消关注"),
EVENT_CLICK("CLICK", "点击菜单拉取消息时的事件推送"),
EVENT_VIEW("VIEW", "点击菜单跳转链接时的事件推送"),
EVENT_LOCATION("LOCATION", "上报地理位置事件"),
//
EVENT_SCAN("SCAN", "关注时的事件推送"),
;
public final String CODE;
public final String NAME;
WxEventEnum(String CODE, String NAME) {
this.CODE = CODE;
this.NAME = NAME;
}
}

@ -2,11 +2,13 @@ package com.ynxbd.wx.servlet;
import com.ynxbd.common.result.Result;
import com.ynxbd.wx.config.WeChatConfig;
import com.ynxbd.wx.config.WxEventEnum;
import com.ynxbd.wx.wxfactory.bean.event.WxEvent;
import com.ynxbd.wx.wxfactory.utils.WxEventHelper;
import com.ynxbd.wx.wxfactory.utils.WxPassiveReplyHelper;
import com.ynxbd.wx.wxfactory.utils.WxSignHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
@ -51,55 +53,21 @@ public class WxServlet extends HttpServlet {
String msgId = wxEvent.getMsgId();
//点击菜单不需要往下操作,直接返回
if (msgId == null&&wxEvent.getEvent()==WxPassiveReplyHelper.EVENT_VIEW) {
// 点击菜单不需要往下操作,直接返回
if (ObjectUtils.isEmpty(msgId) && WxEventEnum.EVENT_VIEW.CODE.equals(wxEvent.getEvent())) {
Result.respStr(response, WxPassiveReplyHelper.SUCCESS);
return;
}
String toUserName = wxEvent.getToUserName();
String fromUserName = wxEvent.getFromUserName();
String key = fromUserName + "_" + toUserName + "_" + msgId + "_" + wxEvent.getCreateTime();
if (WxPassiveReplyHelper.isRepeat(key)) {
Result.respStr(response, WxPassiveReplyHelper.SUCCESS);
return;
}
String eventKey = wxEvent.getEventKey();
String event = wxEvent.getEvent();
String msgType = wxEvent.getMsgType();
String content = wxEvent.getContent();
content = content == null ? null : content.trim().toUpperCase();
WxPassiveReplyHelper.textCommon(response, content, msgType, fromUserName, toUserName);
switch (WeChatConfig.APP_ID) {
case "wx18b15dc67fc96f89":
WxPassiveReplyHelper.华坪县人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event);
break;
case "wx1e30610a28d189a8":
WxPassiveReplyHelper.巍山县人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event);
break;
case "wxca97aaeb3c40c0d0":
WxPassiveReplyHelper.芒市人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event);
break;
case "wxd503671f502bd89d":
WxPassiveReplyHelper.红河州第一人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event);
break;
case "wx1f1e9d29f9b44c36":
WxPassiveReplyHelper.玉龙县人民医院(response, content, msgType, fromUserName, toUserName, eventKey, event);
break;
case "wx8e7ce6f6e83eb156":
WxPassiveReplyHelper.德宏州妇幼保健院(response, content, msgType, fromUserName, toUserName, eventKey, event);
break;
case "wx90e7fe556d089e66":
WxPassiveReplyHelper.蒙自市妇幼保健院(response, content, msgType, fromUserName, toUserName, eventKey, event);
break;
default:
break;
}
WxPassiveReplyHelper.hospReply(response, wxEvent, msgId, fromUserName, toUserName);
Result.respStr(response, WxPassiveReplyHelper.SUCCESS);
}

@ -1,7 +1,10 @@
package com.ynxbd.wx.wxfactory.utils;
import com.ynxbd.common.helper.common.ErrorHelper;
import com.ynxbd.wx.config.HospConfigEnum;
import com.ynxbd.wx.config.WeChatConfig;
import com.ynxbd.wx.config.WxEventEnum;
import com.ynxbd.wx.wxfactory.bean.event.WxEvent;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import weixin.popular.bean.xmlmessage.XMLImageMessage;
@ -21,25 +24,10 @@ import java.util.List;
*/
@Slf4j
public class WxPassiveReplyHelper {
public static final String MSG_TYPE_TEXT = "text";
public static final String MSG_TYPE_IMAGE = "image";
public static final String MSG_TYPE_VOICE = "voice";
public static final String MSG_TYPE_VIDEO = "video";
public static final String MSG_TYPE_LINK = "link";
public static final String MSG_TYPE_LOCATION = "location";
public static final String MSG_TYPE_EVENT = "event";
// 订阅
public static final String EVENT_SUBSCRIBE = "subscribe";
// 取消订阅
public static final String EVENT_UNSUB = "unsubscribe";
public static final String EVENT_CLICK = "CLICK";
public static final String EVENT_VIEW = "VIEW";
// 重复通知过滤
private static ExpireKey EXPIRE_KEY;
final public static String SUCCESS = "success";
public static final String SUCCESS = "success";
private synchronized static void getExpireKey() {
if (EXPIRE_KEY == null) {
@ -62,10 +50,73 @@ public class WxPassiveReplyHelper {
}
/**
* 文字匹配
* 关注
*
* @param response
* @param content
* @param msgType
* @param fromUserName
* @param toUserName
* @return
*/
public static boolean subscribeCommon(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String event) {
log.info("event={}", event);
if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) {
String webUrl = WeChatConfig.getWebUrl();
return createLinkMsg(response, fromUserName, toUserName, "清廉承诺", msgType, content,
(webUrl + "wx-subscribe.html"),
(webUrl + "images/message/subscribe.png"));
}
return false;
}
public static OutputStream getOutputStream(HttpServletResponse response) {
try {
return response.getOutputStream();
} catch (Exception e) {
ErrorHelper.println(e);
}
return null;
}
/**
* 信息回复
*
* @param response
* @param fromUserName
* @param toUserName
* @param title
* @param msgType
* @param userText
* @param link
* @param imageUrl
* @return
*/
public static boolean createLinkMsg(HttpServletResponse response, String fromUserName, String toUserName, String title, String msgType, String userText, String link, String imageUrl) {
if (!WxEventEnum.MSG_TYPE_TEXT.CODE.equals(msgType)) { // 消息类型不为文本
return false;
}
if (ObjectUtils.isEmpty(userText)) { // 不存在
return false;
}
List<XMLNewsMessage.Article> articleList = new ArrayList<>();
XMLNewsMessage.Article article;
article = new XMLNewsMessage.Article();
article.setTitle(title);
article.setUrl(link);
article.setPicurl(imageUrl);
articleList.add(article);
XMLNewsMessage xmlNewsMessage = new XMLNewsMessage(fromUserName, toUserName, articleList);
xmlNewsMessage.outputStreamWrite(getOutputStream(response));
return true;
}
/**
* 文字匹配
*/
public static boolean textCommon(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName) {
String webUrl = WeChatConfig.getWebUrl();
@ -105,42 +156,80 @@ public class WxPassiveReplyHelper {
return false;
}
/**
* 关注
*
* @param response
* @param content
* @param msgType
* @param fromUserName
* @param toUserName
* @return
*/
public static boolean subscribeCommon(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String event) {
// 根据医院appId回复
public static Boolean hospReply(HttpServletResponse response, WxEvent wxEvent, String msgId, String fromUserName, String toUserName) {
String event = wxEvent.getEvent();
String eventKey = wxEvent.getEventKey();
String msgType = wxEvent.getMsgType();
String reqContent = wxEvent.getContent();
if (reqContent != null) {
reqContent = reqContent.trim().toUpperCase();
}
log.info("event={}", event);
if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) {
String webUrl = WeChatConfig.getWebUrl();
return createLinkMsg(response, fromUserName, toUserName, "清廉承诺", msgType, content,
(webUrl + "wx-subscribe.html"),
(webUrl + "images/message/subscribe.png"));
WxPassiveReplyHelper.textCommon(response, reqContent, msgType, fromUserName, toUserName);
HospConfigEnum hospConfigEnum = HospConfigEnum.findEnumByWxAppId();
if (hospConfigEnum == null) {
return false;
}
switch (hospConfigEnum) {
case 红河州第一人民医院:
return WxPassiveReplyHelper.红河州第一人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event);
case 蒙自市妇幼保健院:
return WxPassiveReplyHelper.蒙自市妇幼保健院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event);
case 德宏州妇幼保健院:
return WxPassiveReplyHelper.德宏州妇幼保健院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event);
case 武定忠爱医院:
return WxPassiveReplyHelper.武定忠爱医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event);
case 华坪县人民医院:
return WxPassiveReplyHelper.华坪县人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event);
case 巍山县人民医院:
return WxPassiveReplyHelper.巍山县人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event);
case 芒市人民医院:
return WxPassiveReplyHelper.芒市人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event);
case 玉龙县人民医院:
return WxPassiveReplyHelper.玉龙县人民医院(response, reqContent, msgType, fromUserName, toUserName, eventKey, event);
default:
break;
}
return false;
}
private static Boolean 武定忠爱医院(HttpServletResponse response, String reqContent, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) {
if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) {
String respInfo = "欢迎关注武定忠爱医院!" +
"\n\uD83D\uDD17 <a href='" + WeChatConfig.getWebUrl() + "reg-today.html" + "'>今日挂号</a>" +
"\n\uD83D\uDD17 <a href='" + WeChatConfig.getWebUrl() + "reg-reserve.html" + "'>预约挂号</a>";
XMLTextMessage msg = new XMLTextMessage(fromUserName, toUserName, respInfo);
msg.outputStreamWrite(getOutputStream(response));
}
}
return true;
}
public static void 芒市人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
public static boolean 芒市人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
List<XMLNewsMessage.Article> articleList = new ArrayList<>();
XMLNewsMessage.Article article;
if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) {
if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) {
if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) {
if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) {
article = new XMLNewsMessage.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");
articleList.add(article);
XMLNewsMessage xmlNewsMessage = new XMLNewsMessage(fromUserName, toUserName, articleList);
xmlNewsMessage.outputStreamWrite(getOut(response));
xmlNewsMessage.outputStreamWrite(getOutputStream(response));
}
}
@ -224,11 +313,12 @@ public class WxPassiveReplyHelper {
"外一科(普外):2133720";
}
XMLTextMessage msg = new XMLTextMessage(fromUserName, toUserName, respInfo);
msg.outputStreamWrite(getOut(response));
msg.outputStreamWrite(getOutputStream(response));
}
return true;
}
public static void 华坪县人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
public static boolean 华坪县人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
List<XMLNewsMessage.Article> articleList = new ArrayList<>();
XMLNewsMessage.Article article;
@ -252,7 +342,7 @@ public class WxPassiveReplyHelper {
}
}
if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) {
if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) {
if (eventKey.equals("MYDDC")) {
article = new XMLNewsMessage.Article();
article.setTitle("华坪县人民医院患者满意度调查");
@ -272,7 +362,7 @@ public class WxPassiveReplyHelper {
article.setPicurl("https://mmbiz.qpic.cn/mmbiz_jpg/0jg8QrIOHOzYGDMbzzyKicXD9QlRA5MdmpF19PW1oFibvCDj60twgfGC556fY3wThlAhIYJsHykiaDIU8h3Igh8Dw/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1");
articleList.add(article);
if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) {
if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) {
article = new XMLNewsMessage.Article();
article.setTitle("微信支付使用流程!");
article.setPicurl("http://mmbiz.qpic.cn/mmbiz/0jg8QrIOHOydg7liaUzXoa7otFCiavYozxARcpnrxt5ibQ7Y8BewUOtKJPWRUATkaskjvHeeqmicDbovRwZic7BTSng/0?wx_fmt=jpeg");
@ -284,15 +374,16 @@ public class WxPassiveReplyHelper {
}
XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, articleList);
msg.outputStreamWrite(getOut(response));
msg.outputStreamWrite(getOutputStream(response));
return true;
}
public static void 巍山县人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
public static boolean 巍山县人民医院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
List<XMLNewsMessage.Article> articleList = new ArrayList<>();
XMLNewsMessage.Article article;
if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) {
if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) {
// 满意度
if (eventKey.equals("MYDDC")) {
article = new XMLNewsMessage.Article();
@ -303,7 +394,7 @@ public class WxPassiveReplyHelper {
}
// 关注
if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) {
if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) {
article = new XMLNewsMessage.Article();
article.setTitle("微信预约挂号开通喽,大家快快用起来!");
article.setUrl("http://mp.weixin.qq.com/s/gl_NitQTP6_ZzoV8pwxOcw");
@ -313,7 +404,8 @@ public class WxPassiveReplyHelper {
}
XMLNewsMessage msg = new XMLNewsMessage(fromUserName, toUserName, articleList);
msg.outputStreamWrite(getOut(response));
msg.outputStreamWrite(getOutputStream(response));
return true;
}
@ -339,7 +431,7 @@ public class WxPassiveReplyHelper {
String respInfo;
if (content.contains("核酸")) {
respInfo = " 您好,玉龙县人民医院自助核酸检测需要点击微信挂号—自助核算检测进行具体操作。核酸检测报告电子版可在云南健康码查询," +
"纸质版可到门诊楼一楼自助打印,如标本检测有异常的,报告出具时间将延迟,如到时间后未查询到结果或有其他疑问可拨打0888-5180762进行咨询。" ;
"纸质版可到门诊楼一楼自助打印,如标本检测有异常的,报告出具时间将延迟,如到时间后未查询到结果或有其他疑问可拨打0888-5180762进行咨询。";
} else if (content.contains("投诉")) {
respInfo = "您好,您可以拨打投诉电话:0888-5112778或行政值班电话:0888-5115602进行投诉";
@ -399,76 +491,36 @@ public class WxPassiveReplyHelper {
return false;
}
XMLTextMessage msg = new XMLTextMessage(fromUserName, toUserName, respInfo);
msg.outputStreamWrite(getOut(response));
msg.outputStreamWrite(getOutputStream(response));
return true;
}
public static void 德宏州妇幼保健院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) {
if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) {
String respInfo ="您好!欢迎关注德宏州妇幼保健院!如有疑问请拨打 24小时值班电话:15368666599";
public static boolean 德宏州妇幼保健院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) {
if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) {
String respInfo = "您好!欢迎关注德宏州妇幼保健院!如有疑问请拨打 24小时值班电话:15368666599";
XMLTextMessage msg = new XMLTextMessage(fromUserName, toUserName, respInfo);
msg.outputStreamWrite(getOut(response));
msg.outputStreamWrite(getOutputStream(response));
}
}
return true;
}
public static void 蒙自市妇幼保健院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event){
public static boolean 蒙自市妇幼保健院(HttpServletResponse response, String content, String msgType, String fromUserName, String toUserName, String eventKey, String event) {
String mediaId = "iJoe834_vhMOnlrUUCQF5jyeRvOTJ0sF-ly_vZrsGzPqEFY0kvdzr_p410e-lG0K"; //医院科室对应电话列表图片
if (WxPassiveReplyHelper.MSG_TYPE_EVENT.equals(msgType)) {
if (WxPassiveReplyHelper.EVENT_SUBSCRIBE.equals(event)) {
XMLImageMessage imageMessage = new XMLImageMessage(fromUserName,toUserName, mediaId);
imageMessage.outputStreamWrite(getOut(response));
if (WxEventEnum.MSG_TYPE_EVENT.CODE.equals(msgType)) {
if (WxEventEnum.EVENT_SUBSCRIBE.CODE.equals(event)) {
XMLImageMessage imageMessage = new XMLImageMessage(fromUserName, toUserName, mediaId);
imageMessage.outputStreamWrite(getOutputStream(response));
}
}
if(content==null){
return;
}
XMLImageMessage imageMessage = new XMLImageMessage(fromUserName,toUserName,mediaId);
imageMessage.outputStreamWrite(getOut(response));
}
public static OutputStream getOut(HttpServletResponse response) {
try {
return response.getOutputStream();
} catch (Exception e) {
ErrorHelper.println(e);
}
return null;
}
/**
* 信息回复
*
* @param response
* @param fromUserName
* @param toUserName
* @param title
* @param msgType
* @param userText
* @param link
* @param imageUrl
* @return
*/
public static boolean createLinkMsg(HttpServletResponse response, String fromUserName, String toUserName, String title, String msgType, String userText, String link, String imageUrl) {
if (!MSG_TYPE_TEXT.equals(msgType)) { // 消息类型不为文本
return false;
}
if (ObjectUtils.isEmpty(userText)) { // 不存在
if (content == null) {
return false;
}
List<XMLNewsMessage.Article> articleList = new ArrayList<>();
XMLNewsMessage.Article article;
article = new XMLNewsMessage.Article();
article.setTitle(title);
article.setUrl(link);
article.setPicurl(imageUrl);
articleList.add(article);
XMLNewsMessage xmlNewsMessage = new XMLNewsMessage(fromUserName, toUserName, articleList);
xmlNewsMessage.outputStreamWrite(getOut(response));
XMLImageMessage imageMessage = new XMLImageMessage(fromUserName, toUserName, mediaId);
imageMessage.outputStreamWrite(getOutputStream(response));
return true;
}
}

Loading…
Cancel
Save