mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-11-01 00:46:54 +08:00 
			
		
		
		
	🆕 增加 WxMpXmlOutMessage 返回包含被加密信息对象的方法
This commit is contained in:
		| @@ -1,10 +1,12 @@ | ||||
| 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.JacksonXmlRootElement; | ||||
| import com.thoughtworks.xstream.annotations.XStreamAlias; | ||||
| import com.thoughtworks.xstream.annotations.XStreamConverter; | ||||
| import lombok.Data; | ||||
| import me.chanjar.weixin.common.util.crypto.WxCryptUtil; | ||||
| import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; | ||||
| import me.chanjar.weixin.mp.config.WxMpConfigStorage; | ||||
| import me.chanjar.weixin.mp.builder.outxml.*; | ||||
| @@ -20,13 +22,15 @@ public abstract class WxMpXmlOutMessage implements Serializable { | ||||
|   private static final long serialVersionUID = -381382011286216263L; | ||||
|  | ||||
|   @XStreamAlias("ToUserName") | ||||
|   @JacksonXmlProperty(localName = "ToUserName") | ||||
|   @XStreamConverter(value = XStreamCDataConverter.class) | ||||
|   @JacksonXmlProperty(localName = "ToUserName") | ||||
|   @JacksonXmlCData | ||||
|   protected String toUserName; | ||||
|  | ||||
|   @XStreamAlias("FromUserName") | ||||
|   @JacksonXmlProperty(localName = "FromUserName") | ||||
|   @XStreamConverter(value = XStreamCDataConverter.class) | ||||
|   @JacksonXmlProperty(localName = "ToUserName") | ||||
|   @JacksonXmlCData | ||||
|   protected String fromUserName; | ||||
|  | ||||
|   @XStreamAlias("CreateTime") | ||||
| @@ -34,10 +38,36 @@ public abstract class WxMpXmlOutMessage implements Serializable { | ||||
|   protected Long createTime; | ||||
|  | ||||
|   @XStreamAlias("MsgType") | ||||
|   @JacksonXmlProperty(localName = "MsgType") | ||||
|   @XStreamConverter(value = XStreamCDataConverter.class) | ||||
|   @JacksonXmlProperty(localName = "MsgType") | ||||
|   @JacksonXmlCData | ||||
|   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 | ||||
|    */ | ||||
| @@ -99,6 +129,21 @@ public abstract class WxMpXmlOutMessage implements Serializable { | ||||
|     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格式 | ||||
|    */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Scruel Tao
					Scruel Tao