微信开发(一)---微信消息

一、前言
闲来有空,正好把这两年开发微信的东西拿出来抖抖。从零基础搭建一个微信开发基础框架。闲来搭建微信消息实体,包括接收的用户消息和回复用户消息两个基本实体。
在这里插入图片描述
二、参考/说明
主要需要参看微信公众平台开发者文档
网页地址:微信开发者文档
实体类中使用了lombok,所以省略了set ,get ,equal,hash以及ToString方法。
三、消息实体类
参看微信开发者文档消息管理中的第一栏,接收用户消息中分为文本消息、图片消息、语音消息,视频消息、链接消息等等吧,有一些共同属性,进行提取。包结构如下:
在这里插入图片描述
1)BaseEntity

package com.zlc.wechat.entity;

import lombok.Data;

import java.io.Serializable;

/**
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 16:34
 **/
@Data
public class BaseEntity implements Serializable {
    
    private static final long serialVersionUID = 1L;
    /**
     * 媒体Id,用于从微信素材接口调用
     */
    private long mediaId;
    
}

2)ArticleEntity

package com.zlc.wechat.entity;

import lombok.Data;

/**
 * 微信图文
 * @author :  追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 15:22
 **/
@Data
public class ArticleEntity extends BaseEntity{
    /**
     * 图文消息标题
     */
    private String title;
    /**
     * 图文消息描述
     */
    private String description;
    /**
     * 图片的链接
     * 支持JPG、PNG格式,较好的效果为大图640*320,小图80*80,限制图片链接的域名需要与开发者填写的基本资料中的Url一致
     */
    private String pictureUrl;
    /**
     * 点击图文消息后要跳转的url
     */
    private String url;

}

3)ImageEntity

package com.zlc.wechat.entity;

import lombok.Data;

/**
 * 微信图片
 * @author :  追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 15:22
 **/
@Data
public class ImageEntity extends BaseEntity{
	
	/**
	 * 图片链接(由系统生成)
	 */
	private String picUrl;
	
}

4)LinkEntity

package com.zlc.wechat.entity;

import lombok.Data;

/**
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/24 9:47
 **/
@Data
public class LinkEntity extends BaseEntity{
    
    /**
     * 消息标题
     */
    private String title;
    /**
     * 消息描述
     */
    private String description;
    /**
     * 消息链接
     */
    private String url;
    
}

5)LocationEntity

package com.zlc.wechat.entity;

import lombok.Data;

/**
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 17:06
 **/
@Data
public class LocationEntity extends BaseEntity{

    /**
     * 地理位置维度
     */
    private String locationX;
    /**
     * 地理位置经度
     */
    private String locationY;
    /**
     * 地图缩放大小
     */
    private String scale;
    /**
     * 地理位置信息
     */
    private String label;
    
}

6)MusicEntity

package com.zlc.wechat.entity;

import lombok.Data;

import java.io.Serializable;

/**
 * 微信音乐
 * @author :  追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 15:22
 **/
@Data
public class MusicEntity implements Serializable {

	private static final long serialVersionUID = 1L;
	
	/**
	 * 音乐名称
	 */
	private String title;
	/**
	 * 音乐描述
	 */
	private String description;
	/**
	 * 音乐链接
	 */
	private String musicUrl;
	/**
	 * 质量音乐链接,WIFI环境优先使用该链接播放音乐
	 */
	private String HQMusicUrl;
	/**
	 * 缩略图的媒体id,通过上传多媒体文件得到的id
	 */
	private String thumbMediaId;
	
}

7)TextEntity

package com.zlc.wechat.entity;

import lombok.Data;

/**
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 16:40
 **/
@Data
public class TextEntity extends BaseEntity{
    
    /**
     * 文本消息内容
     */
    private String content;
    
}

8)VideoEntity

package com.zlc.wechat.entity;

import lombok.Data;

/**
 * 微信视频
 * @author :  追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 15:22
 **/
@Data
public class VideoEntity extends BaseEntity {
	
	/**
	 * 视频缩略图的媒体Id,(缩略图就是微信中的那个小窗口视频,图片和视频都会缩略)
	 */
	private String thumbMediaId;
	
}

9)VoiceEntity

package com.zlc.wechat.entity;

import lombok.Data;

/**
 * 微信语音
 * @author :  追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 15:22
 **/
@Data
public class VoiceEntity extends BaseEntity {
	
	/**
	 * 语音格式,如amr,speex等
	 */
	private String format;
	/**
	 * 开通语音识别后,用户每次发送语音给公众号时,微信会在推送的语音消息XML数据包中,增加
	 * 语音格式:amr
	 * 语音识别结果,UTF8编码()
	 */
	private String recognition;
	
}

三、用户发送消息类
1)BaseWeChatMsg

package com.zlc.wechat.message;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 16:08
 **/
