mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-06-28 13:16:19 +08:00
🆕 增加 WxMpXmlOutMessage 返回包含被加密信息对象的方法
This commit is contained in:
parent
05fd45b853
commit
3f8b6e1c7a
@ -1,10 +1,12 @@
|
|||||||
package me.chanjar.weixin.mp.bean.message;
|
package me.chanjar.weixin.mp.bean.message;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlCData;
|
||||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
|
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
|
||||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||||
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import me.chanjar.weixin.common.util.crypto.WxCryptUtil;
|
||||||
import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
|
import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
|
||||||
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
|
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
|
||||||
import me.chanjar.weixin.mp.builder.outxml.*;
|
import me.chanjar.weixin.mp.builder.outxml.*;
|
||||||
@ -20,13 +22,15 @@ public abstract class WxMpXmlOutMessage implements Serializable {
|
|||||||
private static final long serialVersionUID = -381382011286216263L;
|
private static final long serialVersionUID = -381382011286216263L;
|
||||||
|
|
||||||
@XStreamAlias("ToUserName")
|
@XStreamAlias("ToUserName")
|
||||||
@JacksonXmlProperty(localName = "ToUserName")
|
|
||||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
|
@JacksonXmlProperty(localName = "ToUserName")
|
||||||
|
@JacksonXmlCData
|
||||||
protected String toUserName;
|
protected String toUserName;
|
||||||
|
|
||||||
@XStreamAlias("FromUserName")
|
@XStreamAlias("FromUserName")
|
||||||
@JacksonXmlProperty(localName = "FromUserName")
|
|
||||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
|
@JacksonXmlProperty(localName = "ToUserName")
|
||||||
|
@JacksonXmlCData
|
||||||
protected String fromUserName;
|
protected String fromUserName;
|
||||||
|
|
||||||
@XStreamAlias("CreateTime")
|
@XStreamAlias("CreateTime")
|
||||||
@ -34,10 +38,36 @@ public abstract class WxMpXmlOutMessage implements Serializable {
|
|||||||
protected Long createTime;
|
protected Long createTime;
|
||||||
|
|
||||||
@XStreamAlias("MsgType")
|
@XStreamAlias("MsgType")
|
||||||
@JacksonXmlProperty(localName = "MsgType")
|
|
||||||
@XStreamConverter(value = XStreamCDataConverter.class)
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
|
@JacksonXmlProperty(localName = "MsgType")
|
||||||
|
@JacksonXmlCData
|
||||||
protected String msgType;
|
protected String msgType;
|
||||||
|
|
||||||
|
|
||||||
|
@XStreamAlias("Encrypt")
|
||||||
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
|
@JacksonXmlProperty(localName = "Encrypt")
|
||||||
|
@JacksonXmlCData
|
||||||
|
private String encrypt;
|
||||||
|
|
||||||
|
@XStreamAlias("MsgSignature")
|
||||||
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
|
@JacksonXmlProperty(localName = "MsgSignature")
|
||||||
|
@JacksonXmlCData
|
||||||
|
private String msgSignature;
|
||||||
|
|
||||||
|
@XStreamAlias("TimeStamp")
|
||||||
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
|
@JacksonXmlProperty(localName = "TimeStamp")
|
||||||
|
@JacksonXmlCData
|
||||||
|
private String timeStamp;
|
||||||
|
|
||||||
|
@XStreamAlias("Nonce")
|
||||||
|
@XStreamConverter(value = XStreamCDataConverter.class)
|
||||||
|
@JacksonXmlProperty(localName = "Nonce")
|
||||||
|
@JacksonXmlCData
|
||||||
|
private String nonce;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得文本消息builder
|
* 获得文本消息builder
|
||||||
*/
|
*/
|
||||||
@ -99,6 +129,21 @@ public abstract class WxMpXmlOutMessage implements Serializable {
|
|||||||
return XStreamTransformer.toXml((Class<WxMpXmlOutMessage>) this.getClass(), this);
|
return XStreamTransformer.toXml((Class<WxMpXmlOutMessage>) this.getClass(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换成加密的结果
|
||||||
|
*/
|
||||||
|
public WxMpXmlOutMessage toEncrypted(WxMpConfigStorage wxMpConfigStorage) {
|
||||||
|
String plainXml = toXml();
|
||||||
|
WxMpCryptUtil pc = new WxMpCryptUtil(wxMpConfigStorage);
|
||||||
|
WxCryptUtil.EncryptContext context = pc.encryptContext(plainXml);
|
||||||
|
WxMpXmlOutMessage res = new WxMpXmlOutMessage() {};
|
||||||
|
res.setNonce(context.getNonce());
|
||||||
|
res.setEncrypt(context.getEncrypt());
|
||||||
|
res.setTimeStamp(context.getTimeStamp());
|
||||||
|
res.setMsgSignature(context.getSignature());
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转换成加密的xml格式
|
* 转换成加密的xml格式
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user