zoukankan      html  css  js  c++  java
  • 微信开发之消息回复--音乐消息(六)

    一、消息格式

     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 }

    七、项目部署及查看结果  

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

  • 相关阅读:
    redis连接客户端
    map中使用的细节问题(不同key循坏中被后面的值替换)
    使用异步开启新的线程Spring异步方法注解@Async
    npm init 出现一堆提问(npm init -y)
    小程序的时间日期选择器
    小程序--分类项目跳转页面(同样也适用轮播图跳转)
    小程序样式不管用,解决方法button:not([size='mini']) { width: 184px; margin-left: auto; margin-right: auto; }
    vue-elementui的时间日期选择器( value-format="yyyy-MM-dd HH:mm:ss"),以及时间解析{y}-{m}-{d} {h}:{i}:{s}
    vue.config.js配置详细说明(逐条解释)
    element在el-table-column中如何使用过滤器
  • 原文地址:https://www.cnblogs.com/jilongfu/p/8377173.html
Copyright © 2011-2022 走看看