From 5bf5d1df649c3750e7971cdde7e75244a519bf88 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 28 Feb 2022 22:20:37 +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 | 24 +++---------------- ...Advanced_EventDataSignatureVerification.md | 9 +++++-- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/docs/WechatApi/Advanced_EventDataDeserialization.md b/docs/WechatApi/Advanced_EventDataDeserialization.md index f0cc10d8..3b2b4f0a 100644 --- a/docs/WechatApi/Advanced_EventDataDeserialization.md +++ b/docs/WechatApi/Advanced_EventDataDeserialization.md @@ -54,25 +54,7 @@ switch (msgType) 在安全模式下,微信公众平台使用了一种特殊的 AES 算法对回调通知事件加密。 -开发者可利用本库提供的 `WxBizMsgCryptor` 工具类自行解密相关字段。 - -此外,本库还封装了直接解密事件的扩展方法,下面给出一个示例代码: - -```csharp -/* 在初始化客户端时需指定服务器推送的相关参数 */ -var options = new WechatApiClientOptions() -{ - AppId = "微信 AppId", - AppSecret = "微信 AppSecret", - PushEncodingAESKey = "服务器推送的 EncodingAESKey", - PushToken = "服务器推送的 Token" -}; -var client = new WechatApiClient(options); - -/* 如果是 XML 格式的加密通知内容,以 text 事件为例 */ -string callbackXml = " ... "; -var callbackModel = client.DeserializeEventFromXml(callbackXml, safety: true); -``` +上述提供的扩展方法,会自动判定是否处于安全模式下,无需开发者手动干预。 --- @@ -95,10 +77,10 @@ var replyModel = new Events.TextMessageReply() string replyXml = client.SerializeEventToXml(replyModel); ``` -如果是在安全模式下,那么可以: +需要注意的是,默认会序列化为安全模式;如果需要明文模式下的数据,那么可以: ```csharp -string replyXml = client.SerializeEventToXml(replyModel, safety: true); +string replyXml = client.SerializeEventToXml(replyModel, safety: false); ``` 完整的被动回复模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpReply_ 目录。 diff --git a/docs/WechatApi/Advanced_EventDataSignatureVerification.md b/docs/WechatApi/Advanced_EventDataSignatureVerification.md index 5ec7064b..3e9c6cb1 100644 --- a/docs/WechatApi/Advanced_EventDataSignatureVerification.md +++ b/docs/WechatApi/Advanced_EventDataSignatureVerification.md @@ -6,7 +6,7 @@ > > [《微信官方文档 - 开始开发:接入指南》](https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html) -同样地,你既可以利用本库提供的 `SHA1Utility`、`WxBizMsgCryptor` 工具类自行进行签名验证,也可以通过扩展方法实现: +同样地,你既可以利用本库提供的 `SHA1Utility` 工具类自行进行签名验证,也可以通过扩展方法实现: ```csharp /* 验证微信服务器 */ @@ -18,6 +18,11 @@ bool ret = client.VerifyEventSignatureForEcho( /* 验证安全模式下 XML 消息的签名 */ bool ret = client.VerifyEventSignatureFromXml( - callbackXml: "微信公众平台发来的通知内容,形如: ... " + callbackXml: "微信公众平台发来的通知内容,形如:..." +); + +/* 验证安全模式下 JSON 消息的签名 */ +bool ret = client.VerifyEventSignatureFromJson( + callbackJson: "微信公众平台发来的通知内容,形如:{\"Encrypt\":\"...\"}" ); ```