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:
@@ -1,14 +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)
|
||||
|
||||
需要注意的是,由于部分微信支付接口需要显式地在构造 `System.Net.Http.HttpMessageHandler` 时指定双向认证的 SSL 证书,按照上文提供的方式自定义 `Flurl.Http.Configuration.DefaultHttpClientFactory` 时,也就必须重写此部分逻辑。
|
||||
|
||||
关于这点可以参考本库内置的一个类型,完整的代码请参阅项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Settings/HttpClientFactory_ 文件。
|
||||
> [《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)
|
||||
|
||||
---
|
||||
|
||||
|
@@ -10,8 +10,8 @@
|
||||
|
||||
```csharp
|
||||
bool ret = client.VerifyEventSignature(
|
||||
callbackAuthorization: "微企付回调通知中的 TBEP-Authorization 标头",
|
||||
callbackBody: "微企付回调通知中请求正文"
|
||||
webhookAuthorization: "微企付回调通知中的 TBEP-Authorization 标头",
|
||||
webhookBody: "微企付回调通知中请求正文"
|
||||
);
|
||||
```
|
||||
|
||||
@@ -19,13 +19,12 @@ bool ret = client.VerifyEventSignature(
|
||||
|
||||
### 调试验签错误:
|
||||
|
||||
由于 `VerifyEventSignature()` 方法内部会 `try-catch` 掉所有异常情况,并直接返回 `false`。为方便开发者在调试阶段排查验签的错误信息,你可以在验证回调通知事件签名时指定接收最后一个 `out` 返回参数,该参数中包含了一些异常的原因和相关堆栈信息。
|
||||
由于 `VerifyEventSignature()` 方法内部会 `try-catch` 掉所有异常情况,并直接返回 `false`。为方便开发者在调试阶段排查验签的错误信息,你可以在验证回调通知事件签名时指定返回值类型为 `ErroredResult` 而非 `Boolean`,该返回值中包含了一些异常的原因和相关堆栈信息。
|
||||
|
||||
```csharp
|
||||
bool ret = client.VerifyEventSignature(authorization, signature, out Exception error);
|
||||
if (!ret)
|
||||
ErroredResult res = client.VerifyEventSignature(authorization, signature);
|
||||
if (!res.Result)
|
||||
{
|
||||
Console.WriteLine(error);
|
||||
Console.WriteLine(error?.InnerException);
|
||||
Console.WriteLine(res.Error);
|
||||
}
|
||||
```
|
||||
|
@@ -58,7 +58,7 @@ var options = new WechatTenpayBusinessOptions()
|
||||
SensitivePropertyEncryptionSM4Key = "SM4 密钥",
|
||||
SensitivePropertyEncryptionSM4IV = "SM4 偏移量"
|
||||
};
|
||||
var client = new WechatTenpayBusinessClient(options);
|
||||
var client = WechatTenpayBusinessClientBuilder.Create(options).Build();
|
||||
```
|
||||
|
||||
这样,本库会在实际发出请求前自动为你调用 `EncryptRequestSensitiveProperty()` 方法。
|
||||
|
@@ -38,7 +38,7 @@ var options = new WechatTenpayBusinessClientOptions()
|
||||
{
|
||||
AutoDecryptResponseSensitiveProperty = true
|
||||
};
|
||||
var client = new WechatTenpayBusinessClient(options);
|
||||
var client = WechatTenpayBusinessClientBuilder.Create(options).Build();
|
||||
```
|
||||
|
||||
这样,本库会在实际收到响应后自动为你调用 `DecryptResponseSensitiveProperty()` 方法。
|
||||
|
@@ -25,13 +25,12 @@ bool ret = client.VerifyResponseSignature(response);
|
||||
|
||||
### 调试验签错误:
|
||||
|
||||
由于 `VerifyResponseSignature()` 方法内部会 `try-catch` 掉所有异常情况,并直接返回 `false`。为方便开发者在调试阶段排查验签的错误信息,你可以在验证响应签名时指定接收最后一个 `out` 返回参数,该参数中包含了一些异常的原因和相关堆栈信息。
|
||||
由于 `VerifyResponseSignature()` 方法内部会 `try-catch` 掉所有异常情况,并直接返回 `false`。为方便开发者在调试阶段排查验签的错误信息,你可以在验证响应签名时指定返回值类型为 `ErroredResult` 而非 `Boolean`,该返回值中包含了一些异常的原因和相关堆栈信息。
|
||||
|
||||
```csharp
|
||||
bool ret = client.VerifyResponseSignature(response, out Exception error);
|
||||
if (!ret)
|
||||
ErroredResult res = client.VerifyResponseSignature(response);
|
||||
if (!res.Result)
|
||||
{
|
||||
Console.WriteLine(error);
|
||||
Console.WriteLine(error?.InnerException);
|
||||
Console.WriteLine(res.Error);
|
||||
}
|
||||
```
|
||||
|
@@ -15,6 +15,9 @@
|
||||
|
||||
## 快速入门
|
||||
|
||||
> [!IMPORTANT]
|
||||
> 此目录下的文档适用于 v3.x 版本的模块。如果你正在使用 2.x 版本,请移步至 GitHub/Gitee 的已归档分支。
|
||||
|
||||
### 安装:
|
||||
|
||||
提示:如果你使用 Visual Studio NuGet 管理器图形化界面,请在搜索结果中勾选“**包括预发行版**”。
|
||||
@@ -30,7 +33,6 @@
|
||||
### 初始化:
|
||||
|
||||
```csharp
|
||||
using SKIT.FlurlHttpClient.Wechat;
|
||||
using SKIT.FlurlHttpClient.Wechat.TenpayBusiness;
|
||||
|
||||
var options = new WechatTenpayBusinessClientOptions()
|
||||
@@ -44,7 +46,7 @@ var options = new WechatTenpayBusinessClientOptions()
|
||||
TBEPCertificateSerialNumber = "微企付证书序列号",
|
||||
TBEPCertificatePublicKey = "-----BEGIN PUBLIC KEY-----微企付证书公钥-----END PUBLIC KEY-----"
|
||||
};
|
||||
var client = new WechatTenpayBusinessClient(options);
|
||||
var client = WechatTenpayBusinessClientBuilder.Create(options).Build();
|
||||
```
|
||||
|
||||
### 请求 & 响应:
|
||||
@@ -74,7 +76,7 @@ else
|
||||
|
||||
## 基础用法
|
||||
|
||||
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Basic_ModelDefinition.md)
|
||||
- ⭐ [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Basic_ModelDefinition.md)
|
||||
|
||||
- [如何加密请求中的敏感数据?](./Basic_RequestSensitiveDataEncryption.md)
|
||||
|
||||
@@ -88,7 +90,7 @@ else
|
||||
|
||||
## 高级技巧
|
||||
|
||||
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
|
||||
- [如何与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
|
||||
|
||||
- [如何指定 JSON 序列化器?](./Advanced_JsonSerializer.md)
|
||||
|
||||
|
Reference in New Issue
Block a user