一、消息格式
1 <xml> 2 <ToUserName> 3 < ![CDATA[toUser] ]> 4 </ToUserName> 5 <FromUserName> 6 < ![CDATA[fromUser] ]> 7 </FromUserName> 8 <CreateTime>12345678</CreateTime> 9 <MsgType> 10 < ![CDATA[music] ]> 11 </MsgType> 12 <Music> 13 <Title> 14 < ![CDATA[TITLE] ]> 15 </Title> 16 <Description> 17 < ![CDATA[DESCRIPTION] ]> 18 </Description> 19 <MusicUrl> 20 < ![CDATA[MUSIC_Url] ]> 21 </MusicUrl> 22 <HQMusicUrl> 23 < ![CDATA[HQ_MUSIC_Url] ]> 24 </HQMusicUrl> 25 <ThumbMediaId> 26 < ![CDATA[media_id] ]> 27 </ThumbMediaId> 28 </Music> 29 </xml>
二、参数描述
参数 | 是否必须 | 说明 |
---|---|---|
ToUserName | 是 | 接收方帐号(收到的OpenID) |
FromUserName | 是 | 开发者微信号 |
CreateTime | 是 | 消息创建时间 (整型) |
MsgType | 是 | music |
Title | 否 | 音乐标题 |
Description | 否 | 音乐描述 |
MusicURL | 否 | 音乐链接 |
HQMusicUrl | 否 | 高质量音乐链接,WIFI环境优先使用该链接播放音乐 |
ThumbMediaId | 是 | 缩略图的媒体id,通过素材管理中的接口上传多媒体文件,得到的id |
三、音乐消息实体
1 package com.weixin.entity; 2 /** 3 * 音乐消息内容实体 4 * @author 付 5 * @date 2018年1月29日 下午2:15:39 6 * @TODO TODO 7 */ 8 public class Music { 9 10 private String Title;//音乐标题 11 private String Description;//音乐描述 12 private String MusicUrl;//音乐链接 13 private String HQMusicUrl;//高质量音乐链接,WIFI环境优先使用该链接播放音乐 14 private String ThumbMediaId;//缩略图的媒体id,通过素材管理中的接口上传多媒体文件,得到的id 15 public String getTitle() { 16 return Title; 17 } 18 public void setTitle(String title) { 19 Title = title; 20 } 21 public String getDescription() { 22 return Description; 23 } 24 public void setDescription(String description) { 25 Description = description; 26 } 27 28 public String getMusicUrl() { 29 return MusicUrl; 30 } 31 public void setMusicUrl(String musicUrl) { 32 MusicUrl = musicUrl; 33 } 34 public String getHQMusicUrl() { 35 return HQMusicUrl; 36 } 37 public void setHQMusicUrl(String hQMusicUrl) { 38 HQMusicUrl = hQMusicUrl; 39 } 40 public String getThumbMediaId() { 41 return ThumbMediaId; 42 } 43 public void setThumbMediaId(String thumbMediaId) { 44 ThumbMediaId = thumbMediaId; 45 } 46 @Override 47 public String toString() { 48 return "Music [Title=" + Title + ", Description=" + Description 49 + ", MusicUrl=" + MusicUrl + ", HQMusicUrl=" + HQMusicUrl 50 + ", ThumbMediaId=" + ThumbMediaId + "]"; 51 } 52 53 }
1 package com.weixin.entity; 2 3 public class MusicMessage extends BaseMessge{ 4 private Music Music; 5 public Music getMusic() { 6 return Music; 7 } 8 public void setMusic(Music music) { 9 Music = music; 10 } 11 @Override 12 public String toString() { 13 return "MusicMessage [Music=" + Music + "]"; 14 } 15 }
四、添加将 音乐消息转换为xml方法
1 /** 2 * 将音乐信息转换为xml 3 * @param musicMessage 4 * @return 5 */ 6 public static String musicMessageToXml(MusicMessage musicMessage){ 7 //XStream xStream = new XStream(new StaxDriver()); 8 xStream.alias("xml", musicMessage.getClass()); 9 return xStream.toXML(musicMessage); 10 }
五、添加初始化音乐消息代码
1 /** 2 * 初始化音乐信息 3 * @param toUserName 4 * @param fromUserName 5 * @return 6 */ 7 public static String initMusicMessage(String toUserName,String fromUserName){ 8 String message = ""; 9 String access_token = WeixinUtil.getAccessToken().getToken(); 10 String path = "E:/cxy.jpg"; 11 try{ 12 Music music = new Music(); 13 String mediaId = WeixinUtil.upload(path, access_token, "thumb"); 14 music.setTitle("好听的Music"); 15 music.setDescription("感觉非常哇塞的歌曲了。。"); 16 music.setMusicUrl("http://0536123456.free.ngrok.cc/WeiXin/music/music.mp3"); 17 music.setHQMusicUrl("http://0536123456.free.ngrok.cc/WeiXin/music/music.mp3"); 18 music.setThumbMediaId(mediaId); 19 20 MusicMessage musicMessage = new MusicMessage(); 21 musicMessage.setToUserName(fromUserName); 22 musicMessage.setFromUserName(toUserName); 23 musicMessage.setMsgType(MsgTypeParam.MESSAGE_MUSIC); 24 musicMessage.setCreateTime(new Date().getTime()+""); 25 musicMessage.setMusic(music); 26 message = MessageUtil.musicMessageToXml(musicMessage); 27 System.err.println(message); 28 }catch(Exception e){ 29 e.printStackTrace(); 30 } 31 return message; 32 }
六、修改Servlet中的Post方法,加入如下代码:
1 if("音乐".equals(content)){ 2 //调用初始化图片消息的方法 3 message = InitMsgContentUtil.initMusicMessage(toUserName, fromUserName); 4 }
七、项目部署及查看结果
向公众号发送信息,看是否能够正常返回信息。效果图如下: