public void RegexTest() { string regexXmlText = @"<?xml version=""1.0"" encoding=""utf-8""?> <xml> <ToUserName><![CDATA[gh_a96a4a619366]]></ToUserName> <FromUserName><![CDATA[olPjZjsXuQPJoV0HlruZkNzKc91E]]></FromUserName> <CreateTime>1357986928</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[13987654321]]></Content> <MsgId>5832509444155992351</MsgId> </xml> "; var messageHandler = new CustomMessageHandlers(XDocument.Parse(regexXmlText)); messageHandler.DefaultMessageHandlerAsyncEvent = NeuChar.MessageHandlers.DefaultMessageHandlerAsyncEvent.SelfSynicMethod; messageHandler.ExecuteAsync(new CancellationToken()).GetAwaiter().GetResult(); Assert.IsNotNull(messageHandler.ResponseMessage); Assert.IsInstanceOfType(messageHandler.ResponseMessage, typeof(ResponseMessageText)); Console.WriteLine(messageHandler.ResponseMessage.ToJson(true)); }
public async Task PureEcryptMessageRequestTest() { //纯安全模式测试 var ecryptXml = @"<?xml version=""1.0"" encoding=""utf-8""?> <xml> <ToUserName><![CDATA[gh_a96a4a619366]]></ToUserName> <Encrypt><![CDATA[LasT9+F3u/TTDVh3wUdOXtaMF/uJe8kKvvzZ54avW/DU8pSuJFy815e2rAFBz8bHNK+271sLFLbwBLHr2BOAHS32irOMt8Pwza4tm6TU+C6zWS00SLeF1RPTCd2EyGawFu9jlYHkjxc9kX5PovDI6FoiPs3LcVU2kpu2wE/cdqHsVvt583C8ynagjq3DAh62B8E1Uz9I7lM56J6siW+m82OPFaRJfRSWO6pLuGj8LnBJp0sUah27jJ4COSYuc6VQaf/LaO2K5zDgXklDmDxw/6rQeY1gJLIRuoKLEVUOLaJN3UYTgEjJmAMd1vHbEF12Ex6YYxVRW280IWlLDixgLsvpBkrSUoqXAFmQfNcRJZf3Yr/MSGlpsoUVRfNP7iJ70OtzVU3lbKcMmnn5FbB0EHNzJJSBVM/XPLr9VD9Ac+g=]]></Encrypt> </xml> "; var postModel = new PostModel() { Msg_Signature = "20f4a1263d198b696e6958e0d65e928aa68f7d96", Timestamp = "1570032739", Nonce = "2068872452", Token = "weixin", EncodingAESKey = "mNnY5GekpChwqhy2c4NBH90g3hND6GeI4gii2YCvKLY", AppId = "wx669ef95216eef885" }; var messageHandlers = new CustomMessageHandlers(XDocument.Parse(ecryptXml), postModel); messageHandlers.DefaultMessageHandlerAsyncEvent = NeuChar.MessageHandlers.DefaultMessageHandlerAsyncEvent.SelfSynicMethod; messageHandlers.OmitRepeatedMessage = false;//不去重 Assert.IsNotNull(messageHandlers.RequestDocument); Assert.IsNotNull(messageHandlers.RequestMessage); Assert.IsNotNull(messageHandlers.RequestMessage.Encrypt); Assert.IsNotNull(messageHandlers.RequestMessage.FromUserName); Assert.IsNotNull(messageHandlers.EcryptRequestDocument); Assert.IsTrue(messageHandlers.UsingEcryptMessage); Assert.IsFalse(messageHandlers.UsingCompatibilityModelEcryptMessage); Console.WriteLine("RequestMessage:"); Console.WriteLine(messageHandlers.RequestMessage.ToJson(true)); await messageHandlers.ExecuteAsync(new CancellationToken()); Console.WriteLine("ResponseMessage:"); Console.WriteLine(messageHandlers.ResponseMessage.ToJson(true)); }