package com.wuage.wechat.service;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Calendar;
import org.jdom.JDOMException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.alibaba.cb.api.common.utils.common.lang.StringUtils;
import com.wuage.wechat.common.WechatUtil;
import com.wuage.wechat.common.redis.RedisOpreate;
import com.wuage.wechat.entity.ReceiveXmlEntity;
/**
* 类WechatProccess.java的实现描述:TODO 类实现描述
*
* @author wangpeng 2016年9月12日 下午5:33:38
*/
@Component
public class WechatProcess {
private Logger logger = LoggerFactory.getLogger(WechatProcess.class);
@Autowired
private EventProcess eventProcess;
@Autowired
private RedisOpreate redisOpreate;
public String process(String xml) {
ReceiveXmlEntity rx = null;
try {
if (StringUtils.isNotBlank(xml)) {
rx = JdomXmlProcess.parseXml(xml);
}
} catch (JDOMException e) {
logger.error("dom parsing exception:{}", xml);
} catch (IOException e) {
logger.error("io exception:{}", xml);
}
if (rx != null) {
if ("text".equals(rx.getMsgType())) {
String value = redisOpreate.getKeywordReply(WechatUtil.REDIS_KEYWORD, rx.getContent());
if (StringUtils.isBlank(value)) {
rx.setContent(WechatUtil.FIXED_REPLY_MESSAGE);
} else {
rx.setContent(value);
}
String message = replyMsg(rx);
return message;
} else if ("event".equals(rx.getMsgType())) {
try {
logger.info("开始执行方法:" + rx.getEvent().toLowerCase());
Method m = eventProcess.getClass().getMethod(rx.getEvent().toLowerCase(), ReceiveXmlEntity.class);
m.invoke(eventProcess, rx);
} catch (NoSuchMethodException e) {
logger.error("no such method exception method name is :{}", rx.getEvent().toLowerCase());
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
return "success";
}
private String replyMsg(ReceiveXmlEntity rx) {
StringBuilder xml = new StringBuilder();
xml.append("
");
xml.append("
");
xml.append("
");
xml.append("
" + Calendar.getInstance().getTimeInMillis() / 1000 + "
");
xml.append("
");
xml.append("
");
xml.append("
");
return xml.toString();
}
}
接收微信的推送
最新推荐文章于 2021-07-31 06:15:49 发布