微信开发之消息回复--音乐消息(六)

一、消息格式

 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 }

七、项目部署及查看结果  

  向公众号发送信息,看是否能够正常返回信息。效果图如下:

原文地址:https://www.cnblogs.com/jilongfu/p/8377173.html