<!--json轉爲對象包--> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.3</version> </dependency> <!--解析xml--> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> </dependency> <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.10</version> </dependency>
public class BaseMessage { protected String ToUserName; protected String FromUserName; protected long CreateTime; protected String MsgType; private Voice Voice; public Voice getVoice() { return Voice; } public void setVoice(Voice voice) { Voice = voice; } public BaseMessage() { super(); } public String getToUserName() { return ToUserName; } public void setToUserName(String toUserName) { ToUserName = toUserName; } public String getFromUserName() { return FromUserName; } public void setFromUserName(String fromUserName) { FromUserName = fromUserName; } public long getCreateTime() { return CreateTime; } public void setCreateTime(long createTime) { CreateTime = createTime; } public String getMsgType() { return MsgType; } public void setMsgType(String msgType) { MsgType = msgType; } }
public class MessageText extends BaseMessage { private String Content;// 文本消息內容 private String MsgId;// 消息id,64位整型 public MessageText() { } public MessageText(String toUserName, String fromUserName, long createTime, String msgType, String content, String msgId) { super(); ToUserName = toUserName; FromUserName = fromUserName; CreateTime = createTime; MsgType = msgType; Content = content; MsgId = msgId; } public String getContent() { return Content; } public void setContent(String content) { Content = content; } public String getMsgId() { return MsgId; } public void setMsgId(String msgId) { MsgId = msgId; } }
public class Voice extends BaseMessage{ private String MediaId; public Voice(){} public Voice(String toUserName, String fromUserName, long createTime, String msgType, String mediaId) { super(); ToUserName = toUserName; FromUserName = fromUserName; CreateTime = createTime; MsgType = msgType; MediaId = mediaId; } public String getMediaId() { return MediaId; } public void setMediaId(String mediaId) { MediaId = mediaId; } }
import com.thoughtworks.xstream.XStream; import java.util.Date; public class TextMessageUtil { /** * 將發送消息封裝成對應的xml格式 */ public String messageToxml(BaseMessage message) { XStream xstream = new XStream(); xstream.alias("xml", message.getClass()); return xstream.toXML(message); } /** * 封裝文本發送消息對象,封裝時,須要將調換髮送者和接收者的關係 * @param FromUserName * @param ToUserName */ public String initMessage(String FromUserName, String ToUserName,String content) { MessageText text = new MessageText(); text.setToUserName(FromUserName); text.setFromUserName(ToUserName); text.setContent(content); text.setCreateTime(new Date().getTime()); text.setMsgType("text"); return this.messageToxml(text); } /** * 封裝音樂發送消息對象,封裝時,須要將調換髮送者和接收者的關係 * @param FromUserName * @param ToUserName */ public String musicMessage(String FromUserName, String ToUserName,String mediaId) { BaseMessage text = new BaseMessage(); text.setToUserName(FromUserName); text.setFromUserName(ToUserName); text.setCreateTime(new Date().getTime()); text.setMsgType("voice"); this.messageToxml(text); Voice music=new Voice(); music.setMediaId(mediaId); text.setVoice(music); return this.messageToxml(text); } }
@PostMapping("checkToken") public void selectMenu(HttpServletRequest request, HttpServletResponse response){ response.setCharacterEncoding("UTF-8"); PrintWriter out = null; //將微信請求xml轉爲map格式,獲取所需的參數 Map<String,String> map = MessageUtil.xmlToMap(request); String ToUserName = map.get("ToUserName"); String FromUserName = map.get("FromUserName"); String MsgType = map.get("MsgType"); String Content = map.get("Content"); System.out.println(ToUserName); System.out.println(FromUserName); System.out.println(MsgType); System.out.println(Content); String message = null; //處理文本類型,實現輸入1,回覆相應的封裝的內容 if("text".equals(MsgType)){ TextMessageUtil textMessage = new TextMessageUtil(); if("我愛你".equals(Content)){ message = textMessage.musicMessage(FromUserName, ToUserName,「這裏填寫你上傳語音文件時返回的media_id」); System.out.println(message); }else{ message = textMessage.initMessage(FromUserName, ToUserName,"我是你爸爸,給我好好說話,說的什麼亂七八糟的我聽不懂"); System.out.println(message); } } try { out = response.getWriter(); out.write(message); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } out.close(); }