mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-09-19 01:58:14 +08:00
docs: 完善文档
This commit is contained in:
@@ -5,11 +5,11 @@
|
||||
对于微信推送过来的回调通知事件,本库封装了直接解析成事件模型的扩展方法,下面给出一个示例:
|
||||
|
||||
```csharp
|
||||
/* 如果是 JSON 格式的通知内容 */
|
||||
/* 如果是 JSON 格式的通知内容,以 wxa_media_check 事件为例 */
|
||||
string callbackJson = "{ ... }";
|
||||
var callbackModel = client.DeserializeEventFromJson<Events.WxaMediaCheckEvent>(callbackJson);
|
||||
|
||||
/* 如果是 XML 格式的通知内容 */
|
||||
/* 如果是 XML 格式的通知内容,以 text 事件为例 */
|
||||
string callbackXml = "<xml> ... </xml>";
|
||||
var callbackModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(callbackXml);
|
||||
```
|
||||
@@ -18,6 +18,28 @@ var callbackModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(call
|
||||
|
||||
---
|
||||
|
||||
### 事件类型:
|
||||
|
||||
由于微信会将全部事件推送到同一个回调通知地址上,开发者需要根据事件类型才能决定如何反序列化。
|
||||
|
||||
这里给出两种解决方案。
|
||||
|
||||
一种是利用 `System.Xml.Linq`:
|
||||
|
||||
```csharp
|
||||
XDocument xDoc = XDocument.Parse(callbackXml);
|
||||
string msgType = xDoc.Root?.Element("MsgType")?.Value?.ToUpper();
|
||||
```
|
||||
|
||||
另一种是利用本库的扩展方法:
|
||||
|
||||
```csharp
|
||||
WechatApiEvent eventModel = client.DeserializeEventFromXml(callbackXml);
|
||||
string msgType = eventModel.MessageType?.ToUpper();
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 安全模式:
|
||||
|
||||
在安全模式下,微信公众平台使用了一种特殊的 AES 算法对回调通知事件加密。
|
||||
@@ -56,7 +78,7 @@ var replyModel = new Events.TextMessageReply()
|
||||
{
|
||||
ToUserName = "接收方 OpenId",
|
||||
FromUserName = "开发者 GhId",
|
||||
MessageType = "text",
|
||||
MessageType = "text",
|
||||
Content = "被动回复的文本内容",
|
||||
CreateTimestamp = 1234567890
|
||||
};
|
||||
@@ -69,4 +91,4 @@ string replyXml = client.SerializeEventToXml(replyModel);
|
||||
string replyXml = client.SerializeEventToXml(replyModel, safety: true);
|
||||
```
|
||||
|
||||
完整的被动回复模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpReply_ 目录。
|
||||
完整的被动回复模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpReply_ 目录。
|
||||
|
Reference in New Issue
Block a user