SubscribeHandler.java
2.9 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
98
99
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.service.impl.ScanCodeServiceImpl;
import com.w1hd.zzhnc.util.CommonUtil;
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;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
/**
*
* @author Binary Wang
*
*/
@Component
public class SubscribeHandler extends AbstractHandler {
private final static Logger log = LoggerFactory.getLogger(SubscribeHandler.class);
@Autowired
private ScanCodeServiceImpl ScancodeService;
@Override
public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService,
WxSessionManager sessionManager) throws WxErrorException {
this.logger.info("新关注用户 OPENID: " + wxMessage.getFromUser());
// 获取微信用户基本信息
WxMpUser userWxInfo = wxMpService.getUserService().userInfo(wxMessage.getFromUser(), null);
String appid = wxMpService.getWxMpConfigStorage().getAppId();
if (userWxInfo != null) {
// TODO 可以添加关注用户到本地
}
WxMpXmlOutMessage responseResult = null;
try {
responseResult = handleSpecial(wxMessage,userWxInfo,appid);
} catch (Exception e) {
this.logger.error(e.getMessage(), e);
}
if (responseResult != null) {
return responseResult;
}
return null;
}
/**
* 处理特殊请求,比如如果是扫码进来的,可以做相应处理
*/
/*
* lqq
* 2017/7/25
*
*/
protected WxMpXmlOutMessage handleSpecial(WxMpXmlMessage wxMessage,WxMpUser userWxInfo,String appid) throws Exception {
log.info("进入关注");
if(wxMessage!=null){
String eventKey = wxMessage.getEventKey();
log.info("eventKey="+eventKey);
int qrcodeId = 0;
// if(!StringUtil.isEmpty(eventKey)){
// if (eventKey.startsWith("qrscene_")){
// //判断是否是临时二维码
// String qrsceneCode=eventKey.replace("qrscene_", "");
// log.info("qrsceneCode="+qrsceneCode);
// qrcodeId = MathUtil.toInt(qrsceneCode,0);
// }
// }
log.info("qrcodeId="+qrcodeId);
log.info("fromuser="+wxMessage.getFromUser());
log.info("appid="+appid);
String json = CommonUtil.getJson(userWxInfo);
log.info("wxinfo="+json);
//String changjing=String.valueOf(qrcodeId);
ScancodeService.scancode( wxMessage, userWxInfo, appid, qrcodeId);
log.info("执行关键字回复");
// System.out.println(focusReplyService.FocusReply(appid, userWxInfo.getOpenId()));
}
return null;
}
}