| @@ -3,187 +3,215 @@ package me.chanjar.weixin.common.api; | |||
| import java.util.HashMap; | |||
| import java.util.Map; | |||
| /** | |||
| * 微信开发所使用到的常量类 | |||
| * | |||
| * @author chanjarster & binarywang | |||
| */ | |||
| public class WxConsts { | |||
| /////////////////////// | |||
| // 微信推送过来的消息的类型,和发送给微信xml格式消息的消息类型 | |||
| /////////////////////// | |||
| public static final String XML_MSG_TEXT = "text"; | |||
| public static final String XML_MSG_IMAGE = "image"; | |||
| public static final String XML_MSG_VOICE = "voice"; | |||
| public static final String XML_MSG_SHORTVIDEO = "shortvideo"; | |||
| public static final String XML_MSG_VIDEO = "video"; | |||
| public static final String XML_MSG_NEWS = "news"; | |||
| public static final String XML_MSG_MUSIC = "music"; | |||
| public static final String XML_MSG_LOCATION = "location"; | |||
| public static final String XML_MSG_LINK = "link"; | |||
| public static final String XML_MSG_EVENT = "event"; | |||
| public static final String XML_MSG_DEVICE_TEXT = "device_text"; | |||
| public static final String XML_MSG_DEVICE_EVENT = "device_event"; | |||
| public static final String XML_MSG_DEVICE_STATUS = "device_status"; | |||
| public static final String XML_MSG_HARDWARE = "hardware"; | |||
| public static final String XML_TRANSFER_CUSTOMER_SERVICE = "transfer_customer_service"; | |||
| /////////////////////// | |||
| // 主动发送消息(即客服消息)的消息类型 | |||
| /////////////////////// | |||
| public static final String CUSTOM_MSG_TEXT = "text";//文本消息 | |||
| public static final String CUSTOM_MSG_IMAGE = "image";//图片消息 | |||
| public static final String CUSTOM_MSG_VOICE = "voice";//语音消息 | |||
| public static final String CUSTOM_MSG_VIDEO = "video";//视频消息 | |||
| public static final String CUSTOM_MSG_MUSIC = "music";//音乐消息 | |||
| public static final String CUSTOM_MSG_NEWS = "news";//图文消息(点击跳转到外链) | |||
| public static final String CUSTOM_MSG_MPNEWS = "mpnews";//图文消息(点击跳转到图文消息页面) | |||
| public static final String CUSTOM_MSG_FILE = "file";//发送文件(CP专用) | |||
| public static final String CUSTOM_MSG_TEXTCARD = "textcard";//文本卡片消息(CP专用) | |||
| public static final String CUSTOM_MSG_WXCARD = "wxcard";//卡券消息 | |||
| public static final String CUSTOM_MSG_TRANSFER_CUSTOMER_SERVICE = "transfer_customer_service"; | |||
| public static final String CUSTOM_MSG_SAFE_NO = "0"; | |||
| public static final String CUSTOM_MSG_SAFE_YES = "1"; | |||
| /////////////////////// | |||
| // 群发消息的消息类型 | |||
| /////////////////////// | |||
| public static final String MASS_MSG_NEWS = "mpnews"; | |||
| public static final String MASS_MSG_TEXT = "text"; | |||
| public static final String MASS_MSG_VOICE = "voice"; | |||
| public static final String MASS_MSG_IMAGE = "image"; | |||
| public static final String MASS_MSG_VIDEO = "mpvideo"; | |||
| /////////////////////// | |||
| // 群发消息后微信端推送给服务器的反馈消息 | |||
| /////////////////////// | |||
| public static final String MASS_ST_SUCCESS = "send success"; | |||
| public static final String MASS_ST_FAIL = "send fail"; | |||
| public static final String MASS_ST_10001 = "err(10001)"; | |||
| public static final String MASS_ST_20001 = "err(20001)"; | |||
| public static final String MASS_ST_20004 = "err(20004)"; | |||
| public static final String MASS_ST_20002 = "err(20002)"; | |||
| public static final String MASS_ST_20006 = "err(20006)"; | |||
| public static final String MASS_ST_20008 = "err(20008)"; | |||
| public static final String MASS_ST_20013 = "err(20013)"; | |||
| public static final String MASS_ST_22000 = "err(22000)"; | |||
| public static final String MASS_ST_21000 = "err(21000)"; | |||
| /** | |||
| * 群发反馈消息代码所对应的文字描述 | |||
| * 微信推送过来的消息的类型,和发送给微信xml格式消息的消息类型 | |||
| */ | |||
| public static final Map<String, String> MASS_ST_2_DESC = new HashMap<>(); | |||
| /////////////////////// | |||
| // 微信端推送过来的事件类型 | |||
| /////////////////////// | |||
| public static final String EVT_SUBSCRIBE = "subscribe"; | |||
| public static final String EVT_UNSUBSCRIBE = "unsubscribe"; | |||
| public static final String EVT_SCAN = "SCAN"; | |||
| public static final String EVT_LOCATION = "LOCATION"; | |||
| public static final String EVT_CLICK = "CLICK"; | |||
| public static final String EVT_VIEW = "VIEW"; | |||
| public static final String EVT_MASS_SEND_JOB_FINISH = "MASSSENDJOBFINISH"; | |||
| public static final String EVT_SCANCODE_PUSH = "scancode_push"; | |||
| public static final String EVT_SCANCODE_WAITMSG = "scancode_waitmsg"; | |||
| public static final String EVT_PIC_SYSPHOTO = "pic_sysphoto"; | |||
| public static final String EVT_PIC_PHOTO_OR_ALBUM = "pic_photo_or_album"; | |||
| public static final String EVT_PIC_WEIXIN = "pic_weixin"; | |||
| public static final String EVT_LOCATION_SELECT = "location_select"; | |||
| public static final String EVT_TEMPLATESENDJOBFINISH = "TEMPLATESENDJOBFINISH"; | |||
| public static final String EVT_ENTER_AGENT = "enter_agent"; | |||
| /////////////////////// | |||
| // 上传多媒体文件的类型 | |||
| /////////////////////// | |||
| public static final String MEDIA_IMAGE = "image"; | |||
| public static final String MEDIA_VOICE = "voice"; | |||
| public static final String MEDIA_VIDEO = "video"; | |||
| public static final String MEDIA_THUMB = "thumb"; | |||
| public static final String MEDIA_FILE = "file"; | |||
| public static class XmlMsgType { | |||
| public static final String TEXT = "text"; | |||
| public static final String IMAGE = "image"; | |||
| public static final String VOICE = "voice"; | |||
| public static final String SHORTVIDEO = "shortvideo"; | |||
| public static final String VIDEO = "video"; | |||
| public static final String NEWS = "news"; | |||
| public static final String MUSIC = "music"; | |||
| public static final String LOCATION = "location"; | |||
| public static final String LINK = "link"; | |||
| public static final String EVENT = "event"; | |||
| public static final String DEVICE_TEXT = "device_text"; | |||
| public static final String DEVICE_EVENT = "device_event"; | |||
| public static final String DEVICE_STATUS = "device_status"; | |||
| public static final String HARDWARE = "hardware"; | |||
| public static final String TRANSFER_CUSTOMER_SERVICE = "transfer_customer_service"; | |||
| } | |||
| /////////////////////// | |||
| // 自定义菜单的按钮类型 | |||
| /////////////////////// | |||
| /** | |||
| * 点击推事件 | |||
| */ | |||
| public static final String BUTTON_CLICK = "click"; | |||
| /** | |||
| * 跳转URL | |||
| */ | |||
| public static final String BUTTON_VIEW = "view"; | |||
| /** | |||
| * 跳转到小程序 | |||
| */ | |||
| public static final String BUTTON_MINIPROGRAM = "miniprogram"; | |||
| /** | |||
| * 扫码推事件 | |||
| */ | |||
| public static final String BUTTON_SCANCODE_PUSH = "scancode_push"; | |||
| /** | |||
| * 扫码推事件且弹出“消息接收中”提示框 | |||
| * 主动发送消息(即客服消息)的消息类型 | |||
| */ | |||
| public static final String BUTTON_SCANCODE_WAITMSG = "scancode_waitmsg"; | |||
| public static class KefuMsgType { | |||
| public static final String TEXT = "text";//文本消息 | |||
| public static final String IMAGE = "image";//图片消息 | |||
| public static final String VOICE = "voice";//语音消息 | |||
| public static final String VIDEO = "video";//视频消息 | |||
| public static final String MUSIC = "music";//音乐消息 | |||
| public static final String NEWS = "news";//图文消息(点击跳转到外链) | |||
| public static final String MPNEWS = "mpnews";//图文消息(点击跳转到图文消息页面) | |||
| public static final String FILE = "file";//发送文件(CP专用) | |||
| public static final String TEXTCARD = "textcard";//文本卡片消息(CP专用) | |||
| public static final String WXCARD = "wxcard";//卡券消息 | |||
| public static final String TRANSFER_CUSTOMER_SERVICE = "transfer_customer_service"; | |||
| } | |||
| /** | |||
| * 弹出系统拍照发图 | |||
| * 表示是否是保密消息,0表示否,1表示是,默认0 | |||
| */ | |||
| public static final String BUTTON_PIC_SYSPHOTO = "pic_sysphoto"; | |||
| public static class KefuMsgSafe { | |||
| public static final String NO = "0"; | |||
| public static final String YES = "1"; | |||
| } | |||
| /** | |||
| * 弹出拍照或者相册发图 | |||
| * 群发消息的消息类型 | |||
| */ | |||
| public static final String BUTTON_PIC_PHOTO_OR_ALBUM = "pic_photo_or_album"; | |||
| public static class MassMsgType { | |||
| public static final String MPNEWS = "mpnews"; | |||
| public static final String TEXT = "text"; | |||
| public static final String VOICE = "voice"; | |||
| public static final String IMAGE = "image"; | |||
| public static final String MPVIDEO = "mpvideo"; | |||
| } | |||
| /** | |||
| * 弹出微信相册发图器 | |||
| * 群发消息后微信端推送给服务器的反馈消息 | |||
| */ | |||
| public static final String BUTTON_PIC_WEIXIN = "pic_weixin"; | |||
| public static class MassMsgStatus { | |||
| public static final String SEND_SUCCESS = "send success"; | |||
| public static final String SEND_FAIL = "send fail"; | |||
| public static final String ERR_10001 = "err(10001)"; | |||
| public static final String ERR_20001 = "err(20001)"; | |||
| public static final String ERR_20004 = "err(20004)"; | |||
| public static final String ERR_20002 = "err(20002)"; | |||
| public static final String ERR_20006 = "err(20006)"; | |||
| public static final String ERR_20008 = "err(20008)"; | |||
| public static final String ERR_20013 = "err(20013)"; | |||
| public static final String ERR_22000 = "err(22000)"; | |||
| public static final String ERR_21000 = "err(21000)"; | |||
| /** | |||
| * 群发反馈消息代码所对应的文字描述 | |||
| */ | |||
| public static final Map<String, String> STATUS_DESC = new HashMap<>(); | |||
| static { | |||
| STATUS_DESC.put(SEND_SUCCESS, "发送成功"); | |||
| STATUS_DESC.put(SEND_FAIL, "发送失败"); | |||
| STATUS_DESC.put(ERR_10001, "涉嫌广告"); | |||
| STATUS_DESC.put(ERR_20001, "涉嫌政治"); | |||
| STATUS_DESC.put(ERR_20004, "涉嫌社会"); | |||
| STATUS_DESC.put(ERR_20002, "涉嫌色情"); | |||
| STATUS_DESC.put(ERR_20006, "涉嫌违法犯罪"); | |||
| STATUS_DESC.put(ERR_20008, "涉嫌欺诈"); | |||
| STATUS_DESC.put(ERR_20013, "涉嫌版权"); | |||
| STATUS_DESC.put(ERR_22000, "涉嫌互推_互相宣传"); | |||
| STATUS_DESC.put(ERR_21000, "涉嫌其他"); | |||
| } | |||
| } | |||
| /** | |||
| * 弹出地理位置选择器 | |||
| * 微信端推送过来的事件类型 | |||
| */ | |||
| public static final String BUTTON_LOCATION_SELECT = "location_select"; | |||
| public static class EventType { | |||
| public static final String SUBSCRIBE = "subscribe"; | |||
| public static final String UNSUBSCRIBE = "unsubscribe"; | |||
| public static final String SCAN = "SCAN"; | |||
| public static final String LOCATION = "LOCATION"; | |||
| public static final String CLICK = "CLICK"; | |||
| public static final String VIEW = "VIEW"; | |||
| public static final String MASS_SEND_JOB_FINISH = "MASSSENDJOBFINISH"; | |||
| public static final String SCANCODE_PUSH = "scancode_push"; | |||
| public static final String SCANCODE_WAITMSG = "scancode_waitmsg"; | |||
| public static final String PIC_SYSPHOTO = "pic_sysphoto"; | |||
| public static final String PIC_PHOTO_OR_ALBUM = "pic_photo_or_album"; | |||
| public static final String PIC_WEIXIN = "pic_weixin"; | |||
| public static final String LOCATION_SELECT = "location_select"; | |||
| public static final String TEMPLATE_SEND_JOB_FINISH = "TEMPLATESENDJOBFINISH"; | |||
| public static final String ENTER_AGENT = "enter_agent"; | |||
| } | |||
| /** | |||
| * 下发消息(除文本消息) | |||
| * 上传多媒体(临时素材)文件的类型 | |||
| */ | |||
| public static final String BUTTON_MEDIA_ID = "media_id"; | |||
| public static class MediaFileType { | |||
| public static final String IMAGE = "image"; | |||
| public static final String VOICE = "voice"; | |||
| public static final String VIDEO = "video"; | |||
| public static final String THUMB = "thumb"; | |||
| public static final String FILE = "file"; | |||
| } | |||
| /** | |||
| * 跳转图文消息URL | |||
| * 自定义菜单的按钮类型 | |||
| */ | |||
| public static final String BUTTON_VIEW_LIMITED = "view_limited"; | |||
| public static class MenuButtonType { | |||
| /** | |||
| * 点击推事件 | |||
| */ | |||
| public static final String CLICK = "click"; | |||
| /** | |||
| * 跳转URL | |||
| */ | |||
| public static final String VIEW = "view"; | |||
| /** | |||
| * 跳转到小程序 | |||
| */ | |||
| public static final String MINIPROGRAM = "miniprogram"; | |||
| /** | |||
| * 扫码推事件 | |||
| */ | |||
| public static final String SCANCODE_PUSH = "scancode_push"; | |||
| /** | |||
| * 扫码推事件且弹出“消息接收中”提示框 | |||
| */ | |||
| public static final String SCANCODE_WAITMSG = "scancode_waitmsg"; | |||
| /** | |||
| * 弹出系统拍照发图 | |||
| */ | |||
| public static final String PIC_SYSPHOTO = "pic_sysphoto"; | |||
| /** | |||
| * 弹出拍照或者相册发图 | |||
| */ | |||
| public static final String PIC_PHOTO_OR_ALBUM = "pic_photo_or_album"; | |||
| /** | |||
| * 弹出微信相册发图器 | |||
| */ | |||
| public static final String PIC_WEIXIN = "pic_weixin"; | |||
| /** | |||
| * 弹出地理位置选择器 | |||
| */ | |||
| public static final String LOCATION_SELECT = "location_select"; | |||
| /** | |||
| * 下发消息(除文本消息) | |||
| */ | |||
| public static final String MEDIA_ID = "media_id"; | |||
| /** | |||
| * 跳转图文消息URL | |||
| */ | |||
| public static final String VIEW_LIMITED = "view_limited"; | |||
| } | |||
| /** | |||
| * 不弹出授权页面,直接跳转,只能获取用户openid | |||
| * oauth2网页授权的scope | |||
| */ | |||
| public static final String OAUTH2_SCOPE_BASE = "snsapi_base"; | |||
| public static class OAuth2Scope { | |||
| /** | |||
| * 不弹出授权页面,直接跳转,只能获取用户openid | |||
| */ | |||
| public static final String SNSAPI_BASE = "snsapi_base"; | |||
| /** | |||
| * 弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息 | |||
| */ | |||
| public static final String SNSAPI_USERINFO = "snsapi_userinfo"; | |||
| } | |||
| /////////////////////// | |||
| // oauth2网页授权的scope | |||
| /////////////////////// | |||
| /** | |||
| * 弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息 | |||
| * 网页应用登录授权作用域 | |||
| */ | |||
| public static final String OAUTH2_SCOPE_USER_INFO = "snsapi_userinfo"; | |||
| public static class QrConnectScope { | |||
| public static final String SNSAPI_LOGIN = "snsapi_login"; | |||
| } | |||
| /** | |||
| * 网页应用登录授权作用域 snsapi_login | |||
| * 永久素材类型 | |||
| */ | |||
| public static final String QRCONNECT_SCOPE_SNSAPI_LOGIN = "snsapi_login"; | |||
| /////////////////////// | |||
| // 永久素材类型 | |||
| /////////////////////// | |||
| public static final String MATERIAL_NEWS = "news"; | |||
| public static final String MATERIAL_VOICE = "voice"; | |||
| public static final String MATERIAL_IMAGE = "image"; | |||
| public static final String MATERIAL_VIDEO = "video"; | |||
| static { | |||
| MASS_ST_2_DESC.put(MASS_ST_SUCCESS, "发送成功"); | |||
| MASS_ST_2_DESC.put(MASS_ST_FAIL, "发送失败"); | |||
| MASS_ST_2_DESC.put(MASS_ST_10001, "涉嫌广告"); | |||
| MASS_ST_2_DESC.put(MASS_ST_20001, "涉嫌政治"); | |||
| MASS_ST_2_DESC.put(MASS_ST_20004, "涉嫌社会"); | |||
| MASS_ST_2_DESC.put(MASS_ST_20002, "涉嫌色情"); | |||
| MASS_ST_2_DESC.put(MASS_ST_20006, "涉嫌违法犯罪"); | |||
| MASS_ST_2_DESC.put(MASS_ST_20008, "涉嫌欺诈"); | |||
| MASS_ST_2_DESC.put(MASS_ST_20013, "涉嫌版权"); | |||
| MASS_ST_2_DESC.put(MASS_ST_22000, "涉嫌互推_互相宣传"); | |||
| MASS_ST_2_DESC.put(MASS_ST_21000, "涉嫌其他"); | |||
| public static class MaterialType { | |||
| public static final String NEWS = "news"; | |||
| public static final String VOICE = "voice"; | |||
| public static final String IMAGE = "image"; | |||
| public static final String VIDEO = "video"; | |||
| } | |||
| } | |||
| @@ -1,5 +1,6 @@ | |||
| package me.chanjar.weixin.cp.bean; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.cp.bean.article.MpnewsArticle; | |||
| import me.chanjar.weixin.cp.bean.article.NewArticle; | |||
| import me.chanjar.weixin.cp.bean.messagebuilder.*; | |||
| @@ -137,13 +138,13 @@ public class WxCpMessage implements Serializable { | |||
| /** | |||
| * <pre> | |||
| * 请使用 | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_TEXT} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_IMAGE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_VOICE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_MUSIC} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_VIDEO} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_NEWS} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_MPNEWS} | |||
| * {@link WxConsts.KefuMsgType#TEXT} | |||
| * {@link WxConsts.KefuMsgType#IMAGE} | |||
| * {@link WxConsts.KefuMsgType#VOICE} | |||
| * {@link WxConsts.KefuMsgType#MUSIC} | |||
| * {@link WxConsts.KefuMsgType#VIDEO} | |||
| * {@link WxConsts.KefuMsgType#NEWS} | |||
| * {@link WxConsts.KefuMsgType#MPNEWS} | |||
| * </pre> | |||
| * | |||
| * @param msgType 消息类型 | |||
| @@ -2,6 +2,7 @@ package me.chanjar.weixin.cp.bean; | |||
| import com.thoughtworks.xstream.annotations.XStreamAlias; | |||
| import com.thoughtworks.xstream.annotations.XStreamConverter; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.util.ToStringUtils; | |||
| import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; | |||
| import me.chanjar.weixin.cp.config.WxCpConfigStorage; | |||
| @@ -224,13 +225,13 @@ public class WxCpXmlMessage implements Serializable { | |||
| /** | |||
| * <pre> | |||
| * 当接受用户消息时,可能会获得以下值: | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_TEXT} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_IMAGE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_VOICE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_VIDEO} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_LOCATION} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_LINK} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_EVENT} | |||
| * {@link WxConsts.XmlMsgType#TEXT} | |||
| * {@link WxConsts.XmlMsgType#IMAGE} | |||
| * {@link WxConsts.XmlMsgType#VOICE} | |||
| * {@link WxConsts.XmlMsgType#VIDEO} | |||
| * {@link WxConsts.XmlMsgType#LOCATION} | |||
| * {@link WxConsts.XmlMsgType#LINK} | |||
| * {@link WxConsts.XmlMsgType#EVENT} | |||
| * </pre> | |||
| */ | |||
| public String getMsgType() { | |||
| @@ -240,11 +241,11 @@ public class WxCpXmlMessage implements Serializable { | |||
| /** | |||
| * <pre> | |||
| * 当发送消息的时候使用: | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_TEXT} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_IMAGE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_VOICE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_VIDEO} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_NEWS} | |||
| * {@link WxConsts.XmlMsgType#TEXT} | |||
| * {@link WxConsts.XmlMsgType#IMAGE} | |||
| * {@link WxConsts.XmlMsgType#VOICE} | |||
| * {@link WxConsts.XmlMsgType#VIDEO} | |||
| * {@link WxConsts.XmlMsgType#NEWS} | |||
| * </pre> | |||
| * | |||
| * @param msgType | |||
| @@ -14,7 +14,7 @@ public class WxCpXmlOutImageMessage extends WxCpXmlOutMessage { | |||
| private String mediaId; | |||
| public WxCpXmlOutImageMessage() { | |||
| this.msgType = WxConsts.XML_MSG_IMAGE; | |||
| this.msgType = WxConsts.XmlMsgType.IMAGE; | |||
| } | |||
| public String getMediaId() { | |||
| @@ -18,7 +18,7 @@ public class WxCpXmlOutNewsMessage extends WxCpXmlOutMessage { | |||
| protected int articleCount; | |||
| public WxCpXmlOutNewsMessage() { | |||
| this.msgType = WxConsts.XML_MSG_NEWS; | |||
| this.msgType = WxConsts.XmlMsgType.NEWS; | |||
| } | |||
| public int getArticleCount() { | |||
| @@ -14,7 +14,7 @@ public class WxCpXmlOutTextMessage extends WxCpXmlOutMessage { | |||
| private String content; | |||
| public WxCpXmlOutTextMessage() { | |||
| this.msgType = WxConsts.XML_MSG_TEXT; | |||
| this.msgType = WxConsts.XmlMsgType.TEXT; | |||
| } | |||
| public String getContent() { | |||
| @@ -13,7 +13,7 @@ public class WxCpXmlOutVideoMessage extends WxCpXmlOutMessage { | |||
| protected final Video video = new Video(); | |||
| public WxCpXmlOutVideoMessage() { | |||
| this.msgType = WxConsts.XML_MSG_VIDEO; | |||
| this.msgType = WxConsts.XmlMsgType.VIDEO; | |||
| } | |||
| public String getMediaId() { | |||
| @@ -14,7 +14,7 @@ public class WxCpXmlOutVoiceMessage extends WxCpXmlOutMessage { | |||
| private String mediaId; | |||
| public WxCpXmlOutVoiceMessage() { | |||
| this.msgType = WxConsts.XML_MSG_VOICE; | |||
| this.msgType = WxConsts.XmlMsgType.VOICE; | |||
| } | |||
| public String getMediaId() { | |||
| @@ -44,7 +44,7 @@ public class BaseBuilder<T> { | |||
| m.setToUser(this.toUser); | |||
| m.setToParty(this.toParty); | |||
| m.setToTag(this.toTag); | |||
| m.setSafe(StringUtils.defaultIfBlank(this.safe, WxConsts.CUSTOM_MSG_SAFE_NO)); | |||
| m.setSafe(StringUtils.defaultIfBlank(this.safe, WxConsts.KefuMsgSafe.NO)); | |||
| return m; | |||
| } | |||
| @@ -15,7 +15,7 @@ public final class FileBuilder extends BaseBuilder<FileBuilder> { | |||
| private String mediaId; | |||
| public FileBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_FILE; | |||
| this.msgType = WxConsts.KefuMsgType.FILE; | |||
| } | |||
| public FileBuilder mediaId(String media_id) { | |||
| @@ -15,7 +15,7 @@ public final class ImageBuilder extends BaseBuilder<ImageBuilder> { | |||
| private String mediaId; | |||
| public ImageBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_IMAGE; | |||
| this.msgType = WxConsts.KefuMsgType.IMAGE; | |||
| } | |||
| public ImageBuilder mediaId(String media_id) { | |||
| @@ -23,7 +23,7 @@ public final class MpnewsBuilder extends BaseBuilder<MpnewsBuilder> { | |||
| private String mediaId; | |||
| public MpnewsBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_MPNEWS; | |||
| this.msgType = WxConsts.KefuMsgType.MPNEWS; | |||
| } | |||
| public MpnewsBuilder mediaId(String mediaId) { | |||
| @@ -22,7 +22,7 @@ public final class NewsBuilder extends BaseBuilder<NewsBuilder> { | |||
| private List<NewArticle> articles = new ArrayList<>(); | |||
| public NewsBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_NEWS; | |||
| this.msgType = WxConsts.KefuMsgType.NEWS; | |||
| } | |||
| public NewsBuilder addArticle(NewArticle... articles) { | |||
| @@ -15,7 +15,7 @@ public final class TextBuilder extends BaseBuilder<TextBuilder> { | |||
| private String content; | |||
| public TextBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_TEXT; | |||
| this.msgType = WxConsts.KefuMsgType.TEXT; | |||
| } | |||
| public TextBuilder content(String content) { | |||
| @@ -18,7 +18,7 @@ public class TextCardBuilder extends BaseBuilder<TextCardBuilder> { | |||
| private String url; | |||
| public TextCardBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_TEXTCARD; | |||
| this.msgType = WxConsts.KefuMsgType.TEXTCARD; | |||
| } | |||
| public TextCardBuilder title(String title) { | |||
| @@ -24,7 +24,7 @@ public final class VideoBuilder extends BaseBuilder<VideoBuilder> { | |||
| private String thumbMediaId; | |||
| public VideoBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_VIDEO; | |||
| this.msgType = WxConsts.KefuMsgType.VIDEO; | |||
| } | |||
| public VideoBuilder mediaId(String mediaId) { | |||
| @@ -15,7 +15,7 @@ public final class VoiceBuilder extends BaseBuilder<VoiceBuilder> { | |||
| private String mediaId; | |||
| public VoiceBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_VOICE; | |||
| this.msgType = WxConsts.KefuMsgType.VOICE; | |||
| } | |||
| public VoiceBuilder mediaId(String media_id) { | |||
| @@ -37,13 +37,13 @@ public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> { | |||
| if (StringUtils.isNotBlank(message.getToTag())) { | |||
| messageJson.addProperty("totag", message.getToTag()); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_TEXT.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.TEXT.equals(message.getMsgType())) { | |||
| JsonObject text = new JsonObject(); | |||
| text.addProperty("content", message.getContent()); | |||
| messageJson.add("text", text); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_TEXTCARD.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.TEXTCARD.equals(message.getMsgType())) { | |||
| JsonObject text = new JsonObject(); | |||
| text.addProperty("title", message.getTitle()); | |||
| text.addProperty("description", message.getDescription()); | |||
| @@ -51,19 +51,19 @@ public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> { | |||
| messageJson.add("textcard", text); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_IMAGE.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.IMAGE.equals(message.getMsgType())) { | |||
| JsonObject image = new JsonObject(); | |||
| image.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add("image", image); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_FILE.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.FILE.equals(message.getMsgType())) { | |||
| JsonObject image = new JsonObject(); | |||
| image.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add("file", image); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_VOICE.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.VOICE.equals(message.getMsgType())) { | |||
| JsonObject voice = new JsonObject(); | |||
| voice.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add("voice", voice); | |||
| @@ -73,7 +73,7 @@ public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> { | |||
| messageJson.addProperty("safe", message.getSafe()); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_VIDEO.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.VIDEO.equals(message.getMsgType())) { | |||
| JsonObject video = new JsonObject(); | |||
| video.addProperty("media_id", message.getMediaId()); | |||
| video.addProperty("thumb_media_id", message.getThumbMediaId()); | |||
| @@ -82,7 +82,7 @@ public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> { | |||
| messageJson.add("video", video); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_NEWS.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.NEWS.equals(message.getMsgType())) { | |||
| JsonObject newsJsonObject = new JsonObject(); | |||
| JsonArray articleJsonArray = new JsonArray(); | |||
| for (NewArticle article : message.getArticles()) { | |||
| @@ -97,7 +97,7 @@ public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> { | |||
| messageJson.add("news", newsJsonObject); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_MPNEWS.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.MPNEWS.equals(message.getMsgType())) { | |||
| JsonObject newsJsonObject = new JsonObject(); | |||
| if (message.getMediaId() != null) { | |||
| newsJsonObject.addProperty("media_id", message.getMediaId()); | |||
| @@ -3,7 +3,6 @@ package me.chanjar.weixin.cp.api; | |||
| import com.google.inject.Inject; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.exception.WxErrorException; | |||
| import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl; | |||
| import me.chanjar.weixin.cp.bean.WxCpMessage; | |||
| import me.chanjar.weixin.cp.bean.WxCpMessageSendResult; | |||
| import org.testng.annotations.*; | |||
| @@ -32,7 +31,7 @@ public class WxCpMessageAPITest { | |||
| public void testSendMessage() throws WxErrorException { | |||
| WxCpMessage message = new WxCpMessage(); | |||
| // message.setAgentId(configStorage.getAgentId()); | |||
| message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | |||
| message.setMsgType(WxConsts.KefuMsgType.TEXT); | |||
| message.setToUser(configStorage.getUserId()); | |||
| message.setContent("欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | |||
| @@ -27,21 +27,21 @@ public class WxCpMessageRouterTest { | |||
| router | |||
| .rule() | |||
| .async(async) | |||
| .msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1").content("CONTENT_1") | |||
| .msgType(WxConsts.XmlMsgType.TEXT).event(WxConsts.EventType.CLICK).eventKey("KEY_1").content("CONTENT_1") | |||
| .handler(new WxEchoCpMessageHandler(sb, "COMBINE_4")) | |||
| .end() | |||
| .rule() | |||
| .async(async) | |||
| .msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1") | |||
| .msgType(WxConsts.XmlMsgType.TEXT).event(WxConsts.EventType.CLICK).eventKey("KEY_1") | |||
| .handler(new WxEchoCpMessageHandler(sb, "COMBINE_3")) | |||
| .end() | |||
| .rule() | |||
| .async(async) | |||
| .msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK) | |||
| .msgType(WxConsts.XmlMsgType.TEXT).event(WxConsts.EventType.CLICK) | |||
| .handler(new WxEchoCpMessageHandler(sb, "COMBINE_2")) | |||
| .end() | |||
| .rule().async(async).msgType(WxConsts.XML_MSG_TEXT).handler(new WxEchoCpMessageHandler(sb, WxConsts.XML_MSG_TEXT)).end() | |||
| .rule().async(async).event(WxConsts.EVT_CLICK).handler(new WxEchoCpMessageHandler(sb, WxConsts.EVT_CLICK)).end() | |||
| .rule().async(async).msgType(WxConsts.XmlMsgType.TEXT).handler(new WxEchoCpMessageHandler(sb, WxConsts.XmlMsgType.TEXT)).end() | |||
| .rule().async(async).event(WxConsts.EventType.CLICK).handler(new WxEchoCpMessageHandler(sb, WxConsts.EventType.CLICK)).end() | |||
| .rule().async(async).eventKey("KEY_1").handler(new WxEchoCpMessageHandler(sb, "KEY_1")).end() | |||
| .rule().async(async).content("CONTENT_1").handler(new WxEchoCpMessageHandler(sb, "CONTENT_1")).end() | |||
| .rule().async(async).rContent(".*bc.*").handler(new WxEchoCpMessageHandler(sb, "abcd")).end() | |||
| @@ -104,10 +104,10 @@ public class WxCpMessageRouterTest { | |||
| @DataProvider(name = "messages-1") | |||
| public Object[][] messages2() { | |||
| WxCpXmlMessage message1 = new WxCpXmlMessage(); | |||
| message1.setMsgType(WxConsts.XML_MSG_TEXT); | |||
| message1.setMsgType(WxConsts.XmlMsgType.TEXT); | |||
| WxCpXmlMessage message2 = new WxCpXmlMessage(); | |||
| message2.setEvent(WxConsts.EVT_CLICK); | |||
| message2.setEvent(WxConsts.EventType.CLICK); | |||
| WxCpXmlMessage message3 = new WxCpXmlMessage(); | |||
| message3.setEventKey("KEY_1"); | |||
| @@ -125,24 +125,24 @@ public class WxCpMessageRouterTest { | |||
| message7.setFormat("strangeformat"); | |||
| WxCpXmlMessage c2 = new WxCpXmlMessage(); | |||
| c2.setMsgType(WxConsts.XML_MSG_TEXT); | |||
| c2.setEvent(WxConsts.EVT_CLICK); | |||
| c2.setMsgType(WxConsts.XmlMsgType.TEXT); | |||
| c2.setEvent(WxConsts.EventType.CLICK); | |||
| WxCpXmlMessage c3 = new WxCpXmlMessage(); | |||
| c3.setMsgType(WxConsts.XML_MSG_TEXT); | |||
| c3.setEvent(WxConsts.EVT_CLICK); | |||
| c3.setMsgType(WxConsts.XmlMsgType.TEXT); | |||
| c3.setEvent(WxConsts.EventType.CLICK); | |||
| c3.setEventKey("KEY_1"); | |||
| WxCpXmlMessage c4 = new WxCpXmlMessage(); | |||
| c4.setMsgType(WxConsts.XML_MSG_TEXT); | |||
| c4.setEvent(WxConsts.EVT_CLICK); | |||
| c4.setMsgType(WxConsts.XmlMsgType.TEXT); | |||
| c4.setEvent(WxConsts.EventType.CLICK); | |||
| c4.setEventKey("KEY_1"); | |||
| c4.setContent("CONTENT_1"); | |||
| return new Object[][]{ | |||
| new Object[]{message1, WxConsts.XML_MSG_TEXT + ","}, | |||
| new Object[]{message2, WxConsts.EVT_CLICK + ","}, | |||
| new Object[]{message1, WxConsts.XmlMsgType.TEXT + ","}, | |||
| new Object[]{message2, WxConsts.EventType.CLICK + ","}, | |||
| new Object[]{message3, "KEY_1,"}, | |||
| new Object[]{message4, "CONTENT_1,"}, | |||
| new Object[]{message5, "ALL,"}, | |||
| @@ -34,11 +34,11 @@ public class WxCpMediaServiceImplTest { | |||
| @DataProvider | |||
| public Object[][] mediaData() { | |||
| return new Object[][]{ | |||
| new Object[]{WxConsts.MEDIA_IMAGE, TestConstants.FILE_JPG, "mm.jpeg"}, | |||
| new Object[]{WxConsts.MEDIA_VOICE, TestConstants.FILE_MP3, "mm.mp3"}, | |||
| new Object[]{WxConsts.MEDIA_VOICE, TestConstants.FILE_AMR, "mm.amr"},//{"errcode":301017,"errmsg":"voice file only support amr like myvoice.amr"} | |||
| new Object[]{WxConsts.MEDIA_VIDEO, TestConstants.FILE_MP4, "mm.mp4"}, | |||
| new Object[]{WxConsts.MEDIA_FILE, TestConstants.FILE_JPG, "mm.jpeg"} | |||
| new Object[]{WxConsts.MediaFileType.IMAGE, TestConstants.FILE_JPG, "mm.jpeg"}, | |||
| new Object[]{WxConsts.MediaFileType.VOICE, TestConstants.FILE_MP3, "mm.mp3"}, | |||
| new Object[]{WxConsts.MediaFileType.VOICE, TestConstants.FILE_AMR, "mm.amr"},//{"errcode":301017,"errmsg":"voice file only support amr like myvoice.amr"} | |||
| new Object[]{WxConsts.MediaFileType.VIDEO, TestConstants.FILE_MP4, "mm.mp4"}, | |||
| new Object[]{WxConsts.MediaFileType.FILE, TestConstants.FILE_JPG, "mm.jpeg"} | |||
| }; | |||
| } | |||
| @@ -26,12 +26,12 @@ public class WxCpMenuServiceImplTest { | |||
| public Object[][] menuData() { | |||
| WxMenu menu = new WxMenu(); | |||
| WxMenuButton button1 = new WxMenuButton(); | |||
| button1.setType(WxConsts.BUTTON_CLICK); | |||
| button1.setType(WxConsts.MenuButtonType.CLICK); | |||
| button1.setName("今日歌曲"); | |||
| button1.setKey("V1001_TODAY_MUSIC"); | |||
| WxMenuButton button2 = new WxMenuButton(); | |||
| button2.setType(WxConsts.BUTTON_CLICK); | |||
| button2.setType(WxConsts.MenuButtonType.CLICK); | |||
| button2.setName("歌手简介"); | |||
| button2.setKey("V1001_TODAY_SINGER"); | |||
| @@ -43,17 +43,17 @@ public class WxCpMenuServiceImplTest { | |||
| menu.getButtons().add(button3); | |||
| WxMenuButton button31 = new WxMenuButton(); | |||
| button31.setType(WxConsts.BUTTON_VIEW); | |||
| button31.setType(WxConsts.MenuButtonType.VIEW); | |||
| button31.setName("搜索"); | |||
| button31.setUrl("http://www.soso.com/"); | |||
| WxMenuButton button32 = new WxMenuButton(); | |||
| button32.setType(WxConsts.BUTTON_VIEW); | |||
| button32.setType(WxConsts.MenuButtonType.VIEW); | |||
| button32.setName("视频"); | |||
| button32.setUrl("http://v.qq.com/"); | |||
| WxMenuButton button33 = new WxMenuButton(); | |||
| button33.setType(WxConsts.BUTTON_CLICK); | |||
| button33.setType(WxConsts.MenuButtonType.CLICK); | |||
| button33.setName("赞一下我们"); | |||
| button33.setKey("V1001_GOOD"); | |||
| @@ -58,7 +58,7 @@ public class WxCpXmlMessageTest { | |||
| assertEquals(wxMessage.getToUserName(), "toUser"); | |||
| assertEquals(wxMessage.getFromUserName(), "fromUser"); | |||
| assertEquals(wxMessage.getCreateTime(), new Long(1348831860l)); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.TEXT); | |||
| assertEquals(wxMessage.getContent(), "this is a test"); | |||
| assertEquals(wxMessage.getMsgId(), new Long(1234567890123456l)); | |||
| assertEquals(wxMessage.getPicUrl(), "this is a url"); | |||
| @@ -108,7 +108,7 @@ public class WxCpXmlMessageTest { | |||
| assertEquals(wxMessage.getToUserName(), "wx45a0972125658be9"); | |||
| assertEquals(wxMessage.getFromUserName(), "xiaohe"); | |||
| assertEquals(wxMessage.getCreateTime(), new Long(1502012364L)); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_EVENT); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.EVENT); | |||
| assertEquals(wxMessage.getAgentId(), Integer.valueOf(1000004)); | |||
| assertEquals(wxMessage.getEvent(), "pic_weixin"); | |||
| assertEquals(wxMessage.getEventKey(), "faceSimilarity"); | |||
| @@ -31,7 +31,7 @@ public class WxMaMsgServiceImplTest { | |||
| TestConfig configStorage = (TestConfig) this.wxService | |||
| .getWxMaConfig(); | |||
| WxMaKefuMessage message = new WxMaKefuMessage(); | |||
| message.setMsgType(WxConsts.CUSTOM_MSG_MPNEWS); | |||
| message.setMsgType(WxConsts.KefuMsgType.MPNEWS); | |||
| message.setToUser(configStorage.getOpenid()); | |||
| this.wxService.getMsgService().sendKefuMsg(message); | |||
| @@ -41,7 +41,7 @@ public class WxMaMsgServiceImplTest { | |||
| TestConfig config = (TestConfig) this.wxService | |||
| .getWxMaConfig(); | |||
| WxMaKefuMessage message = new WxMaKefuMessage(); | |||
| message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | |||
| message.setMsgType(WxConsts.KefuMsgType.TEXT); | |||
| message.setToUser(config.getOpenid()); | |||
| message.setContent( | |||
| "欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | |||
| @@ -13,7 +13,7 @@ public class WxMaKefuMessageTest { | |||
| public void testTextReply() { | |||
| WxMaKefuMessage reply = new WxMaKefuMessage(); | |||
| reply.setToUser("OPENID"); | |||
| reply.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | |||
| reply.setMsgType(WxConsts.KefuMsgType.TEXT); | |||
| reply.setContent("sfsfdsdf"); | |||
| Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"text\",\"text\":{\"content\":\"sfsfdsdf\"}}"); | |||
| } | |||
| @@ -26,7 +26,7 @@ public class WxMaKefuMessageTest { | |||
| public void testImageReply() { | |||
| WxMaKefuMessage reply = new WxMaKefuMessage(); | |||
| reply.setToUser("OPENID"); | |||
| reply.setMsgType(WxConsts.CUSTOM_MSG_IMAGE); | |||
| reply.setMsgType(WxConsts.KefuMsgType.IMAGE); | |||
| reply.setMediaId("MEDIA_ID"); | |||
| Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"image\",\"image\":{\"media_id\":\"MEDIA_ID\"}}"); | |||
| } | |||
| @@ -60,7 +60,7 @@ public class WxMaMessageTest { | |||
| assertEquals(wxMessage.getToUser(), "toUser"); | |||
| assertEquals(wxMessage.getFromUser(), "fromUser"); | |||
| assertEquals(wxMessage.getCreateTime(), new Long(1348831860L)); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.TEXT); | |||
| assertEquals(wxMessage.getContent(), "this is a test"); | |||
| assertEquals(wxMessage.getMsgId(), new Long(1234567890123456L)); | |||
| assertEquals(wxMessage.getPicUrl(), "this is a url"); | |||
| @@ -118,7 +118,7 @@ public class WxMaMessageTest { | |||
| assertEquals(wxMessage.getToUser(), "toUser"); | |||
| assertEquals(wxMessage.getFromUser(), "fromUser"); | |||
| assertEquals(wxMessage.getCreateTime(), new Integer(1348831860)); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.TEXT); | |||
| assertEquals(wxMessage.getContent(), "this is a test"); | |||
| assertEquals(wxMessage.getMsgId(), new Long(1234567890123456L)); | |||
| assertEquals(wxMessage.getPicUrl(), "this is a url"); | |||
| @@ -121,7 +121,7 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService { | |||
| @Override | |||
| public WxMpMaterialNewsBatchGetResult materialNewsBatchGet(int offset, int count) throws WxErrorException { | |||
| Map<String, Object> params = new HashMap<>(); | |||
| params.put("type", WxConsts.MATERIAL_NEWS); | |||
| params.put("type", WxConsts.MaterialType.NEWS); | |||
| params.put("offset", offset); | |||
| params.put("count", count); | |||
| String responseText = this.wxMpService.post(MATERIAL_BATCHGET_URL, WxGsonBuilder.create().toJson(params)); | |||
| @@ -1,6 +1,7 @@ | |||
| package me.chanjar.weixin.mp.bean; | |||
| import lombok.Data; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | |||
| import java.io.Serializable; | |||
| @@ -24,11 +25,11 @@ public class WxMpMassOpenIdsMessage implements Serializable { | |||
| /** | |||
| * <pre> | |||
| * 请使用 | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_IMAGE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_NEWS} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_TEXT} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_VIDEO} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_VOICE} | |||
| * {@link WxConsts.MassMsgType#IMAGE} | |||
| * {@link WxConsts.MassMsgType#MPNEWS} | |||
| * {@link WxConsts.MassMsgType#TEXT} | |||
| * {@link WxConsts.MassMsgType#MPVIDEO} | |||
| * {@link WxConsts.MassMsgType#VOICE} | |||
| * 如果msgtype和media_id不匹配的话,会返回系统繁忙的错误 | |||
| * </pre> | |||
| */ | |||
| @@ -1,6 +1,7 @@ | |||
| package me.chanjar.weixin.mp.bean; | |||
| import lombok.Data; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | |||
| import java.io.Serializable; | |||
| @@ -18,11 +19,11 @@ public class WxMpMassPreviewMessage implements Serializable { | |||
| * <pre> | |||
| * 消息类型 | |||
| * 请使用 | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_IMAGE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_NEWS} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_TEXT} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_VIDEO} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_VOICE} | |||
| * {@link WxConsts.MassMsgType#IMAGE} | |||
| * {@link WxConsts.MassMsgType#MPNEWS} | |||
| * {@link WxConsts.MassMsgType#TEXT} | |||
| * {@link WxConsts.MassMsgType#MPVIDEO} | |||
| * {@link WxConsts.MassMsgType#VOICE} | |||
| * 如果msgtype和media_id不匹配的话,会返回系统繁忙的错误 | |||
| * </pre> | |||
| */ | |||
| @@ -1,6 +1,7 @@ | |||
| package me.chanjar.weixin.mp.bean; | |||
| import lombok.Data; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | |||
| import java.io.Serializable; | |||
| @@ -22,11 +23,11 @@ public class WxMpMassTagMessage implements Serializable { | |||
| * <pre> | |||
| * 消息类型 | |||
| * 请使用 | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_IMAGE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_NEWS} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_TEXT} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_VIDEO} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_VOICE} | |||
| * {@link WxConsts.MassMsgType#IMAGE} | |||
| * {@link WxConsts.MassMsgType#MPNEWS} | |||
| * {@link WxConsts.MassMsgType#TEXT} | |||
| * {@link WxConsts.MassMsgType#MPVIDEO} | |||
| * {@link WxConsts.MassMsgType#VOICE} | |||
| * 如果msgtype和media_id不匹配的话,会返回系统繁忙的错误 | |||
| * </pre> | |||
| */ | |||
| @@ -1,6 +1,7 @@ | |||
| package me.chanjar.weixin.mp.bean.kefu; | |||
| import lombok.Data; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.mp.builder.kefu.*; | |||
| import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | |||
| @@ -90,14 +91,14 @@ public class WxMpKefuMessage implements Serializable { | |||
| /** | |||
| * <pre> | |||
| * 请使用 | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_TEXT} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_IMAGE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_VOICE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_MUSIC} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_VIDEO} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_NEWS} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_MPNEWS} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_WXCARD} | |||
| * {@link WxConsts.KefuMsgType#TEXT} | |||
| * {@link WxConsts.KefuMsgType#IMAGE} | |||
| * {@link WxConsts.KefuMsgType#VOICE} | |||
| * {@link WxConsts.KefuMsgType#MUSIC} | |||
| * {@link WxConsts.KefuMsgType#VIDEO} | |||
| * {@link WxConsts.KefuMsgType#NEWS} | |||
| * {@link WxConsts.KefuMsgType#MPNEWS} | |||
| * {@link WxConsts.KefuMsgType#WXCARD} | |||
| * </pre> | |||
| * | |||
| */ | |||
| @@ -3,6 +3,7 @@ package me.chanjar.weixin.mp.bean.message; | |||
| import com.thoughtworks.xstream.annotations.XStreamAlias; | |||
| import com.thoughtworks.xstream.annotations.XStreamConverter; | |||
| import lombok.Data; | |||
| import me.chanjar.weixin.common.api.WxConsts; | |||
| import me.chanjar.weixin.common.util.ToStringUtils; | |||
| import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; | |||
| import me.chanjar.weixin.mp.api.WxMpConfigStorage; | |||
| @@ -467,13 +468,13 @@ public class WxMpXmlMessage implements Serializable { | |||
| /** | |||
| * <pre> | |||
| * 当接受用户消息时,可能会获得以下值: | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_TEXT} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_IMAGE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_VOICE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_VIDEO} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_LOCATION} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_LINK} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_EVENT} | |||
| * {@link WxConsts.XmlMsgType#TEXT} | |||
| * {@link WxConsts.XmlMsgType#IMAGE} | |||
| * {@link WxConsts.XmlMsgType#VOICE} | |||
| * {@link WxConsts.XmlMsgType#VIDEO} | |||
| * {@link WxConsts.XmlMsgType#LOCATION} | |||
| * {@link WxConsts.XmlMsgType#LINK} | |||
| * {@link WxConsts.XmlMsgType#EVENT} | |||
| * </pre> | |||
| */ | |||
| public String getMsgType() { | |||
| @@ -483,12 +484,12 @@ public class WxMpXmlMessage implements Serializable { | |||
| /** | |||
| * <pre> | |||
| * 当发送消息的时候使用: | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_TEXT} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_IMAGE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_VOICE} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_VIDEO} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_NEWS} | |||
| * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_MUSIC} | |||
| * {@link WxConsts.XmlMsgType#TEXT} | |||
| * {@link WxConsts.XmlMsgType#IMAGE} | |||
| * {@link WxConsts.XmlMsgType#VOICE} | |||
| * {@link WxConsts.XmlMsgType#VIDEO} | |||
| * {@link WxConsts.XmlMsgType#NEWS} | |||
| * {@link WxConsts.XmlMsgType#MUSIC} | |||
| * </pre> | |||
| * | |||
| */ | |||
| @@ -16,7 +16,7 @@ public class WxMpXmlOutImageMessage extends WxMpXmlOutMessage { | |||
| private String mediaId; | |||
| public WxMpXmlOutImageMessage() { | |||
| this.msgType = WxConsts.XML_MSG_IMAGE; | |||
| this.msgType = WxConsts.XmlMsgType.IMAGE; | |||
| } | |||
| } | |||
| @@ -19,7 +19,7 @@ public class WxMpXmlOutMusicMessage extends WxMpXmlOutMessage { | |||
| protected final Music music = new Music(); | |||
| public WxMpXmlOutMusicMessage() { | |||
| this.msgType = WxConsts.XML_MSG_MUSIC; | |||
| this.msgType = WxConsts.XmlMsgType.MUSIC; | |||
| } | |||
| @XStreamAlias("Music") | |||
| @@ -21,7 +21,7 @@ public class WxMpXmlOutNewsMessage extends WxMpXmlOutMessage { | |||
| protected int articleCount; | |||
| public WxMpXmlOutNewsMessage() { | |||
| this.msgType = WxConsts.XML_MSG_NEWS; | |||
| this.msgType = WxConsts.XmlMsgType.NEWS; | |||
| } | |||
| public void addArticle(Item item) { | |||
| @@ -16,7 +16,7 @@ public class WxMpXmlOutTextMessage extends WxMpXmlOutMessage { | |||
| private String content; | |||
| public WxMpXmlOutTextMessage() { | |||
| this.msgType = WxConsts.XML_MSG_TEXT; | |||
| this.msgType = WxConsts.XmlMsgType.TEXT; | |||
| } | |||
| } | |||
| @@ -17,7 +17,7 @@ public class WxMpXmlOutTransferKefuMessage extends WxMpXmlOutMessage { | |||
| protected TransInfo transInfo; | |||
| public WxMpXmlOutTransferKefuMessage() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_TRANSFER_CUSTOMER_SERVICE; | |||
| this.msgType = WxConsts.KefuMsgType.TRANSFER_CUSTOMER_SERVICE; | |||
| } | |||
| @XStreamAlias("TransInfo") | |||
| @@ -19,7 +19,7 @@ public class WxMpXmlOutVideoMessage extends WxMpXmlOutMessage { | |||
| protected final Video video = new Video(); | |||
| public WxMpXmlOutVideoMessage() { | |||
| this.msgType = WxConsts.XML_MSG_VIDEO; | |||
| this.msgType = WxConsts.XmlMsgType.VIDEO; | |||
| } | |||
| @XStreamAlias("Video") | |||
| @@ -16,7 +16,7 @@ public class WxMpXmlOutVoiceMessage extends WxMpXmlOutMessage { | |||
| private String mediaId; | |||
| public WxMpXmlOutVoiceMessage() { | |||
| this.msgType = WxConsts.XML_MSG_VOICE; | |||
| this.msgType = WxConsts.XmlMsgType.VOICE; | |||
| } | |||
| } | |||
| @@ -15,7 +15,7 @@ public final class ImageBuilder extends BaseBuilder<ImageBuilder> { | |||
| private String mediaId; | |||
| public ImageBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_IMAGE; | |||
| this.msgType = WxConsts.KefuMsgType.IMAGE; | |||
| } | |||
| public ImageBuilder mediaId(String media_id) { | |||
| @@ -16,7 +16,7 @@ public final class MpNewsBuilder extends BaseBuilder<MpNewsBuilder> { | |||
| private String mediaId; | |||
| public MpNewsBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_MPNEWS; | |||
| this.msgType = WxConsts.KefuMsgType.MPNEWS; | |||
| } | |||
| public MpNewsBuilder mediaId(String mediaId) { | |||
| @@ -24,7 +24,7 @@ public final class MusicBuilder extends BaseBuilder<MusicBuilder> { | |||
| private String hqMusicUrl; | |||
| public MusicBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_MUSIC; | |||
| this.msgType = WxConsts.KefuMsgType.MUSIC; | |||
| } | |||
| public MusicBuilder musicUrl(String musicurl) { | |||
| @@ -20,7 +20,7 @@ public final class NewsBuilder extends BaseBuilder<NewsBuilder> { | |||
| private List<WxMpKefuMessage.WxArticle> articles = new ArrayList<>(); | |||
| public NewsBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_NEWS; | |||
| this.msgType = WxConsts.KefuMsgType.NEWS; | |||
| } | |||
| public NewsBuilder addArticle(WxMpKefuMessage.WxArticle... articles) { | |||
| @@ -15,7 +15,7 @@ public final class TextBuilder extends BaseBuilder<TextBuilder> { | |||
| private String content; | |||
| public TextBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_TEXT; | |||
| this.msgType = WxConsts.KefuMsgType.TEXT; | |||
| } | |||
| public TextBuilder content(String content) { | |||
| @@ -24,7 +24,7 @@ public final class VideoBuilder extends BaseBuilder<VideoBuilder> { | |||
| private String thumbMediaId; | |||
| public VideoBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_VIDEO; | |||
| this.msgType = WxConsts.KefuMsgType.VIDEO; | |||
| } | |||
| public VideoBuilder mediaId(String mediaId) { | |||
| @@ -15,7 +15,7 @@ public final class VoiceBuilder extends BaseBuilder<VoiceBuilder> { | |||
| private String mediaId; | |||
| public VoiceBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_VOICE; | |||
| this.msgType = WxConsts.KefuMsgType.VOICE; | |||
| } | |||
| public VoiceBuilder mediaId(String media_id) { | |||
| @@ -15,7 +15,7 @@ public final class WxCardBuilder extends BaseBuilder<WxCardBuilder> { | |||
| private String cardId; | |||
| public WxCardBuilder() { | |||
| this.msgType = WxConsts.CUSTOM_MSG_WXCARD; | |||
| this.msgType = WxConsts.KefuMsgType.WXCARD; | |||
| } | |||
| public WxCardBuilder cardId(String cardId) { | |||
| @@ -23,25 +23,25 @@ public class WxMpKefuMessageGsonAdapter implements JsonSerializer<WxMpKefuMessag | |||
| messageJson.addProperty("touser", message.getToUser()); | |||
| messageJson.addProperty("msgtype", message.getMsgType()); | |||
| if (WxConsts.CUSTOM_MSG_TEXT.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.TEXT.equals(message.getMsgType())) { | |||
| JsonObject text = new JsonObject(); | |||
| text.addProperty("content", message.getContent()); | |||
| messageJson.add("text", text); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_IMAGE.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.IMAGE.equals(message.getMsgType())) { | |||
| JsonObject image = new JsonObject(); | |||
| image.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add("image", image); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_VOICE.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.VOICE.equals(message.getMsgType())) { | |||
| JsonObject voice = new JsonObject(); | |||
| voice.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add("voice", voice); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_VIDEO.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.VIDEO.equals(message.getMsgType())) { | |||
| JsonObject video = new JsonObject(); | |||
| video.addProperty("media_id", message.getMediaId()); | |||
| video.addProperty("thumb_media_id", message.getThumbMediaId()); | |||
| @@ -50,7 +50,7 @@ public class WxMpKefuMessageGsonAdapter implements JsonSerializer<WxMpKefuMessag | |||
| messageJson.add("video", video); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_MUSIC.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.MUSIC.equals(message.getMsgType())) { | |||
| JsonObject music = new JsonObject(); | |||
| music.addProperty("title", message.getTitle()); | |||
| music.addProperty("description", message.getDescription()); | |||
| @@ -60,7 +60,7 @@ public class WxMpKefuMessageGsonAdapter implements JsonSerializer<WxMpKefuMessag | |||
| messageJson.add("music", music); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_NEWS.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.NEWS.equals(message.getMsgType())) { | |||
| JsonObject newsJsonObject = new JsonObject(); | |||
| JsonArray articleJsonArray = new JsonArray(); | |||
| for (WxMpKefuMessage.WxArticle article : message.getArticles()) { | |||
| @@ -75,13 +75,13 @@ public class WxMpKefuMessageGsonAdapter implements JsonSerializer<WxMpKefuMessag | |||
| messageJson.add("news", newsJsonObject); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_MPNEWS.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.MPNEWS.equals(message.getMsgType())) { | |||
| JsonObject json = new JsonObject(); | |||
| json.addProperty("media_id", message.getMpNewsMediaId()); | |||
| messageJson.add("mpnews", json); | |||
| } | |||
| if (WxConsts.CUSTOM_MSG_WXCARD.equals(message.getMsgType())) { | |||
| if (WxConsts.KefuMsgType.WXCARD.equals(message.getMsgType())) { | |||
| JsonObject wxcard = new JsonObject(); | |||
| wxcard.addProperty("card_id", message.getCardId()); | |||
| messageJson.add("wxcard", wxcard); | |||
| @@ -26,30 +26,30 @@ public class WxMpMassOpenIdsMessageGsonAdapter implements JsonSerializer<WxMpMas | |||
| } | |||
| messageJson.add("touser", toUsers); | |||
| if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.MPNEWS.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add(WxConsts.MASS_MSG_NEWS, sub); | |||
| messageJson.add(WxConsts.MassMsgType.MPNEWS, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_TEXT.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.TEXT.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("content", message.getContent()); | |||
| messageJson.add(WxConsts.MASS_MSG_TEXT, sub); | |||
| messageJson.add(WxConsts.MassMsgType.TEXT, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_VOICE.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.VOICE.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add(WxConsts.MASS_MSG_VOICE, sub); | |||
| messageJson.add(WxConsts.MassMsgType.VOICE, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_IMAGE.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.IMAGE.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add(WxConsts.MASS_MSG_IMAGE, sub); | |||
| messageJson.add(WxConsts.MassMsgType.IMAGE, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_VIDEO.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.MPVIDEO.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add(WxConsts.MASS_MSG_VIDEO, sub); | |||
| messageJson.add(WxConsts.MassMsgType.MPVIDEO, sub); | |||
| } | |||
| messageJson.addProperty("msgtype", message.getMsgType()); | |||
| messageJson.addProperty("send_ignore_reprint", message.isSendIgnoreReprint() ? 0 : 1); | |||
| @@ -18,30 +18,30 @@ public class WxMpMassPreviewMessageGsonAdapter implements JsonSerializer<WxMpMas | |||
| JsonObject jsonObject = new JsonObject(); | |||
| jsonObject.addProperty("towxname", wxMpMassPreviewMessage.getToWxUserName()); | |||
| jsonObject.addProperty("touser", wxMpMassPreviewMessage.getToWxUserOpenid()); | |||
| if (WxConsts.MASS_MSG_NEWS.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| if (WxConsts.MassMsgType.MPNEWS.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| JsonObject news = new JsonObject(); | |||
| news.addProperty("media_id", wxMpMassPreviewMessage.getMediaId()); | |||
| jsonObject.add(WxConsts.MASS_MSG_NEWS, news); | |||
| jsonObject.add(WxConsts.MassMsgType.MPNEWS, news); | |||
| } | |||
| if (WxConsts.MASS_MSG_TEXT.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| if (WxConsts.MassMsgType.TEXT.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("content", wxMpMassPreviewMessage.getContent()); | |||
| jsonObject.add(WxConsts.MASS_MSG_TEXT, sub); | |||
| jsonObject.add(WxConsts.MassMsgType.TEXT, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_VOICE.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| if (WxConsts.MassMsgType.VOICE.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", wxMpMassPreviewMessage.getMediaId()); | |||
| jsonObject.add(WxConsts.MASS_MSG_VOICE, sub); | |||
| jsonObject.add(WxConsts.MassMsgType.VOICE, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_IMAGE.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| if (WxConsts.MassMsgType.IMAGE.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", wxMpMassPreviewMessage.getMediaId()); | |||
| jsonObject.add(WxConsts.MASS_MSG_IMAGE, sub); | |||
| jsonObject.add(WxConsts.MassMsgType.IMAGE, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_VIDEO.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| if (WxConsts.MassMsgType.MPVIDEO.equals(wxMpMassPreviewMessage.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", wxMpMassPreviewMessage.getMediaId()); | |||
| jsonObject.add(WxConsts.MASS_MSG_VIDEO, sub); | |||
| jsonObject.add(WxConsts.MassMsgType.MPVIDEO, sub); | |||
| } | |||
| jsonObject.addProperty("msgtype", wxMpMassPreviewMessage.getMsgType()); | |||
| return jsonObject; | |||
| @@ -32,30 +32,30 @@ public class WxMpMassTagMessageGsonAdapter implements JsonSerializer<WxMpMassTag | |||
| } | |||
| messageJson.add("filter", filter); | |||
| if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.MPNEWS.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add(WxConsts.MASS_MSG_NEWS, sub); | |||
| messageJson.add(WxConsts.MassMsgType.MPNEWS, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_TEXT.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.TEXT.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("content", message.getContent()); | |||
| messageJson.add(WxConsts.MASS_MSG_TEXT, sub); | |||
| messageJson.add(WxConsts.MassMsgType.TEXT, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_VOICE.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.VOICE.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add(WxConsts.MASS_MSG_VOICE, sub); | |||
| messageJson.add(WxConsts.MassMsgType.VOICE, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_IMAGE.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.IMAGE.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add(WxConsts.MASS_MSG_IMAGE, sub); | |||
| messageJson.add(WxConsts.MassMsgType.IMAGE, sub); | |||
| } | |||
| if (WxConsts.MASS_MSG_VIDEO.equals(message.getMsgType())) { | |||
| if (WxConsts.MassMsgType.MPVIDEO.equals(message.getMsgType())) { | |||
| JsonObject sub = new JsonObject(); | |||
| sub.addProperty("media_id", message.getMediaId()); | |||
| messageJson.add(WxConsts.MASS_MSG_VIDEO, sub); | |||
| messageJson.add(WxConsts.MassMsgType.MPVIDEO, sub); | |||
| } | |||
| messageJson.addProperty("msgtype", message.getMsgType()); | |||
| messageJson.addProperty("send_ignore_reprint", message.isSendIgnoreReprint() ? 0 : 1); | |||
| @@ -23,21 +23,21 @@ public class WxMpMessageRouterTest { | |||
| router | |||
| .rule() | |||
| .async(async) | |||
| .msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1").content("CONTENT_1") | |||
| .msgType(WxConsts.XmlMsgType.TEXT).event(WxConsts.EventType.CLICK).eventKey("KEY_1").content("CONTENT_1") | |||
| .handler(new WxEchoMpMessageHandler(sb, "COMBINE_4")) | |||
| .end() | |||
| .rule() | |||
| .async(async) | |||
| .msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1") | |||
| .msgType(WxConsts.XmlMsgType.TEXT).event(WxConsts.EventType.CLICK).eventKey("KEY_1") | |||
| .handler(new WxEchoMpMessageHandler(sb, "COMBINE_3")) | |||
| .end() | |||
| .rule() | |||
| .async(async) | |||
| .msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK) | |||
| .msgType(WxConsts.XmlMsgType.TEXT).event(WxConsts.EventType.CLICK) | |||
| .handler(new WxEchoMpMessageHandler(sb, "COMBINE_2")) | |||
| .end() | |||
| .rule().async(async).msgType(WxConsts.XML_MSG_TEXT).handler(new WxEchoMpMessageHandler(sb, WxConsts.XML_MSG_TEXT)).end() | |||
| .rule().async(async).event(WxConsts.EVT_CLICK).handler(new WxEchoMpMessageHandler(sb, WxConsts.EVT_CLICK)).end() | |||
| .rule().async(async).msgType(WxConsts.XmlMsgType.TEXT).handler(new WxEchoMpMessageHandler(sb, WxConsts.XmlMsgType.TEXT)).end() | |||
| .rule().async(async).event(WxConsts.EventType.CLICK).handler(new WxEchoMpMessageHandler(sb, WxConsts.EventType.CLICK)).end() | |||
| .rule().async(async).eventKey("KEY_1").handler(new WxEchoMpMessageHandler(sb, "KEY_1")).end() | |||
| .rule().async(async).eventKeyRegex("KEY_1*").handler(new WxEchoMpMessageHandler(sb, "KEY_123")).end() | |||
| .rule().async(async).content("CONTENT_1").handler(new WxEchoMpMessageHandler(sb, "CONTENT_1")).end() | |||
| @@ -101,10 +101,10 @@ public class WxMpMessageRouterTest { | |||
| @DataProvider(name = "messages-1") | |||
| public Object[][] messages2() { | |||
| WxMpXmlMessage message1 = new WxMpXmlMessage(); | |||
| message1.setMsgType(WxConsts.XML_MSG_TEXT); | |||
| message1.setMsgType(WxConsts.XmlMsgType.TEXT); | |||
| WxMpXmlMessage message2 = new WxMpXmlMessage(); | |||
| message2.setEvent(WxConsts.EVT_CLICK); | |||
| message2.setEvent(WxConsts.EventType.CLICK); | |||
| WxMpXmlMessage message3 = new WxMpXmlMessage(); | |||
| message3.setEventKey("KEY_1"); | |||
| @@ -122,23 +122,23 @@ public class WxMpMessageRouterTest { | |||
| message7.setFormat("strangeformat"); | |||
| WxMpXmlMessage c2 = new WxMpXmlMessage(); | |||
| c2.setMsgType(WxConsts.XML_MSG_TEXT); | |||
| c2.setEvent(WxConsts.EVT_CLICK); | |||
| c2.setMsgType(WxConsts.XmlMsgType.TEXT); | |||
| c2.setEvent(WxConsts.EventType.CLICK); | |||
| WxMpXmlMessage c3 = new WxMpXmlMessage(); | |||
| c3.setMsgType(WxConsts.XML_MSG_TEXT); | |||
| c3.setEvent(WxConsts.EVT_CLICK); | |||
| c3.setMsgType(WxConsts.XmlMsgType.TEXT); | |||
| c3.setEvent(WxConsts.EventType.CLICK); | |||
| c3.setEventKey("KEY_1"); | |||
| WxMpXmlMessage c4 = new WxMpXmlMessage(); | |||
| c4.setMsgType(WxConsts.XML_MSG_TEXT); | |||
| c4.setEvent(WxConsts.EVT_CLICK); | |||
| c4.setMsgType(WxConsts.XmlMsgType.TEXT); | |||
| c4.setEvent(WxConsts.EventType.CLICK); | |||
| c4.setEventKey("KEY_1"); | |||
| c4.setContent("CONTENT_1"); | |||
| return new Object[][]{ | |||
| new Object[]{message1, WxConsts.XML_MSG_TEXT + ","}, | |||
| new Object[]{message2, WxConsts.EVT_CLICK + ","}, | |||
| new Object[]{message1, WxConsts.XmlMsgType.TEXT + ","}, | |||
| new Object[]{message2, WxConsts.EventType.CLICK + ","}, | |||
| new Object[]{message3, "KEY_1,"}, | |||
| new Object[]{message4, "CONTENT_1,"}, | |||
| new Object[]{message5, "ALL,"}, | |||
| @@ -32,7 +32,7 @@ public class WxMpKefuServiceImplTest { | |||
| TestConfigStorage configStorage = (TestConfigStorage) this.wxService | |||
| .getWxMpConfigStorage(); | |||
| WxMpKefuMessage message = new WxMpKefuMessage(); | |||
| message.setMsgType(WxConsts.CUSTOM_MSG_MPNEWS); | |||
| message.setMsgType(WxConsts.KefuMsgType.MPNEWS); | |||
| message.setToUser(configStorage.getOpenid()); | |||
| message.setMpNewsMediaId("52R6dL2FxDpM9N1rCY3sYBqHwq-L7K_lz1sPI71idMg"); | |||
| @@ -43,7 +43,7 @@ public class WxMpKefuServiceImplTest { | |||
| TestConfigStorage configStorage = (TestConfigStorage) this.wxService | |||
| .getWxMpConfigStorage(); | |||
| WxMpKefuMessage message = new WxMpKefuMessage(); | |||
| message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | |||
| message.setMsgType(WxConsts.KefuMsgType.TEXT); | |||
| message.setToUser(configStorage.getOpenid()); | |||
| message.setContent( | |||
| "欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | |||
| @@ -55,7 +55,7 @@ public class WxMpKefuServiceImplTest { | |||
| TestConfigStorage configStorage = (TestConfigStorage) this.wxService | |||
| .getWxMpConfigStorage(); | |||
| WxMpKefuMessage message = new WxMpKefuMessage(); | |||
| message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | |||
| message.setMsgType(WxConsts.KefuMsgType.TEXT); | |||
| message.setToUser(configStorage.getOpenid()); | |||
| message.setKfAccount(configStorage.getKfAccount()); | |||
| message.setContent( | |||
| @@ -38,7 +38,7 @@ public class WxMpMassMessageServiceImplTest { | |||
| TestConfigStorage configProvider = (TestConfigStorage) this.wxService | |||
| .getWxMpConfigStorage(); | |||
| WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); | |||
| massMessage.setMsgType(WxConsts.MASS_MSG_TEXT); | |||
| massMessage.setMsgType(WxConsts.MassMsgType.TEXT); | |||
| massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | |||
| massMessage.getToUsers().add(configProvider.getOpenid()); | |||
| @@ -67,7 +67,7 @@ public class WxMpMassMessageServiceImplTest { | |||
| @Test | |||
| public void testTextMassGroupMessageSend() throws WxErrorException { | |||
| WxMpMassTagMessage massMessage = new WxMpMassTagMessage(); | |||
| massMessage.setMsgType(WxConsts.MASS_MSG_TEXT); | |||
| massMessage.setMsgType(WxConsts.MassMsgType.TEXT); | |||
| massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | |||
| massMessage | |||
| .setTagId(this.wxService.getUserTagService().tagGet().get(0).getId()); | |||
| @@ -103,7 +103,7 @@ public class WxMpMassMessageServiceImplTest { | |||
| .getSystemResourceAsStream("mm.mp4")) { | |||
| // 上传视频到媒体库 | |||
| WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | |||
| .mediaUpload(WxConsts.MEDIA_VIDEO, TestConstants.FILE_MP4, inputStream); | |||
| .mediaUpload(WxConsts.MediaFileType.VIDEO, TestConstants.FILE_MP4, inputStream); | |||
| assertNotNull(uploadMediaRes); | |||
| assertNotNull(uploadMediaRes.getMediaId()); | |||
| @@ -115,7 +115,7 @@ public class WxMpMassMessageServiceImplTest { | |||
| WxMpMassUploadResult uploadResult = this.wxService.getMassMessageService().massVideoUpload(video); | |||
| assertNotNull(uploadResult); | |||
| assertNotNull(uploadResult.getMediaId()); | |||
| messages[0] = new Object[]{WxConsts.MASS_MSG_VIDEO, uploadResult.getMediaId()}; | |||
| messages[0] = new Object[]{WxConsts.MassMsgType.MPVIDEO, uploadResult.getMediaId()}; | |||
| } | |||
| /* | |||
| @@ -124,10 +124,10 @@ public class WxMpMassMessageServiceImplTest { | |||
| try (InputStream inputStream = ClassLoader | |||
| .getSystemResourceAsStream("mm.jpeg")) { | |||
| WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | |||
| .mediaUpload(WxConsts.MEDIA_IMAGE, TestConstants.FILE_JPG, inputStream); | |||
| .mediaUpload(WxConsts.MediaFileType.IMAGE, TestConstants.FILE_JPG, inputStream); | |||
| assertNotNull(uploadMediaRes); | |||
| assertNotNull(uploadMediaRes.getMediaId()); | |||
| messages[1] = new Object[]{WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId()}; | |||
| messages[1] = new Object[]{WxConsts.MassMsgType.IMAGE, uploadMediaRes.getMediaId()}; | |||
| } | |||
| /* | |||
| @@ -136,10 +136,10 @@ public class WxMpMassMessageServiceImplTest { | |||
| try (InputStream inputStream = ClassLoader | |||
| .getSystemResourceAsStream("mm.mp3")) { | |||
| WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | |||
| .mediaUpload(WxConsts.MEDIA_VOICE, TestConstants.FILE_MP3, inputStream); | |||
| .mediaUpload(WxConsts.MediaFileType.VOICE, TestConstants.FILE_MP3, inputStream); | |||
| assertNotNull(uploadMediaRes); | |||
| assertNotNull(uploadMediaRes.getMediaId()); | |||
| messages[2] = new Object[]{WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMediaId()}; | |||
| messages[2] = new Object[]{WxConsts.MassMsgType.VOICE, uploadMediaRes.getMediaId()}; | |||
| } | |||
| /* | |||
| @@ -149,7 +149,7 @@ public class WxMpMassMessageServiceImplTest { | |||
| .getSystemResourceAsStream("mm.jpeg")) { | |||
| // 上传照片到媒体库 | |||
| WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | |||
| .mediaUpload(WxConsts.MEDIA_IMAGE, TestConstants.FILE_JPG, inputStream); | |||
| .mediaUpload(WxConsts.MediaFileType.IMAGE, TestConstants.FILE_JPG, inputStream); | |||
| assertNotNull(uploadMediaRes); | |||
| assertNotNull(uploadMediaRes.getMediaId()); | |||
| @@ -175,7 +175,7 @@ public class WxMpMassMessageServiceImplTest { | |||
| .massNewsUpload(news); | |||
| assertNotNull(massUploadResult); | |||
| assertNotNull(uploadMediaRes.getMediaId()); | |||
| messages[3] = new Object[]{WxConsts.MASS_MSG_NEWS, massUploadResult.getMediaId()}; | |||
| messages[3] = new Object[]{WxConsts.MassMsgType.MPNEWS, massUploadResult.getMediaId()}; | |||
| } | |||
| return messages; | |||
| @@ -48,10 +48,10 @@ public class WxMpMaterialServiceImplTest { | |||
| @DataProvider | |||
| public Object[][] mediaFiles() { | |||
| return new Object[][]{ | |||
| new Object[]{WxConsts.MEDIA_IMAGE, TestConstants.FILE_JPG, "mm.jpeg"}, | |||
| new Object[]{WxConsts.MEDIA_VOICE, TestConstants.FILE_MP3, "mm.mp3"}, | |||
| new Object[]{WxConsts.MEDIA_VIDEO, TestConstants.FILE_MP4, "mm.mp4"}, | |||
| new Object[]{WxConsts.MEDIA_THUMB, TestConstants.FILE_JPG, "mm.jpeg"} | |||
| new Object[]{WxConsts.MediaFileType.IMAGE, TestConstants.FILE_JPG, "mm.jpeg"}, | |||
| new Object[]{WxConsts.MediaFileType.VOICE, TestConstants.FILE_MP3, "mm.mp3"}, | |||
| new Object[]{WxConsts.MediaFileType.VIDEO, TestConstants.FILE_MP4, "mm.mp4"}, | |||
| new Object[]{WxConsts.MediaFileType.THUMB, TestConstants.FILE_JPG, "mm.jpeg"} | |||
| }; | |||
| } | |||
| @@ -69,7 +69,7 @@ public class WxMpMaterialServiceImplTest { | |||
| WxMpMaterial wxMaterial = new WxMpMaterial(); | |||
| wxMaterial.setFile(tempFile); | |||
| wxMaterial.setName(fileName); | |||
| if (WxConsts.MEDIA_VIDEO.equals(mediaType)) { | |||
| if (WxConsts.MediaFileType.VIDEO.equals(mediaType)) { | |||
| wxMaterial.setVideoTitle("title"); | |||
| wxMaterial.setVideoIntroduction("test video description"); | |||
| } | |||
| @@ -78,12 +78,12 @@ public class WxMpMaterialServiceImplTest { | |||
| .materialFileUpload(mediaType, wxMaterial); | |||
| assertNotNull(res.getMediaId()); | |||
| if (WxConsts.MEDIA_IMAGE.equals(mediaType) | |||
| || WxConsts.MEDIA_THUMB.equals(mediaType)) { | |||
| if (WxConsts.MediaFileType.IMAGE.equals(mediaType) | |||
| || WxConsts.MediaFileType.THUMB.equals(mediaType)) { | |||
| assertNotNull(res.getUrl()); | |||
| } | |||
| if (WxConsts.MEDIA_THUMB.equals(mediaType)) { | |||
| if (WxConsts.MediaFileType.THUMB.equals(mediaType)) { | |||
| this.thumbMediaId = res.getMediaId(); | |||
| } | |||
| @@ -233,9 +233,9 @@ public class WxMpMaterialServiceImplTest { | |||
| @Test//(dependsOnMethods = {"testMaterialNewsList"}) | |||
| public void testMaterialFileList() throws WxErrorException { | |||
| WxMpMaterialFileBatchGetResult wxMpMaterialVoiceBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MATERIAL_VOICE, 0, 20); | |||
| WxMpMaterialFileBatchGetResult wxMpMaterialVideoBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MATERIAL_VIDEO, 0, 20); | |||
| WxMpMaterialFileBatchGetResult wxMpMaterialImageBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MATERIAL_IMAGE, 0, 20); | |||
| WxMpMaterialFileBatchGetResult wxMpMaterialVoiceBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MaterialType.VOICE, 0, 20); | |||
| WxMpMaterialFileBatchGetResult wxMpMaterialVideoBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MaterialType.VIDEO, 0, 20); | |||
| WxMpMaterialFileBatchGetResult wxMpMaterialImageBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MaterialType.IMAGE, 0, 20); | |||
| assertNotNull(wxMpMaterialVoiceBatchGetResult); | |||
| assertNotNull(wxMpMaterialVideoBatchGetResult); | |||
| assertNotNull(wxMpMaterialImageBatchGetResult); | |||
| @@ -277,7 +277,7 @@ public class WxMpMaterialServiceImplTest { | |||
| assertNotNull(res.getCreatedAt()); | |||
| assertTrue(res.getMediaId() != null || res.getThumbMediaId() != null); | |||
| if (res.getMediaId() != null && !mediaType.equals(WxConsts.MEDIA_VIDEO)) { | |||
| if (res.getMediaId() != null && !mediaType.equals(WxConsts.MediaFileType.VIDEO)) { | |||
| //video 不支持下载,所以不加入 | |||
| this.mediaIdsToDownload.add(res.getMediaId()); | |||
| } | |||
| @@ -156,12 +156,12 @@ public class WxMpMenuServiceImplTest { | |||
| public Object[][] getMenu() { | |||
| WxMenu menu = new WxMenu(); | |||
| WxMenuButton button1 = new WxMenuButton(); | |||
| button1.setType(WxConsts.BUTTON_CLICK); | |||
| button1.setType(WxConsts.MenuButtonType.CLICK); | |||
| button1.setName("今日歌曲"); | |||
| button1.setKey("V1001_TODAY_MUSIC"); | |||
| // WxMenuButton button2 = new WxMenuButton(); | |||
| // button2.setType(WxConsts.BUTTON_MINIPROGRAM); | |||
| // button2.setType(WxConsts.MenuButtonType.MINIPROGRAM); | |||
| // button2.setName("小程序"); | |||
| // button2.setAppId("wx286b93c14bbf93aa"); | |||
| // button2.setPagePath("pages/lunar/index.html"); | |||
| @@ -175,17 +175,17 @@ public class WxMpMenuServiceImplTest { | |||
| menu.getButtons().add(button3); | |||
| WxMenuButton button31 = new WxMenuButton(); | |||
| button31.setType(WxConsts.BUTTON_VIEW); | |||
| button31.setType(WxConsts.MenuButtonType.VIEW); | |||
| button31.setName("搜索"); | |||
| button31.setUrl("http://www.soso.com/"); | |||
| WxMenuButton button32 = new WxMenuButton(); | |||
| button32.setType(WxConsts.BUTTON_VIEW); | |||
| button32.setType(WxConsts.MenuButtonType.VIEW); | |||
| button32.setName("视频"); | |||
| button32.setUrl("http://v.qq.com/"); | |||
| WxMenuButton button33 = new WxMenuButton(); | |||
| button33.setType(WxConsts.BUTTON_CLICK); | |||
| button33.setType(WxConsts.MenuButtonType.CLICK); | |||
| button33.setName("赞一下我们"); | |||
| button33.setKey("V1001_GOOD"); | |||
| @@ -116,7 +116,7 @@ public class WxMpServiceImplTest { | |||
| public void testBuildQrConnectUrl() { | |||
| String qrconnectRedirectUrl = ((TestConfigStorage) this.wxService.getWxMpConfigStorage()).getQrconnectRedirectUrl(); | |||
| String qrConnectUrl = this.wxService.buildQrConnectUrl(qrconnectRedirectUrl, | |||
| WxConsts.QRCONNECT_SCOPE_SNSAPI_LOGIN, null); | |||
| WxConsts.QrConnectScope.SNSAPI_LOGIN, null); | |||
| Assert.assertNotNull(qrConnectUrl); | |||
| System.out.println(qrConnectUrl); | |||
| } | |||
| @@ -11,7 +11,7 @@ public class WxMpKefuMessageTest { | |||
| public void testTextReply() { | |||
| WxMpKefuMessage reply = new WxMpKefuMessage(); | |||
| reply.setToUser("OPENID"); | |||
| reply.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | |||
| reply.setMsgType(WxConsts.KefuMsgType.TEXT); | |||
| reply.setContent("sfsfdsdf"); | |||
| Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"text\",\"text\":{\"content\":\"sfsfdsdf\"}}"); | |||
| } | |||
| @@ -24,7 +24,7 @@ public class WxMpKefuMessageTest { | |||
| public void testImageReply() { | |||
| WxMpKefuMessage reply = new WxMpKefuMessage(); | |||
| reply.setToUser("OPENID"); | |||
| reply.setMsgType(WxConsts.CUSTOM_MSG_IMAGE); | |||
| reply.setMsgType(WxConsts.KefuMsgType.IMAGE); | |||
| reply.setMediaId("MEDIA_ID"); | |||
| Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"image\",\"image\":{\"media_id\":\"MEDIA_ID\"}}"); | |||
| } | |||
| @@ -37,7 +37,7 @@ public class WxMpKefuMessageTest { | |||
| public void testVoiceReply() { | |||
| WxMpKefuMessage reply = new WxMpKefuMessage(); | |||
| reply.setToUser("OPENID"); | |||
| reply.setMsgType(WxConsts.CUSTOM_MSG_VOICE); | |||
| reply.setMsgType(WxConsts.KefuMsgType.VOICE); | |||
| reply.setMediaId("MEDIA_ID"); | |||
| Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"voice\",\"voice\":{\"media_id\":\"MEDIA_ID\"}}"); | |||
| } | |||
| @@ -50,7 +50,7 @@ public class WxMpKefuMessageTest { | |||
| public void testVideoReply() { | |||
| WxMpKefuMessage reply = new WxMpKefuMessage(); | |||
| reply.setToUser("OPENID"); | |||
| reply.setMsgType(WxConsts.CUSTOM_MSG_VIDEO); | |||
| reply.setMsgType(WxConsts.KefuMsgType.VIDEO); | |||
| reply.setMediaId("MEDIA_ID"); | |||
| reply.setThumbMediaId("MEDIA_ID"); | |||
| reply.setTitle("TITLE"); | |||
| @@ -66,7 +66,7 @@ public class WxMpKefuMessageTest { | |||
| public void testMusicReply() { | |||
| WxMpKefuMessage reply = new WxMpKefuMessage(); | |||
| reply.setToUser("OPENID"); | |||
| reply.setMsgType(WxConsts.CUSTOM_MSG_MUSIC); | |||
| reply.setMsgType(WxConsts.KefuMsgType.MUSIC); | |||
| reply.setThumbMediaId("MEDIA_ID"); | |||
| reply.setDescription("DESCRIPTION"); | |||
| reply.setTitle("TITLE"); | |||
| @@ -90,7 +90,7 @@ public class WxMpKefuMessageTest { | |||
| public void testNewsReply() { | |||
| WxMpKefuMessage reply = new WxMpKefuMessage(); | |||
| reply.setToUser("OPENID"); | |||
| reply.setMsgType(WxConsts.CUSTOM_MSG_NEWS); | |||
| reply.setMsgType(WxConsts.KefuMsgType.NEWS); | |||
| WxArticle article1 = new WxArticle(); | |||
| article1.setUrl("URL"); | |||
| @@ -58,7 +58,7 @@ public class WxMpXmlMessageTest { | |||
| assertEquals(wxMessage.getToUser(), "toUser"); | |||
| assertEquals(wxMessage.getFromUser(), "fromUser"); | |||
| assertEquals(wxMessage.getCreateTime(), new Long(1348831860L)); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.TEXT); | |||
| assertEquals(wxMessage.getContent(), "this is a test"); | |||
| assertEquals(wxMessage.getMsgId(), new Long(1234567890123456L)); | |||
| assertEquals(wxMessage.getPicUrl(), "this is a url"); | |||
| @@ -139,7 +139,7 @@ public class WxMpXmlMessageTest { | |||
| assertEquals(wxMessage.getToUser(), "toUser"); | |||
| assertEquals(wxMessage.getFromUser(), "fromUser"); | |||
| assertEquals(wxMessage.getCreateTime(), new Long(1348831860L)); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XML_MSG_TEXT); | |||
| assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.TEXT); | |||
| assertEquals(wxMessage.getContent(), "this is a test"); | |||
| assertEquals(wxMessage.getMsgId(), new Long(1234567890123456L)); | |||
| assertEquals(wxMessage.getPicUrl(), "this is a url"); | |||
| @@ -19,7 +19,7 @@ public class DemoImageHandler implements WxMpMessageHandler { | |||
| WxMpService wxMpService, WxSessionManager sessionManager) { | |||
| try { | |||
| WxMediaUploadResult wxMediaUploadResult = wxMpService.getMaterialService() | |||
| .mediaUpload(WxConsts.MEDIA_IMAGE, TestConstants.FILE_JPG, ClassLoader.getSystemResourceAsStream("mm.jpeg")); | |||
| .mediaUpload(WxConsts.MediaFileType.IMAGE, TestConstants.FILE_JPG, ClassLoader.getSystemResourceAsStream("mm.jpeg")); | |||
| WxMpXmlOutImageMessage m | |||
| = WxMpXmlOutMessage | |||
| .IMAGE() | |||
| @@ -19,7 +19,7 @@ public class DemoOAuth2Handler implements WxMpMessageHandler { | |||
| WxSessionManager sessionManager) { | |||
| String href = "<a href=\"" + wxMpService.oauth2buildAuthorizationUrl( | |||
| wxMpService.getWxMpConfigStorage().getOauth2redirectUri(), | |||
| WxConsts.OAUTH2_SCOPE_USER_INFO, null) + "\">测试oauth2</a>"; | |||
| WxConsts.OAuth2Scope.SNSAPI_USERINFO, null) + "\">测试oauth2</a>"; | |||
| return WxMpXmlOutMessage.TEXT().content(href) | |||
| .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()) | |||
| .build(); | |||
| @@ -58,7 +58,7 @@ public class WxMpDemoServer { | |||
| wxMpMessageRouter = new WxMpMessageRouter(wxMpService); | |||
| wxMpMessageRouter.rule().handler(logHandler).next().rule() | |||
| .msgType(WxConsts.XML_MSG_TEXT).matcher(guessNumberHandler) | |||
| .msgType(WxConsts.XmlMsgType.TEXT).matcher(guessNumberHandler) | |||
| .handler(guessNumberHandler).end().rule().async(false).content("哈哈") | |||
| .handler(textHandler).end().rule().async(false).content("图片") | |||
| .handler(imageHandler).end().rule().async(false).content("oauth") | |||