mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2026-02-10 17:56:21 +08:00
docs: 完善文档
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
## 如何在 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)
|
||||
|
||||
需要注意的是,由于部分微信支付接口需要显式地在构造 `System.Net.Http.HttpMessageHandler` 时指定双向认证的 SSL 证书,按照上文提供的方式自定义 `Flurl.Http.Configuration.DefaultHttpClientFactory` 时,也就必须重写此部分逻辑。
|
||||
需要注意的是,由于部分微信支付接口需要显式地在构造 `System.Net.Http.HttpMessageHandler` 时指定双向认证的 SSL 证书,按照上文提供的方式自定义 `System.Net.Http.HttpClient` 时,也就必须重写此部分逻辑。
|
||||
|
||||
关于这点可以参考本库内置的一个类型,完整的代码请参阅项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Settings/HttpClientFactory_ 文件。
|
||||
关于这点可以参考本库内置的一个类型,完整的代码请参阅项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Settings/WechatpayHttpHandler.cs_ 文件。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
```csharp
|
||||
/* 微信商户平台发来的通知内容 */
|
||||
string callbackXml = "<xml> ... </xml>";
|
||||
string webhookXml = "<xml> ... </xml>";
|
||||
/* 将 XML 反序列化得到通知对象 */
|
||||
var callbackModel = client.DeserializeEvent(callbackXml);
|
||||
var webhookModel = client.DeserializeEvent(webhookXml);
|
||||
/* 解密得到支付通知敏感数据(以退款结果通知为例) */
|
||||
var callbackEventInfo = client.DecryptEventRequestInfo<Events.RefundEventRequestInfo>(callbackModel);
|
||||
string outRefundNumber = callbackResource.OutRefundNumber;
|
||||
string refundId = callbackResource.RefundId;
|
||||
var webhookEventInfo = client.DecryptEventRequestInfo<Events.RefundEventRequestInfo>(webhookModel);
|
||||
string outRefundNumber = webhookEventInfo.OutRefundNumber;
|
||||
string refundId = webhookEventInfo.RefundId;
|
||||
```
|
||||
|
||||
完整的回调通知模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Events_ 目录。
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
|
||||
```csharp
|
||||
bool ret = client.VerifyEventSignature(
|
||||
callbackBody: "<xml> 微信回调通知中请求正文 XML 内容 </xml>"
|
||||
webhookBody: "<xml> 微信回调通知中请求正文 XML 内容 </xml>"
|
||||
);
|
||||
```
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
|
||||
## 快速入门
|
||||
|
||||
> [!IMPORTANT]
|
||||
> 此目录下的文档适用于 v3.x 版本的模块。如果你正在使用 2.x 版本,请移步至 GitHub/Gitee 的已归档分支。
|
||||
|
||||
### 安装:
|
||||
|
||||
提示:如果你使用 Visual Studio NuGet 管理器图形化界面,请在搜索结果中勾选“**包括预发行版**”。
|
||||
@@ -33,7 +36,6 @@
|
||||
### 初始化:
|
||||
|
||||
```csharp
|
||||
using SKIT.FlurlHttpClient.Wechat;
|
||||
using SKIT.FlurlHttpClient.Wechat.TenpayV2;
|
||||
|
||||
var options = new WechatTenpayClientOptions()
|
||||
@@ -43,7 +45,7 @@ var options = new WechatTenpayClientOptions()
|
||||
MerchantCertificateBytes = File.ReadAllBytes("/微信商户证书文件路径/apiclient_cert.p12"),
|
||||
MerchantCertificatePassword = "微信商户证书密码,通常是商户号"
|
||||
};
|
||||
var client = new WechatTenpayClient(options);
|
||||
var client = WechatTenpayClientBuilder.Create(options).Build();
|
||||
```
|
||||
|
||||
### 请求 & 响应:
|
||||
@@ -82,7 +84,7 @@ else
|
||||
|
||||
## 基础用法
|
||||
|
||||
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Basic_ModelDefinition.md)
|
||||
- ⭐ [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Basic_ModelDefinition.md)
|
||||
|
||||
- [如何解密回调通知事件中的敏感数据?](./Basic_EventInfoDecryption.md)
|
||||
|
||||
@@ -94,7 +96,7 @@ else
|
||||
|
||||
## 高级技巧
|
||||
|
||||
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
|
||||
- [如何与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
|
||||
|
||||
- [如何指定 JSON 序列化器?](./Advanced_JsonSerializer.md)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user