MsgHandler.java
3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package org.theyeasy.weixin.handler;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.theyeasy.weixin.builder.TextBuilder;
import org.theyeasy.weixin.service.WxOpenMpService;
import org.theyeasy.weixin.service.WxOpenService;
import com.w1hd.zzhnc.util.CommonUtil;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
/**
*
* @author Binary Wang
*
*/
@Component
public class MsgHandler extends AbstractHandler {
private final static Logger log = LoggerFactory.getLogger(SubscribeHandler.class);
@Autowired
WxOpenService wxOpenService;
@Override
public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
Map<String, Object> context, WxMpService wxMpService,
WxSessionManager sessionManager) {
String appid = wxMpService.getWxMpConfigStorage().getAppId();
if (!wxMessage.getMsgType().equals(WxConsts.XML_MSG_EVENT)) {
//TODO 可以选择将消息保存到本地
}
if(wxMessage.getContent()!=null&&wxMessage.getContent().indexOf("QUERY_AUTH_CODE:")!=-1){//全网发布测试代码
String QUERY_AUTH_CODE= wxMessage.getContent().replace("QUERY_AUTH_CODE:", "");
log.info("进入关键字回复");
try {
String Access_token= wxOpenService.getApiGetAuthorizerInfo(QUERY_AUTH_CODE, 1);
log.info("Access_token=" + Access_token);
QUERY_AUTH_CODE+="_from_api";
String strJson = "{\"touser\" :\""+wxMessage.getFromUser()+"\",";
strJson += "\"msgtype\":\"text\",";
strJson += "\"text\":{";
strJson += "\"content\":\""+QUERY_AUTH_CODE+"\"";
strJson += "}}";
String url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?&body=0&access_token=" + Access_token;
log.info("url=" + url);
log.info("strJson=" + strJson);
CommonUtil.sendPost(url, strJson);
log.info("CommonUtil.sendPost(url, strJson)之后");
} catch (WxErrorException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return null;
}else{
//关键字回复
if(wxMessage.getContent()!=null&&wxMessage.getContent().equals("TESTCOMPONENT_MSG_TYPE_TEXT")){//全网发布测试代码
//TODO 组装回复消息
WxMpXmlOutMessage msg=new TextBuilder().build("TESTCOMPONENT_MSG_TYPE_TEXT_callback", wxMessage, wxMpService);
log.info(msg.toString());
return new TextBuilder().build("TESTCOMPONENT_MSG_TYPE_TEXT_callback", wxMessage, wxMpService);
}else{
if(wxMessage.getContent()!=null&&wxMessage.getContent().equals("测试"))
{
return new TextBuilder().build("收到...", wxMessage, wxMpService);
}
// autoreplyService.keywordReply(appid, wxMessage.getContent(),wxMessage.getFromUser());
return null;
}
}
}
}