mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-09-22 12:09:30 +08:00
docs: 完善文档
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
## 如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?
|
||||
## 如何与 `IHttpClientFactory` 集成?
|
||||
|
||||
---
|
||||
|
||||
本功能来自于公共组件,请参阅公共组件下的相关文档:
|
||||
|
||||
> [《SKIT.FlurlHttpClient FAQ:如何在 ASP.NET Core 中与 IHttpClientFactory 集成?》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/FAQ_IHttpClientFactory.md)
|
||||
> [《SKIT.FlurlHttpClient FAQ:如何与 IHttpClientFactory 集成?》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)
|
||||
|
||||
---
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
本功能来自于公共组件,请参阅公共组件下的相关文档:
|
||||
|
||||
> [《SKIT.FlurlHttpClient FAQ:如何使用拦截器?》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/FAQ_Interceptor.md)
|
||||
> [《SKIT.FlurlHttpClient FAQ:如何使用拦截器?》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)
|
||||
|
||||
---
|
||||
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
本功能来自于公共组件,请参阅公共组件下的相关文档:
|
||||
|
||||
> [《SKIT.FlurlHttpClient FAQ:如何指定 JSON 序列化器?》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/FAQ_JsonSerializer.md)
|
||||
> [《SKIT.FlurlHttpClient FAQ:如何指定 JSON 序列化器?》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)
|
||||
|
||||
---
|
||||
|
||||
|
@@ -6,12 +6,12 @@
|
||||
|
||||
```csharp
|
||||
/* 如果是 JSON 格式的通知内容,以 add_schedule 事件为例 */
|
||||
string callbackJson = "{ ... }";
|
||||
var callbackModel = client.DeserializeEventFromJson<Events.AddScheduleEvent>(callbackJson);
|
||||
string webhookJson = "{ ... }";
|
||||
var webhookModel = client.DeserializeEventFromJson<Events.AddScheduleEvent>(webhookJson);
|
||||
|
||||
/* 如果是 XML 格式的通知内容,以 text 事件为例 */
|
||||
string callbackXml = "<xml> ... </xml>";
|
||||
var callbackModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(callbackXml);
|
||||
string webhookXml = "<xml> ... </xml>";
|
||||
var webhookModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(webhookXml);
|
||||
```
|
||||
|
||||
完整的回调通知模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.Work/Events_ 目录。
|
||||
@@ -25,14 +25,12 @@ var callbackModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(call
|
||||
这里给出一种解决方案:
|
||||
|
||||
```csharp
|
||||
WechatApiEvent eventModel = client.DeserializeEventFromXml(callbackXml);
|
||||
string msgType = eventModel.MessageType?.ToUpper();
|
||||
|
||||
string msgType = eventModel = client.DeserializeEventFromXml(webhookXml).MessageType?.ToUpper();
|
||||
switch (msgType)
|
||||
{
|
||||
case "TEXT":
|
||||
{
|
||||
var callbackModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(callbackXml);
|
||||
var webhookModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(webhookXml);
|
||||
}
|
||||
break;
|
||||
// 其他情况略
|
||||
@@ -56,7 +54,7 @@ var options = new WechatWorkClientOptions()
|
||||
PushToken = "Token",
|
||||
PushEncodingAESKey = "EncodingAESKey"
|
||||
};
|
||||
var client = new WechatWorkClient(options);
|
||||
var client = WechatWorkClientBuilder.Create(options).Build();
|
||||
```
|
||||
|
||||
---
|
||||
|
@@ -30,10 +30,10 @@ public static class MyFakeClientExtensions
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateRequest(request, HttpMethod.Post, "my-fake-url")
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "my-fake-url")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<MyFakeResponse>(flurlReq, request, cancellationToken);
|
||||
return await client.SendFlurlRequestAsJsonAsync<MyFakeResponse>(flurlReq, request, cancellationToken);
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -42,7 +42,7 @@ public static class MyFakeClientExtensions
|
||||
|
||||
```csharp
|
||||
/* 继承 WechatWorkEvent 实现自定义的 JSON 格式的回调通知事件 */
|
||||
public class MyFakeEvent : WechatWorkEvent, WechatWorkEvent.Types.IJsonSerializable
|
||||
public class MyFakeEvent : WechatWorkEvent
|
||||
{
|
||||
[Newtonsoft.Json.JsonProperty("my_fake_props")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("my_fake_props")]
|
||||
@@ -50,7 +50,7 @@ public class MyFakeEvent : WechatWorkEvent, WechatWorkEvent.Types.IJsonSerializa
|
||||
}
|
||||
|
||||
/* 继承 WechatWorkEvent 实现自定义的 XML 格式的回调通知事件 */
|
||||
public class MyFakeEvent : WechatWorkEvent, WechatWorkEvent.Types.IXmlSerializable
|
||||
public class MyFakeEvent : WechatWorkEvent
|
||||
{
|
||||
[System.Xml.Serialization.XmlElement("my_fake_props")]
|
||||
public string MyFakeProps { get; set; }
|
||||
|
@@ -44,9 +44,9 @@
|
||||
与初始化本库的 HTTP API 客户端的过程类似。
|
||||
|
||||
```csharp
|
||||
using SKIT.FlurlHttpClient.Wechat.Work.SDK.Finance;
|
||||
using SKIT.FlurlHttpClient.Wechat.Work.SDK.Finance.Models;
|
||||
using SKIT.FlurlHttpClient.Wechat.Work.SDK.Finance.Settings;
|
||||
using SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.Finance;
|
||||
using SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.Finance.Models;
|
||||
using SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.Finance.Settings;
|
||||
|
||||
var manager = new InMemoryEncryptionKeyManager();
|
||||
manager.AddEntry(new EncryptionKeyEntry(1, "-----BEGIN RSA PRIVATE KEY----- 消息加解密私钥 PKCS#1 PEM 内容 -----END RSA PRIVATE KEY-----"));
|
||||
|
@@ -16,6 +16,9 @@
|
||||
|
||||
## 快速入门
|
||||
|
||||
> [!IMPORTANT]
|
||||
> 此目录下的文档适用于 v3.x 版本的模块。如果你正在使用 2.x 版本,请移步至 GitHub/Gitee 的已归档分支。
|
||||
|
||||
### 安装:
|
||||
|
||||
提示:如果你使用 Visual Studio NuGet 管理器图形化界面,请在搜索结果中勾选“**包括预发行版**”。
|
||||
@@ -31,7 +34,6 @@
|
||||
### 初始化:
|
||||
|
||||
```csharp
|
||||
using SKIT.FlurlHttpClient.Wechat;
|
||||
using SKIT.FlurlHttpClient.Wechat.Work;
|
||||
|
||||
var options = new WechatWorkClientOptions()
|
||||
@@ -40,7 +42,7 @@ var options = new WechatWorkClientOptions()
|
||||
AgentId = "企业微信应用的 AgentId",
|
||||
AgentSecret = "企业微信应用的 Secret"
|
||||
};
|
||||
var client = new WechatWorkClient(options);
|
||||
var client = WechatWorkClientBuilder.Create(options).Build();
|
||||
```
|
||||
|
||||
### 请求 & 响应:
|
||||
@@ -72,11 +74,11 @@ else
|
||||
|
||||
## 基础用法
|
||||
|
||||
- [如何快速找到需要调用的 API 模型类名 / 方法名?](./Basic_ModelDefinition.md)
|
||||
- ⭐ [如何快速找到需要调用的 API 模型类名 / 方法名?](./Basic_ModelDefinition.md)
|
||||
|
||||
- [如何解析回调通知事件?](./Basic_EventDeserialization.md)
|
||||
|
||||
- [如何生成 JS-SDK 所需的参数及签名?](./Basic_Parameters.md)
|
||||
- ⭐ [如何生成 JS-SDK 所需的参数及签名?](./Basic_Parameters.md)
|
||||
|
||||
- [如何接入会话内容存档 C SDK?](./Basic_FinanceSDK.md)
|
||||
|
||||
@@ -86,7 +88,7 @@ else
|
||||
|
||||
## 高级技巧
|
||||
|
||||
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
|
||||
- [如何与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
|
||||
|
||||
- [如何指定 JSON 序列化器?](./Advanced_JsonSerializer.md)
|
||||
|
||||
|
Reference in New Issue
Block a user