Browse Source

Merge pull request #83 from johnnytung/develop

增加对微信硬件平台事件消息的支持
master
Binary Wang 8 years ago
committed by GitHub
parent
commit
fd4505d606
2 changed files with 122 additions and 5 deletions
  1. +5
    -0
      weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java
  2. +117
    -5
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java

+ 5
- 0
weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java View File

@@ -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";


///////////////////////
// 主动发送消息(即客服消息)的消息类型
///////////////////////


+ 117
- 5
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java View File

@@ -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}
* </pre>
*
*/
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


Loading…
Cancel
Save