@Data
public class BaseWeChatMsg implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 消息Id,64位整形
     */
    private long msgId;
    /**
     * 开发者微信号
     */
    private String toUserName;
    /**
     * 发送方帐号(一个OpenID)
     */
    private String fromUserName;
    /**
     * 消息创建时间 (整型)
     */
    private Date createTime;
    /**
     * 消息类型
     */
    private String msgType;
    /**
     * 位0x0001被标志时,星标刚收到的消息
     */
    private int funcFlag;
    
}

2)ReceiveImageMsg

package com.zlc.wechat.message.receive;

import com.zlc.wechat.entity.ImageEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * 图片消息
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 16:31
 **/
@Data
public class ReceiveImageMsg extends BaseWeChatMsg {
   
    /**
     * 图片
     */
    private ImageEntity imageEntity;
    
}

3)ReceiveLinkMsg

package com.zlc.wechat.message.receive;

import com.zlc.wechat.entity.LinkEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/24 9:46
 **/
@Data
public class ReceiveLinkMsg extends BaseWeChatMsg {
    
    /**
     * 链接
     */
    private LinkEntity linkEntity;
    
}

4)ReceiveLocationMsg

package com.zlc.wechat.message.receive;

import com.zlc.wechat.entity.LocationEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * 地理位置信息
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 17:05
 **/
@Data
public class ReceiveLocationMsg extends BaseWeChatMsg {
   
    /**
     * 位置
     */
    private LocationEntity locationEntity;
    
}

5)ReceiveTextMsg

package com.zlc.wechat.message.receive;

import com.zlc.wechat.entity.TextEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * 文本消息
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 16:06
 **/
@Data
public class ReceiveTextMsg extends BaseWeChatMsg {
   
    /**
     * 文本
     */
    private TextEntity textEntity;
    
}

6)ReceiveVideoMsg

package com.zlc.wechat.message.receive;

import com.zlc.wechat.entity.VideoEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * 视频类消息(包括小视频)
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 17:00
 **/
@Data
public class ReceiveVideoMsg extends BaseWeChatMsg {
   
    /**
     * 视频
     */
    private VideoEntity videoEntity;
    
}

7)ReceiveVoiceMsg

package com.zlc.wechat.message.receive;

import com.zlc.wechat.entity.BaseEntity;
import com.zlc.wechat.entity.VoiceEntity;
import lombok.Data;

/**
 * 语音消息
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/23 16:47
 **/
@Data
public class ReceiveVoiceMsg extends BaseEntity {
    
    /**
     * 语音
     */
    private VoiceEntity voiceEntity;
    
}

四、被动回复用户消息类
1)ReplyArticleMsg

package com.zlc.wechat.message.reply;

import com.zlc.wechat.entity.ArticleEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

import java.util.List;

/**
 * 被动回复用户图文消息
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/24 10:05
 **/
@Data
public class ReplyArticleMsg extends BaseWeChatMsg {
    
    /**
     * 图文消息总条数
     */
    private int articleCount;
    /**
     * 图文消息集合
     */
    private List<ArticleEntity> articles;
    
}

2)ReplyImageMsg

package com.zlc.wechat.message.reply;

import com.zlc.wechat.entity.ImageEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * 被动回复图片信息,可以是多图
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/24 9:56
 **/
@Data
public class ReplyImageMsg extends BaseWeChatMsg {
    
    /**
     * 图片
     */
    private ImageEntity imageEntity;
    
}    

3)ReplyMusicMsg

package com.zlc.wechat.message.reply;

import com.zlc.wechat.entity.MusicEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * 被动回复用户乐音消息
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/24 10:02
 **/
@Data
public class ReplyMusicMsg extends BaseWeChatMsg {
  
    /**
     * 音乐
     */
    private MusicEntity musicEntity;
    
}

4)ReplyTextMsg

package com.zlc.wechat.message.reply;

import com.zlc.wechat.entity.TextEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * 被动回复用户文本消息
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/24 9:53
 **/
@Data
public class ReplyTextMsg extends BaseWeChatMsg {
    
    /**
     * 文本
     */
    private TextEntity textEntity;
    
}

5)ReplyVideoMsg

package com.zlc.wechat.message.reply;

import com.zlc.wechat.entity.VideoEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * 被动回复用户视频消息
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/24 10:00
 **/
@Data
public class ReplyVideoMsg extends BaseWeChatMsg {
   
    /**
     * 视频
     */    
    private VideoEntity videoEntity;
    
}

6)ReplyVoiceMsg

package com.zlc.wechat.message.reply;

import com.zlc.wechat.entity.VoiceEntity;
import com.zlc.wechat.message.BaseWeChatMsg;
import lombok.Data;

/**
 * 被动回复用户语音消息
 * @author : 追到乌云的尽头找太阳-(Jacob)
 * @date : 2019/10/24 9:58
 **/
@Data
public class ReplyVoiceMsg extends BaseWeChatMsg {
   
    /**
     * 语音
     */
    private VoiceEntity voiceEntity;
    
}

发布了65 篇原创文章 · 获赞 48 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/chen15369337607/article/details/102701752