From a26715cb4cd4f483c962e37b6963cb7d84886e22 Mon Sep 17 00:00:00 2001 From: dongfuqiang Date: Thu, 24 Nov 2016 20:03:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E7=A1=AC=E4=BB=B6=E5=B9=B3=E5=8F=B0=E4=BA=8B=E4=BB=B6=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chanjar/weixin/common/api/WxConsts.java | 5 + .../mp/bean/message/WxMpXmlMessage.java | 122 +++++++++++++++++- 2 files changed, 122 insertions(+), 5 deletions(-) diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java index 3bfd1175..3553c5f6 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java @@ -18,8 +18,13 @@ public class WxConsts { 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"; + /////////////////////// // 主动发送消息(即客服消息)的消息类型 /////////////////////// diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java index 732c0d54..8fa9a6a0 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java @@ -263,6 +263,81 @@ public class WxMpXmlMessage implements Serializable { @XStreamAlias("FailReason") private String failReason; + + /////////////////////////////////////// + // 微信硬件平台相关事件推送 + /////////////////////////////////////// + /** + * 设备类型,目前为"公众账号原始ID" + */ + @XStreamAlias("DeviceType") + @XStreamConverter(value = XStreamCDataConverter.class) + private String deviceType; + + /** + * 设备ID,第三方提供 + */ + @XStreamAlias("DeviceId") + @XStreamConverter(value = XStreamCDataConverter.class) + private String deviceId; + + + @XStreamAlias("HardWare") + private HardWare hardWare = new HardWare(); + + /** + * 请求类型:0:退订设备状态;1:心跳;(心跳的处理方式跟订阅一样)2:订阅设备状态 + */ + @XStreamAlias("OpType") + private Integer opType; + + /** + * 设备状态:0:未连接;1:已连接 + */ + @XStreamAlias("DeviceStatus") + private Integer deviceStatus; + + public Integer getOpType() { + return opType; + } + + public void setOpType(Integer opType) { + this.opType = opType; + } + + public Integer getDeviceStatus() { + + return deviceStatus; + } + + public void setDeviceStatus(Integer deviceStatus) { + this.deviceStatus = deviceStatus; + } + + public HardWare getHardWare() { + return hardWare; + } + + public void setHardWare(HardWare hardWare) { + this.hardWare = hardWare; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + public Long getExpiredTime() { return this.expiredTime; } @@ -346,7 +421,6 @@ public class WxMpXmlMessage implements Serializable { * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_LINK} * {@link me.chanjar.weixin.common.api.WxConsts#XML_MSG_EVENT} * - * */ public String getMsgType() { return this.msgType; @@ -555,8 +629,8 @@ public class WxMpXmlMessage implements Serializable { * @param msgSignature */ public static WxMpXmlMessage fromEncryptedXml(String encryptedXml, - WxMpConfigStorage wxMpConfigStorage, String timestamp, String nonce, - String msgSignature) { + WxMpConfigStorage wxMpConfigStorage, String timestamp, String nonce, + String msgSignature) { WxMpCryptUtil cryptUtil = new WxMpCryptUtil(wxMpConfigStorage); String plainText = cryptUtil.decrypt(msgSignature, timestamp, nonce, encryptedXml); @@ -564,8 +638,8 @@ public class WxMpXmlMessage implements Serializable { } public static WxMpXmlMessage fromEncryptedXml(InputStream is, - WxMpConfigStorage wxMpConfigStorage, String timestamp, String nonce, - String msgSignature) { + WxMpConfigStorage wxMpConfigStorage, String timestamp, String nonce, + String msgSignature) { try { return fromEncryptedXml(IOUtils.toString(is, "UTF-8"), wxMpConfigStorage, timestamp, nonce, msgSignature); @@ -719,6 +793,44 @@ public class WxMpXmlMessage implements Serializable { this.fromKfAccount = fromKfAccount; } + @XStreamAlias("HardWare") + public static class HardWare { + @Override + public String toString() { + return ToStringUtils.toSimpleString(this); + } + + /** + * 消息展示,目前支持myrank(排行榜) + */ + @XStreamAlias("MessageView") + @XStreamConverter(value = XStreamCDataConverter.class) + private String messageView; + + /** + * 消息点击动作,目前支持ranklist(点击跳转排行榜) + */ + @XStreamAlias("MessageAction") + @XStreamConverter(value = XStreamCDataConverter.class) + private String messageAction; + + public String getMessageView() { + return messageView; + } + + public void setMessageView(String messageView) { + this.messageView = messageView; + } + + public String getMessageAction() { + return messageAction; + } + + public void setMessageAction(String messageAction) { + this.messageAction = messageAction; + } + } + @XStreamAlias("ScanCodeInfo") public static class ScanCodeInfo { @Override