mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-09-20 18:48:10 +08:00
docs: 完善文档
This commit is contained in:
@@ -54,25 +54,7 @@ switch (msgType)
|
|||||||
|
|
||||||
在安全模式下,微信公众平台使用了一种特殊的 AES 算法对回调通知事件加密。
|
在安全模式下,微信公众平台使用了一种特殊的 AES 算法对回调通知事件加密。
|
||||||
|
|
||||||
开发者可利用本库提供的 `WxBizMsgCryptor` 工具类自行解密相关字段。
|
上述提供的扩展方法,会自动判定是否处于安全模式下,无需开发者手动干预。
|
||||||
|
|
||||||
此外,本库还封装了直接解密事件的扩展方法,下面给出一个示例代码:
|
|
||||||
|
|
||||||
```csharp
|
|
||||||
/* 在初始化客户端时需指定服务器推送的相关参数 */
|
|
||||||
var options = new WechatApiClientOptions()
|
|
||||||
{
|
|
||||||
AppId = "微信 AppId",
|
|
||||||
AppSecret = "微信 AppSecret",
|
|
||||||
PushEncodingAESKey = "服务器推送的 EncodingAESKey",
|
|
||||||
PushToken = "服务器推送的 Token"
|
|
||||||
};
|
|
||||||
var client = new WechatApiClient(options);
|
|
||||||
|
|
||||||
/* 如果是 XML 格式的加密通知内容,以 text 事件为例 */
|
|
||||||
string callbackXml = "<xml> <Encrypt>...</Encrypt> </xml>";
|
|
||||||
var callbackModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(callbackXml, safety: true);
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -95,10 +77,10 @@ var replyModel = new Events.TextMessageReply()
|
|||||||
string replyXml = client.SerializeEventToXml(replyModel);
|
string replyXml = client.SerializeEventToXml(replyModel);
|
||||||
```
|
```
|
||||||
|
|
||||||
如果是在安全模式下,那么可以:
|
需要注意的是,默认会序列化为安全模式;如果需要明文模式下的数据,那么可以:
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
string replyXml = client.SerializeEventToXml(replyModel, safety: true);
|
string replyXml = client.SerializeEventToXml(replyModel, safety: false);
|
||||||
```
|
```
|
||||||
|
|
||||||
完整的被动回复模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpReply_ 目录。
|
完整的被动回复模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpReply_ 目录。
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
>
|
>
|
||||||
> [《微信官方文档 - 开始开发:接入指南》](https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html)
|
> [《微信官方文档 - 开始开发:接入指南》](https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html)
|
||||||
|
|
||||||
同样地,你既可以利用本库提供的 `SHA1Utility`、`WxBizMsgCryptor` 工具类自行进行签名验证,也可以通过扩展方法实现:
|
同样地,你既可以利用本库提供的 `SHA1Utility` 工具类自行进行签名验证,也可以通过扩展方法实现:
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
/* 验证微信服务器 */
|
/* 验证微信服务器 */
|
||||||
@@ -18,6 +18,11 @@ bool ret = client.VerifyEventSignatureForEcho(
|
|||||||
|
|
||||||
/* 验证安全模式下 XML 消息的签名 */
|
/* 验证安全模式下 XML 消息的签名 */
|
||||||
bool ret = client.VerifyEventSignatureFromXml(
|
bool ret = client.VerifyEventSignatureFromXml(
|
||||||
callbackXml: "微信公众平台发来的通知内容,形如:<xml> <Encrypt>...</Encrypt> </xml>"
|
callbackXml: "微信公众平台发来的通知内容,形如:<xml><Encrypt>...</Encrypt></xml>"
|
||||||
|
);
|
||||||
|
|
||||||
|
/* 验证安全模式下 JSON 消息的签名 */
|
||||||
|
bool ret = client.VerifyEventSignatureFromJson(
|
||||||
|
callbackJson: "微信公众平台发来的通知内容,形如:{\"Encrypt\":\"...\"}"
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
Reference in New Issue
Block a user