From aa13935f6ef029a715f868d6cd08e49e118bf15c Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 2 Aug 2021 18:14:33 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=AE=8C=E5=96=84=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Advanced_EventDataDeserialization.md | 12 ++++++++- .../Advanced_EventDataDeserialization.md | 27 ++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/docs/WechatApi/Advanced_EventDataDeserialization.md b/docs/WechatApi/Advanced_EventDataDeserialization.md index 2b913fd3..c6cdd74b 100644 --- a/docs/WechatApi/Advanced_EventDataDeserialization.md +++ b/docs/WechatApi/Advanced_EventDataDeserialization.md @@ -36,6 +36,16 @@ string msgType = xDoc.Root?.Element("MsgType")?.Value?.ToUpper(); ```csharp WechatApiEvent eventModel = client.DeserializeEventFromXml(callbackXml); string msgType = eventModel.MessageType?.ToUpper(); + +switch (msgType) +{ + case "TEXT": + { + var callbackModel = client.DeserializeEventFromXml(callbackXml); + } + break; + // 省略其他情况 +} ``` --- @@ -59,7 +69,7 @@ var options = new WechatApiClientOptions() }; var client = new WechatApiClient(options); -/* 如果是 XML 格式的加密通知内容 */ +/* 如果是 XML 格式的加密通知内容,以 text 事件为例 */ string callbackXml = " ... "; var callbackModel = client.DeserializeEventFromXml(callbackXml, safety: true); ``` diff --git a/docs/WechatWork/Advanced_EventDataDeserialization.md b/docs/WechatWork/Advanced_EventDataDeserialization.md index 19358d0a..bf94ba92 100644 --- a/docs/WechatWork/Advanced_EventDataDeserialization.md +++ b/docs/WechatWork/Advanced_EventDataDeserialization.md @@ -18,8 +18,33 @@ var callbackModel = client.DeserializeEventFromXml(call --- +### 事件类型: + +由于企业微信会将全部事件推送到同一个回调通知地址上,开发者需要根据事件类型才能决定如何反序列化。 + +这里给出一种解决方案: + +```csharp +WechatApiEvent eventModel = client.DeserializeEventFromXml(callbackXml); +string msgType = eventModel.MessageType?.ToUpper(); + +switch (msgType) +{ + case "TEXT": + { + var callbackModel = client.DeserializeEventFromXml(callbackXml); + } + break; + // 省略其他情况 +} +``` + +--- + ### 安全模式: -在安全模式下,微信公众平台使用了一种特殊的 AES 算法对回调通知事件加密。 +与微信公众号不同的是,企业微信默认启用了安全模式,且不支持切换至明文模式。 开发者可利用本库提供的 `WxBizMsgCryptor` 工具类自行解密相关字段。 + +上文提到的扩展方法,已自动做解密处理。