diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs index 5746079f..1a214fa1 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs @@ -299,7 +299,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api /// 微信回调通知中的 timestamp 字段。 /// 微信回调通知中的 nonce 字段。 /// 微信回调通知中请求正文(JSON 格式)。 - /// 微信回调通知中的 signature 字段。 + /// 微信回调通知中的 msg_signature 字段。 /// public static bool VerifyEventSignatureFromJson(this WechatApiClient client, string callbackTimestamp, string callbackNonce, string callbackJson, string callbackSignature) { @@ -331,7 +331,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api /// 微信回调通知中的 timestamp 字段。 /// 微信回调通知中的 nonce 字段。 /// 微信回调通知中请求正文(XML 格式)。 - /// 微信回调通知中的 signature 字段。 + /// 微信回调通知中的 msg_signature 字段。 /// public static bool VerifyEventSignatureFromXml(this WechatApiClient client, string callbackTimestamp, string callbackNonce, string callbackXml, string callbackSignature) { diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventSerializationExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventExtensions.cs similarity index 96% rename from src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventSerializationExtensions.cs rename to src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventExtensions.cs index bd85e72a..e2c800bd 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventSerializationExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventExtensions.cs @@ -7,9 +7,9 @@ using System.Xml.Serialization; namespace SKIT.FlurlHttpClient.Wechat.Work { /// - /// 为 提供回调通知事件序列化相关的扩展方法。 + /// 为 提供回调通知事件的扩展方法。 /// - public static class WechatWorkClientEventSerializationExtensions + public static class WechatWorkClientEventExtensions { private class EncryptedWechatWorkEvent { @@ -46,11 +46,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (string.IsNullOrEmpty(encryptedEvent.EncryptedData)) throw new Exceptions.WechatWorkEventSerializationException("Encrypt event failed, because of empty encrypted data."); - callbackJson = Utilities.WxBizMsgCryptor.AESDecrypt( - cipherText: encryptedEvent.EncryptedData, - encodingAESKey: client.Credentials.PushEncodingAESKey!, - out _ - ); + callbackJson = Utilities.WxBizMsgCryptor.AESDecrypt(cipherText: encryptedEvent.EncryptedData, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _); return client.JsonSerializer.Deserialize(callbackJson); } @@ -72,9 +68,11 @@ namespace SKIT.FlurlHttpClient.Wechat.Work try { - if (!Utilities.WxBizMsgCryptor.TryParseXml(callbackXml, out callbackXml!)) + if (!Utilities.WxBizMsgCryptor.TryParseXml(callbackXml, out string? encryptedXml)) throw new Exceptions.WechatWorkEventSerializationException("Encrypt event failed, because of empty encrypted data."); + callbackXml = Utilities.WxBizMsgCryptor.AESDecrypt(cipherText: encryptedXml!, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _); + using var reader = new StringReader(callbackXml); XmlSerializer xmlSerializer = new XmlSerializer(typeof(TEvent), new XmlRootAttribute("xml"));