1. 程式人生 > >微信公眾號開發整理(六)--自定義選單事件推送

微信公眾號開發整理(六)--自定義選單事件推送

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPost");
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
try {
Map<String, String> map = MessageUtil.xmlToMap(req);
String toUserName = map.get("ToUserName");
String fromUserName = map.get("FromUserName");
String msgType = map.get("MsgType");
String content = map.get("Content");
String message = null;
if (MessageUtil.MESSAGE_TEXT.equals(msgType)) {
if ("1".equals(content)) {
message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.firstMenu());
} else if ("2".equals(content)) {
message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.menuText());
}else if ("3".equals(content)) {
message = MessageUtil.initNewsMessage(toUserName, fromUserName);
}else if("4".equals(content)){
message = MessageUtil.initImageMessage(toUserName, fromUserName);
}else if("5".equals(content)){
message = MessageUtil.initMusicMessage(toUserName, fromUserName);
}else if ("?".equals(content) || "?".equals(content)) {
message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.menuText());
} else {
message = "";
}
// 新增關注公眾號推送事件
} else if (MessageUtil.MESSAGE_EVENT.equals(msgType)) {
// 判斷訊息推送事件
String eventType = map.get("Event");
//被關注事件
if (MessageUtil.MESSAGE_SUBSCRIBE.equals(eventType)) {
message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.menuText());
//點選選單推送事件(這裡點選選單我們實現讓他回覆選單)
}else if(MessageUtil.MESSAGE_CLICK.equals(eventType)){
message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.menuText());
//VIEW選單推送事件(這裡點選選單我們實現讓他回覆EventKey)
}else if(MessageUtil.MESSAGE_VIEW.equals(eventType)){
String url = map.get("EventKey");
message = MessageUtil.initText(toUserName, fromUserName, url);
//掃碼選單事件的回覆
}else if(MessageUtil.MESSAGE_SCANCODE.equals(eventType)){
String key = map.get("EventKey");
message = MessageUtil.initText(toUserName, fromUserName, key);
}
//地理位置選單事件的回覆
}else if(MessageUtil.MESSAGE_LOCATION.equals(msgType)){
String Label = map.get("Label");
message = MessageUtil.initText(toUserName, fromUserName, Label);
}

out.print(message);
} catch (DocumentException e) {
e.printStackTrace();
} finally {
out.close();
}
}