Java微信公眾平台開發(四)–回復消息的分類及實體的創建

  • 2019 年 10 月 5 日
  • 筆記

前面有說道對接收到微信伺服器消息後對消息的分類,當時主要分為普通消息和事件消息,這裡我們要講述的是我們在給用戶回復的消息類型,在這裡也可以大致分為兩類:一種為不需要上傳資源到微信伺服器的這裡成為【普通消息回復】;還有一種需要上傳資源到微信伺服器的這裡稱為【多媒體消息回復】!

  • 普通消息回復:回復文本消息/回復圖文消息
  • 多媒體消息回復:回復圖片消息/回復語音消息/回復影片消息/回複音樂消息

(一)回復消息基類的實現

 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:42:43   5 * @description :   6 */   7 public class BaseMessage {   8     // 接收方帳號(收到的OpenID)   9     private String ToUserName;  10     // 開發者微訊號  11     private String FromUserName;  12     // 消息創建時間 (整型)  13     private long CreateTime;  14     // 消息類型(text/music/news)  15     private String MsgType;  16  17  18     public String getToUserName() {  19         return ToUserName;  20     }  21  22     public void setToUserName(String toUserName) {  23         ToUserName = toUserName;  24     }  25  26     public String getFromUserName() {  27         return FromUserName;  28     }  29  30     public void setFromUserName(String fromUserName) {  31         FromUserName = fromUserName;  32     }  33  34     public long getCreateTime() {  35         return CreateTime;  36     }  37  38     public void setCreateTime(long createTime) {  39         CreateTime = createTime;  40     }  41  42     public String getMsgType() {  43         return MsgType;  44     }  45  46     public void setMsgType(String msgType) {  47         MsgType = msgType;  48     }  49 }

(二)普通消息回復實體實現

①文本消息消息體

 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:47:49   5 * @description :   6 */   7 public class VoiceMessage {   8   9     private Voice Voice;  10  11     public Voice getVoice() {  12         return Voice;  13     }  14  15     public void setVoice(Voice voice) {  16         Voice = voice;  17     }  18  19  20  21  22 }

②圖文/多圖文消息實現

 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:43:36   5 * @description :   6 */   7 public class Article {   8     // 圖文消息名稱   9     private String Title;  10     // 圖文消息描述  11     private String Description;  12     // 圖片鏈接,支援JPG、PNG格式,較好的效果為大圖640*320,小圖80*80,  13     private String PicUrl;  14     // 點擊圖文消息跳轉鏈接  15     private String Url;  16  17     public String getTitle() {  18         return Title;  19     }  20  21     public void setTitle(String title) {  22         Title = title;  23     }  24  25     public String getDescription() {  26         return null == Description ? "" : Description;  27     }  28  29     public void setDescription(String description) {  30         Description = description;  31     }  32  33     public String getPicUrl() {  34         return null == PicUrl ? "" : PicUrl;  35     }  36  37     public void setPicUrl(String picUrl) {  38         PicUrl = picUrl;  39     }  40  41     public String getUrl() {  42         return null == Url ? "" : Url;  43     }  44  45     public void setUrl(String url) {  46         Url = url;  47     }  48  49 }
 1 package com.gede.wechat.response;   2   3 import java.util.List;   4   5 /**   6 * @author gede   7 * @version date:2019年5月23日 下午9:44:12   8 * @description :   9 */  10 public class NewsMessage extends BaseMessage {  11     // 圖文消息個數,限制為10條以內  12     private int ArticleCount;  13     // 多條圖文消息資訊,默認第一個item為大圖  14     private List<Article> Articles;  15  16     public int getArticleCount() {  17         return ArticleCount;  18     }  19  20     public void setArticleCount(int articleCount) {  21         ArticleCount = articleCount;  22     }  23  24     public List<Article> getArticles() {  25         return Articles;  26     }  27  28     public void setArticles(List<Article> articles) {  29         Articles = articles;  30     }  31 }

(三)多媒體消息回復消息體實現

①回復圖片消息實體

 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:45:16   5 * @description :   6 */   7 public class Image {   8   9     private String MediaId;  10  11     public String getMediaId() {  12         return MediaId;  13     }  14  15     public void setMediaId(String mediaId) {  16         MediaId = mediaId;  17     }  18  19 }
 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:45:39   5 * @description :   6 */   7 public class ImageMessage {   8   9     private Image Image;  10  11     public Image getImage() {  12         return Image;  13     }  14  15     public void setImage(Image image) {  16         Image = image;  17     }  18  19  20 }

②回複音樂消息實體

 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:46:08   5 * @description :   6 */   7 public class Music {   8     // 音樂名稱   9     private String Title;  10     // 音樂描述  11     private String Description;  12     // 音樂鏈接  13     private String MusicUrl;  14     // 高品質音樂鏈接,WIFI環境優先使用該鏈接播放音樂  15     private String HQMusicUrl;  16  17     private String ThumbMediaId; //縮略圖的媒體id  18  19     public String getThumbMediaId() {  20         return ThumbMediaId;  21     }  22  23     public void setThumbMediaId(String thumbMediaId) {  24         ThumbMediaId = thumbMediaId;  25     }  26  27     public String getTitle() {  28         return Title;  29     }  30  31     public void setTitle(String title) {  32         Title = title;  33     }  34  35     public String getDescription() {  36         return Description;  37     }  38  39     public void setDescription(String description) {  40         Description = description;  41     }  42  43     public String getMusicUrl() {  44         return MusicUrl;  45     }  46  47     public void setMusicUrl(String musicUrl) {  48         MusicUrl = musicUrl;  49     }  50  51     public String getHQMusicUrl() {  52         return HQMusicUrl;  53     }  54  55     public void setHQMusicUrl(String musicUrl) {  56         HQMusicUrl = musicUrl;  57     }  58  59 }
 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:46:28   5 * @description :   6 */   7 public class MusicMessage extends BaseMessage {   8     // 音樂   9     private Music Music;  10  11     public Music getMusic() {  12         return Music;  13     }  14  15     public void setMusic(Music music) {  16         Music = music;  17     }  18 }

③回復影片消息實體

 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:46:50   5 * @description :   6 */   7 public class Video {   8   9     private String MediaId;  10     private String Title;  11     private String Description;  12  13     public String getTitle() {  14         return Title;  15     }  16  17     public void setTitle(String title) {  18         Title = title;  19     }  20  21     public String getDescription() {  22         return Description;  23     }  24  25     public void setDescription(String description) {  26         Description = description;  27     }  28  29     public String getMediaId() {  30         return MediaId;  31     }  32  33     public void setMediaId(String mediaId) {  34         MediaId = mediaId;  35     }  36  37 }
 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:47:10   5 * @description :   6 */   7 public class VideoMessage {   8   9     private Video Video;  10  11     public Video getVideo() {  12         return Video;  13     }  14  15     public void setVideo(Video video) {  16         Video = video;  17     }  18  19  20 }

④回復語音消息實體

 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:47:27   5 * @description :   6 */   7 public class Voice {   8   9     private String MediaId;  10  11     public String getMediaId() {  12         return MediaId;  13     }  14  15     public void setMediaId(String mediaId) {  16         MediaId = mediaId;  17     }  18  19 }
 1 package com.gede.wechat.response;   2 /**   3 * @author gede   4 * @version date:2019年5月23日 下午9:47:49   5 * @description :   6 */   7 public class VoiceMessage {   8   9     private Voice Voice;  10  11     public Voice getVoice() {  12         return Voice;  13     }  14  15     public void setVoice(Voice voice) {  16         Voice = voice;  17     }  18  19  20  21  22 }

那麼到這裡回復消息類型的劃分和實體的具體實現程式碼就基本編寫完成了,在這些新增實體加入後我們項目的項目結構大致如下: