docs: 完善文档

This commit is contained in:
Fu Diwei 2023-03-02 19:36:47 +08:00
parent f059387edc
commit 4a2ab538e9
55 changed files with 173 additions and 167 deletions

View File

@ -15,9 +15,9 @@
- 一般会产生破坏性更新。
3. “**修复**”:
- 修复了已知的一些问题;
- 不会产生破坏性更新。
- 一般不会产生破坏性更新。
注意,预览版本(版本号将以 `-alpha`、`-beta`、`-rc` 结尾)不会在更新日志中呈现。如非必要,请不要将预览版本应用于生产项目。
注意,预发行版(版本号将以 `-alpha`、`-beta`、`-rc` 结尾)不会在更新日志中呈现。如非必要,请不要将预发行版应用于生产项目。
自 v2.0.0 版本起,各 SDK 将与[公共组件](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Common)的主版本号保持对齐关系,即:

View File

@ -7,7 +7,7 @@
[![Visitors](https://visitor-badge.laobi.icu/badge?page_id=fudiwei.DotNetCore.SKIT.FlurlHttpClient.Wechat&title=Visitors)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat)
[![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?label=License)](https://mit-license.org/)
基于 `Flurl.Http` 的微信 API HTTP 客户端,支持公众平台、开放平台、商户平台、企业微信、广告平台、对话开放平台等模块。
基于 `Flurl.Http` 的微信 HTTP API SDK目前已包含公众平台、开放平台、商户平台、企业微信、广告平台、对话开放平台等模块。
> 更多 SKIT.FlurlHttpClient 系列开发工具包请[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient)。
@ -16,22 +16,13 @@
## 特性
- 基于 `Flurl.Http`,可与 `IHttpClientFactory` 集成。
- 支持 .NET Framework 4.6.1+、.NET Standard 2.0+、.NET Core 2.0+、.NET 5、.NET 6。
- 支持 .NET Framework 4.6.1+、.NET Standard 2.0+、.NET Core 2.0+、.NET 5+。
- 支持 Windows / Linux / macOS 多平台部署。
- 支持 `System.Text.Json`(默认)和 `Newtonsoft.Json` 两种序列化方式。
- 异步式编程。
- 强类型接口模型。
- 提供拦截器功能。
- 包含 SourceLink 符号文件,可在项目中无源代码调试。
- 完整、完善、完全的微信 API 封装。
- 全异步式编程。
- 提供 SourceLink 调试符号文件。
- 完整、完善、完全的微信 HTTP API 封装。
---
@ -119,7 +110,6 @@
## 参与贡献
- GitHub Repohttps://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
- Gitee Repohttps://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
以上仓库地址同步更新,均可接受 Issue 或 Pull Request。

View File

@ -16,7 +16,7 @@
本库会定期随微信官方更新接口或模型,但也会偶有疏漏。如果你在使用中遇到了因接口或模型定义而产生的问题,欢迎提出 Issue。
如果你的项目来不及等待 Issue 被处理,你可以自行扩展相关 API。
在 Issue 被处理之前,你也可以选择自行扩展 API。
---

View File

@ -1,6 +1,6 @@
# SKIT.FlurlHttpClient.Wechat.Ads
基于 `Flurl.Http` 的[微信广告平台](https://ad.weixin.qq.com/) API 客户端
基于 `Flurl.Http` 的[微信广告平台](https://ad.weixin.qq.com/) HTTP API SDK
需要注意的是,微信广告平台是腾讯广点通的独立业务,请开发者阅读相关文档时注意与广点通本身的 API 区分。
@ -9,14 +9,12 @@
## 功能
- 基于微信广告平台 API 封装。
- 请求时自动生成服务商身份令牌,无需开发者手动干预。
- 提供了微信广告平台 API 所需的 MD5 等算法工具类。
---
## 基础用法
## 快速入门
### 安装:
@ -63,12 +61,16 @@ var response = await client.ExecuteCampaignsAddAsync(request);
---
## 基础用法
- [如何快速找到需要调用的 API 模型类名 / 方法名?](./Basic_ModelDefinition.md)
- [如何获取接口调用凭据(即 AccessToken](./Basic_AccessToken.md)
---
## 高级技巧
- [如何快速找到需要调用的 API 模型类名 / 方法名?](./Advanced_ModelDefinition.md)
- [如何获取接口调用凭据(即 AccessToken](./Advanced_AccessToken.md)
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
- [如何指定 JSON 序列化器?](./Advanced_JsonSerializer.md)

View File

@ -9,6 +9,15 @@
同样地,你既可以利用本库提供的 `SHA1Utility` 工具类自行进行签名验证,也可以通过扩展方法实现:
```csharp
/* 在初始化客户端时需指定服务器推送的相关参数 */
var options = new WechatApiClientOptions()
{
// 其他配置项略
PushToken = "Token",
PushEncodingAESKey = "EncodingAESKey"
};
var client = new WechatApiClient(options);
/* 验证微信服务器 */
bool ret = client.VerifyEventSignatureForEcho(
callbackTimestamp: "微信回调通知中的 timestamp 字段",

View File

@ -1,4 +1,4 @@
## 如何扩展额外的 API
## 如何自定义额外的 API 接口
---

View File

@ -16,7 +16,7 @@
本库会定期随微信官方更新接口或模型,但也会偶有疏漏。如果你在使用中遇到了因接口或模型定义而产生的问题,欢迎提出 Issue。
如果你的项目来不及等待 Issue 被处理,你可以自行扩展相关 API。详细方式请参阅本文档[《高级技巧 - 如何扩展额外的 API》](./Advanced_Extensions.md)。
在 Issue 被处理之前,你也可以选择自行扩展 API。详细方式请参阅本文档[《基础用法 - 如何扩展额外的 API》](./Basic_Extensions.md)。
---

View File

@ -1,20 +1,18 @@
# SKIT.FlurlHttpClient.Wechat.Api
基于 `Flurl.Http` 的[微信公众平台](<(https://mp.weixin.qq.com/)>) & [微信开放平台](<(https://open.weixin.qq.com/)>) API 客户端
基于 `Flurl.Http` 的[微信公众平台](<(https://mp.weixin.qq.com/)>) & [微信开放平台](<(https://open.weixin.qq.com/)>) HTTP API SDK
---
## 功能
- 基于微信公众平台 & 微信开放平台 API 封装。
- 提供了微信公众平台 & 微信开放平台 API 所需的 SHA-1、HMAC-SHA-256、AES 等算法工具类。
- 提供了微信公众平台 & 微信开放平台 API 所需的 AES、SHA-1、HMAC-SHA-256 等算法工具类。
- 提供了 JS-SDK 签名、解析回调通知事件等扩展方法。
---
## 基础用法
## 快速入门
### 安装:
@ -75,20 +73,24 @@ else
---
## 基础用法
- [如何快速找到需要调用的 API 模型类名 / 方法名?](./Basic_ModelDefinition.md)
- [如何解析回调通知事件?](./Basic_EventDeserialization.md)
- [如何验证回调通知事件签名?](./Basic_EventSignatureVerification.md)
- [如何解密经过加密处理的开放数据?](./Basic_OpenDataDecryption.md)
- [如何生成 JS-SDK 初始化时所需的参数及签名?](./Basic_Parameters.md)
- [如何自定义额外的 API 接口?](./Basic_Extensions.md)
---
## 高级技巧
- [如何快速找到需要调用的 API 模型类名 / 方法名?](./Advanced_ModelDefinition.md)
- [如何解析回调通知事件?](./Advanced_EventDataDeserialization.md)
- [如何验证回调通知事件签名?](./Advanced_EventDataSignatureVerification.md)
- [如何解密经过加密处理的开放数据?](./Advanced_OpenDataDecryption.md)
- [如何生成 JS-SDK 初始化时所需的参数及签名?](./Advanced_Parameters.md)
- [如何扩展额外的 API](./Advanced_Extensions.md)
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
- [如何指定 JSON 序列化器?](./Advanced_JsonSerializer.md)

View File

@ -16,7 +16,7 @@
本库会定期随微信官方更新接口或模型,但也会偶有疏漏。如果你在使用中遇到了因接口或模型定义而产生的问题,欢迎提出 Issue。
如果你的项目来不及等待 Issue 被处理,你可以自行扩展相关 API。
在 Issue 被处理之前,你也可以选择自行扩展 API。
---

View File

@ -1,18 +1,17 @@
# SKIT.FlurlHttpClient.Wechat.OpenAI
基于 `Flurl.Http` 的[微信对话开放平台](https://openai.weixin.qq.com/) API 客户端
基于 `Flurl.Http` 的[微信对话开放平台](https://openai.weixin.qq.com/) HTTP API SDK
---
## 功能
- 基于微信对话开放平台 API 封装。
- 提供了解析回调通知事件等扩展方法。
---
## 基础用法
## 快速入门
### 安装:
@ -70,9 +69,13 @@ else
---
## 高级技巧
## 基础用法
- [如何快速找到需要调用的 API 模型类名 / 方法名?](./Advanced_ModelDefinition.md)
- [如何快速找到需要调用的 API 模型类名 / 方法名?](./Basic_ModelDefinition.md)
---
## 高级技巧
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)

View File

@ -4,7 +4,7 @@
### 验签流程
验证回调通知事件签名的方法与验证响应签名的类似,请参阅本文档[《高级技巧 - 如何验证响应签名?》](./Advanced_ResponseSignatureVerification.md)的有关章节。
验证回调通知事件签名的方法与验证响应签名的类似,请参阅本文档[《基础用法 - 如何验证响应签名?》](./Basic_ResponseSignatureVerification.md)的有关章节。
同样地,你既可以利用本库提供的 `RSAUtility` 工具类自行进行签名验证,也可以通过封装好的扩展方法完成签名验证:

View File

@ -18,7 +18,7 @@
本库会定期随微信官方更新接口或模型,但也会偶有疏漏。如果你在使用中遇到了因接口或模型定义而产生的问题,欢迎提出 Issue。
如果你的项目来不及等待 Issue 被处理,你可以自行扩展相关 API。
在 Issue 被处理之前,你也可以选择自行扩展 API。
---

View File

@ -1,22 +1,19 @@
# SKIT.FlurlHttpClient.Wechat.TenpayBusiness
基于 `Flurl.Http` 的[腾讯微企付](https://business.tenpay.com/p/gateway-pay/) API 客户端
基于 `Flurl.Http` 的[腾讯微企付](https://business.tenpay.com/p/gateway-pay/) HTTP API SDK
---
## 功能
- 基于腾讯微企付 API 封装。
- 请求时自动生成签名,无需开发者手动干预。
- 提供了腾讯微企付所需的 RSA、SHA-256、SM3、SM4 等算法工具类。
- 提供了腾讯微企付所需的 RSA、SM3、SM4、SHA-256 等算法工具类。
- 提供了解析回调通知事件等扩展方法。
---
## 基础用法
## 快速入门
### 安装:
@ -72,18 +69,22 @@ else
---
## 基础用法
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Basic_ModelDefinition.md)
- [如何加密请求中的敏感数据?](./Basic_RequestSensitiveDataEncryption.md)
- [如何解密响应中的敏感数据?](./Basic_ResponseSensitiveDataDecryption.md)
- [如何验证响应签名?](./Basic_ResponseSignatureVerification.md)
- [如何验证回调通知事件签名?](./Basic_EventSignatureVerification.md)
---
## 高级技巧
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Advanced_ModelDefinition.md)
- [如何加密请求中的敏感数据?](./Advanced_RequestSensitiveDataEncryption.md)
- [如何解密响应中的敏感数据?](./Advanced_ResponseSensitiveDataDecryption.md)
- [如何验证响应签名?](./Advanced_ResponseSignatureVerification.md)
- [如何验证回调通知事件签名?](./Advanced_EventSignatureVerification.md)
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
- [如何指定 JSON 序列化器?](./Advanced_JsonSerializer.md)

View File

@ -18,7 +18,7 @@
本库会定期随微信官方更新接口或模型,但也会偶有疏漏。如果你在使用中遇到了因接口或模型定义而产生的问题,欢迎提出 Issue。
如果你的项目来不及等待 Issue 被处理,你可以自行扩展相关 API。
在 Issue 被处理之前,你也可以选择自行扩展 API。
---

View File

@ -1,28 +1,22 @@
# SKIT.FlurlHttpClient.Wechat.TenpayV2
基于 `Flurl.Http` 的[微信商户平台](https://pay.weixin.qq.com/) API v2 版客户端
基于 `Flurl.Http` 的[微信商户平台](https://pay.weixin.qq.com/) HTTP API SDK
如需微信支付 v3 版 API 客户端,请移步 [`SKIT.FlurlHttpClient.WechantTenpayV3`](../WechatTenpayV3/README.md) 模块。
本模块仅支持微信支付 v2 版 API如需接入微信支付 v3 版 API请移步 [`SKIT.FlurlHttpClient.WechantTenpayV3`](../WechatTenpayV3/README.md) 模块。
---
## 功能
- 基于微信支付 v2 版 API 封装。
- 支持普通商户、境内服务商、银行服务商、跨境支付三种模式。
- 支持普通商户、境内服务商、银行服务商、跨境支付四种模式,同时支持企业微信的企业支付相关功能。
- 请求时自动生成签名,无需开发者手动干预。
- 提供了微信支付所需的 AES、MD5、HMAC-SHA-256 等算法工具类。
- 提供了生成调起支付签名、解析回调通知事件等扩展方法。
> **注意**:本库仅仅包含微信支付未提供 v3 版 API 的部分功能,如需微信支付 v3 版 API 客户端,欢迎使用 [`SKIT.FlurlHttpClient.WechantTenpayV3`](../WechatTenpayV3/README.md) 模块。
- 提供了调起支付签名、解析回调通知事件敏感数据等扩展方法。
---
## 基础用法
## 快速入门
### 安装:
@ -86,16 +80,20 @@ else
---
## 基础用法
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Basic_ModelDefinition.md)
- [如何解密回调通知事件中的敏感数据?](./Basic_EventInfoDecryption.md)
- [如何验证回调通知事件签名?](./Basic_EventSignatureVerification.md)
- [如何生成客户端JSAPI、App、小程序等所需的参数及签名](./Basic_Parameters.md)
---
## 高级技巧
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Advanced_ModelDefinition.md)
- [如何解密回调通知事件中的敏感数据?](./Advanced_EventInfoDecryption.md)
- [如何验证回调通知事件签名?](./Advanced_EventSignatureVerification.md)
- [如何生成客户端JSAPI、App、小程序等所需的参数及签名](./Advanced_Parameters.md)
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
- [如何指定 JSON 序列化器?](./Advanced_JsonSerializer.md)

View File

@ -12,7 +12,7 @@
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需区分文件格式之间的不同。
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
有关密钥文件格式的更多介绍,请参阅本文档[《基础用法 - 如何加密请求中的敏感数据?》](./Basic_RequestSensitiveDataEncryption.md)的有关章节。
---

View File

@ -25,13 +25,13 @@
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
有关密钥文件格式的更多介绍,请参阅本文档[《基础用法 - 如何加密请求中的敏感数据?》](./Basic_RequestSensitiveDataEncryption.md)的有关章节。
---
### 验签流程
验证回调通知事件签名的方法与验证响应签名的类似,请参阅本文档[《高级技巧 - 如何验证响应签名?》](./Advanced_ResponseSignatureVerification.md)的有关章节。
验证回调通知事件签名的方法与验证响应签名的类似,请参阅本文档[《基础用法 - 如何验证响应签名?》](./Basic_ResponseSignatureVerification.md)的有关章节。
同样地,你既可以利用本库提供的 `RSAUtility` 工具类自行进行签名验证,也可以通过 `CertificateManager` 尝试自动完成签名验证:
@ -66,4 +66,4 @@ if (!ret)
### 通过 `CertificateManager` 管理平台证书信息:
请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)下的同名章节。
请参阅本文档[《基础用法 - 如何加密请求中的敏感数据?》](./Basic_RequestSensitiveDataEncryption.md)下的同名章节。

View File

@ -1,4 +1,4 @@
## 如何扩展额外的 API
## 如何自定义额外的 API 接口
---

View File

@ -18,7 +18,7 @@
本库会定期随微信官方更新接口或模型,但也会偶有疏漏。如果你在使用中遇到了因接口或模型定义而产生的问题,欢迎提出 Issue。
如果你的项目来不及等待 Issue 被处理,你可以自行扩展相关 API。详细方式请参阅本文档[《高级技巧 - 如何扩展额外的 API》](./Advanced_Extensions.md)。
在 Issue 被处理之前,你也可以选择自行扩展 API。详细方式请参阅本文档[《基础用法 - 如何扩展额外的 API》](./Basic_Extensions.md)。
---

View File

@ -25,7 +25,7 @@
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
有关密钥文件格式的更多介绍,请参阅本文档[《基础用法 - 如何加密请求中的敏感数据?》](./Basic_RequestSensitiveDataEncryption.md)的有关章节。
---
@ -75,4 +75,4 @@ if (!ret)
### 通过 `CertificateManager` 管理平台证书信息:
请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)下的同名章节。
请参阅本文档[《基础用法 - 如何加密请求中的敏感数据?》](./Basic_RequestSensitiveDataEncryption.md)下的同名章节。

View File

@ -1,26 +1,22 @@
# SKIT.FlurlHttpClient.Wechat.TenpayV3
基于 `Flurl.Http` 的[微信商户平台](https://pay.weixin.qq.com/) API v3 版客户端
基于 `Flurl.Http` 的[微信商户平台](https://pay.weixin.qq.com/) HTTP API SDK
如需微信支付 v2 版 API 客户端,请移步 [`SKIT.FlurlHttpClient.WechantTenpayV2`](../WechatTenpayV2/README.md) 模块。
本模块仅支持微信支付 v3 版 API如需接入微信支付 v2 版 API请移步 [`SKIT.FlurlHttpClient.WechantTenpayV2`](../WechatTenpayV2/README.md) 模块。
---
## 功能
- 基于微信支付 v3 版 API 封装。
- 支持直连商户、服务商两种模式。
- 请求时自动生成签名(同时支持国际 RSA 算法或国密 SM 算法),无需开发者手动干预。
- 提供了微信支付所需的 RSA、AES、SM2/SM3/SM4、SHA-256 等算法工具类。
- 提供了生成调起支付签名、加密请求中敏感数据、解密响应中敏感数据、解析回调通知事件敏感数据等扩展方法。
- 请求时自动生成签名(支持国际 RSA 算法或国密 SM 算法),无需开发者手动干预。
- 提供了微信支付所需的 AES、RSA、SM2/SM3/SM4、SHA-256 等算法工具类。
- 提供了调起支付签名、解析响应敏感数据、解析回调通知事件敏感数据等扩展方法。
---
## 基础用法
## 快速入门
### 安装:
@ -90,28 +86,32 @@ else
---
## 基础用法
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Basic_ModelDefinition.md)
- [如何查看商户证书序列号?](./Basic_CertificateSerialNumber.md)
- [如何加密请求中的敏感数据?](./Basic_RequestSensitiveDataEncryption.md)
- [如何解密响应中的敏感数据?](./Basic_ResponseSensitiveDataDecryption.md)
- [如何验证响应签名?](./Basic_ResponseSignatureVerification.md)
- [如何解密回调通知事件中的敏感数据?](./Basic_EventResourceDecryption.md)
- [如何验证回调通知事件签名?](./Basic_EventSignatureVerification.md)
- [如何生成客户端JSAPI、App、小程序等所需的参数及二次签名](./Basic_Parameters.md)
- [如何自定义额外的 API 接口?](./Basic_Extensions.md)
- [如何接入国密算法?](./Basic_SMAlgorithm.md)
---
## 高级技巧
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Advanced_ModelDefinition.md)
- [如何查看商户证书序列号?](./Advanced_CertificateSerialNumber.md)
- [如何加密请求中的敏感数据?](./Advanced_RequestSensitiveDataEncryption.md)
- [如何解密响应中的敏感数据?](./Advanced_ResponseSensitiveDataDecryption.md)
- [如何验证响应签名?](./Advanced_ResponseSignatureVerification.md)
- [如何解密回调通知事件中的敏感数据?](./Advanced_EventResourceDecryption.md)
- [如何验证回调通知事件签名?](./Advanced_EventSignatureVerification.md)
- [如何生成客户端JSAPI、App、小程序等所需的参数及二次签名](./Advanced_Parameters.md)
- [如何接入国密算法?](./Advanced_SMAlgorithm.md)
- [如何扩展额外的 API](./Advanced_Extensions.md)
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
- [如何指定 JSON 序列化器?](./Advanced_JsonSerializer.md)

View File

@ -1,4 +1,4 @@
## 如何扩展额外的 API
## 如何自定义额外的 API 接口
---

View File

@ -16,7 +16,7 @@
本库会定期随微信官方更新接口或模型,但也会偶有疏漏。如果你在使用中遇到了因接口或模型定义而产生的问题,欢迎提出 Issue。
如果你的项目来不及等待 Issue 被处理,你可以自行扩展相关 API。详细方式请参阅本文档[《高级技巧 - 如何扩展额外的 API》](./Advanced_Extensions.md)。
在 Issue 被处理之前,你也可以选择自行扩展 API。详细方式请参阅本文档[《基础用法 - 如何扩展额外的 API》](./Basic_Extensions.md)。
---

View File

@ -1,22 +1,19 @@
# SKIT.FlurlHttpClient.Wechat.Work
基于 `Flurl.Http` 的[企业微信](https://work.weixin.qq.com/) API 客户端
基于 `Flurl.Http` 的[企业微信](https://work.weixin.qq.com/) HTTP API SDK
---
## 功能
- 基于企业微信 API 封装。
- 支持企业内部开发、第三方应用开发、服务商代开发、智慧硬件开发四种模式。
- 提供了企业微信 API 所需的 SHA-1、AES 等算法工具类。
- 提供了企业微信 API 所需的 AES、SHA-1 等算法工具类。
- 提供了 JS-SDK 签名、解析回调通知事件等扩展方法。
---
## 基础用法
## 快速入门
### 安装:
@ -72,16 +69,20 @@ else
---
## 基础用法
- [如何快速找到需要调用的 API 模型类名 / 方法名?](./Basic_ModelDefinition.md)
- [如何解析回调通知事件?](./Basic_EventDeserialization.md)
- [如何生成 JS-SDK 所需的参数及签名?](./Basic_Parameters.md)
- [如何自定义额外的 API 接口?](./Basic_Extensions.md)
---
## 高级技巧
- [如何快速找到需要调用的 API 模型类名 / 方法名?](./Advanced_ModelDefinition.md)
- [如何解析回调通知事件?](./Advanced_EventDataDeserialization.md)
- [如何生成 JS-SDK 所需的参数及签名?](./Advanced_Parameters.md)
- [如何扩展额外的 API](./Advanced_Extensions.md)
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
- [如何指定 JSON 序列化器?](./Advanced_JsonSerializer.md)

View File

@ -47,8 +47,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample.Controllers
{
// NOTICE:
// 需提前注入 CertificateManager、并下载平台证书才可以使用扩展方法执行验签操作。
// 有关 CertificateManager 的用法请参阅《开发文档 / 高级技巧 / 如何验证回调通知事件签名?》。
// 后续如何解密并反序列化,请参阅《开发文档 / 高级技巧 / 如何解密回调通知事件中的敏感数据?》。
// 有关 CertificateManager 的用法请参阅《开发文档 / 基础用法 / 如何验证回调通知事件签名?》。
// 后续如何解密并反序列化,请参阅《开发文档 / 基础用法 / 如何解密回调通知事件中的敏感数据?》。
return new JsonResult(new { code = "FAIL", message = "验签失败" });
}

View File

@ -41,8 +41,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample.Services.BackgroundService
if (response.IsSuccessful())
{
// NOTICE:
// 如果构造 Client 时启用了 `AutoDecryptResponseSensitiveProperty` 配置项,则无需再手动执行下面被注释的解密方法:
// response = client.DecryptResponseSensitiveProperty(response);
// 如果构造 Client 时启用了 `AutoDecryptResponseSensitiveProperty` 配置项,则无需再执行下面一行的手动解密方法:
response = client.DecryptResponseSensitiveProperty(response);
foreach (var certificate in response.CertificateList)
{

View File

@ -38,8 +38,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample.Services.HttpClients.Imple
MerchantCertificateSerialNumber = tenpayMerchantConfig.CertificateSerialNumber,
MerchantCertificatePrivateKey = tenpayMerchantConfig.CertificatePrivateKey,
PlatformCertificateManager = _tenpayCertificateManagerFactory.Create(tenpayMerchantConfig.MerchantId),
AutoEncryptRequestSensitiveProperty = true,
AutoDecryptResponseSensitiveProperty = true
AutoEncryptRequestSensitiveProperty = false,
AutoDecryptResponseSensitiveProperty = false
};
var wechatTenpayClient = new WechatTenpayClient(wechatTenpayClientOptions);
wechatTenpayClient.Configure((settings) => settings.FlurlHttpClientFactory = new DelegatingFlurlClientFactory(_httpClientFactory));

View File

@ -38,8 +38,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample.Controllers
{
// NOTICE:
// 需提前注入 CertificateManager、并添加平台证书才可以使用扩展方法执行验签操作。
// 有关 CertificateManager 的用法请参阅《开发文档 / 高级技巧 / 如何验证回调通知事件签名?》。
// 后续如何解密并反序列化,请参阅《开发文档 / 高级技巧 / 如何解密回调通知事件中的敏感数据?》。
// 有关 CertificateManager 的用法请参阅《开发文档 / 基础用法 / 如何验证回调通知事件签名?》。
// 后续如何解密并反序列化,请参阅《开发文档 / 基础用法 / 如何解密回调通知事件中的敏感数据?》。
return Json(new { code = "FAIL", message = "验签失败" });
}

View File

@ -23,8 +23,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample.Services.BackgroundJobs
if (response.IsSuccessful())
{
// NOTICE:
// 如果构造 Client 时启用了 `AutoDecryptResponseSensitiveProperty` 配置项,则无需再手动执行下面被注释的解密方法:
// response = client.DecryptResponseSensitiveProperty(response);
// 如果构造 Client 时启用了 `AutoDecryptResponseSensitiveProperty` 配置项,则无需再执行下面一行的手动解密方法:
response = client.DecryptResponseSensitiveProperty(response);
foreach (var certificate in response.CertificateList)
{

View File

@ -27,8 +27,8 @@
MerchantCertSerialNumber = tenpayMerchantOptions.CertSerialNumber,
MerchantCertPrivateKey = tenpayMerchantOptions.CertPrivateKey,
CertificateManager = _tenpayCertificateManagerFactory.Create(tenpayMerchantOptions.MerchantId),
AutoEncryptRequestSensitiveProperty = true,
AutoDecryptResponseSensitiveProperty = true
AutoEncryptRequestSensitiveProperty = false,
AutoDecryptResponseSensitiveProperty = false
});
}
}

View File

@ -2,7 +2,7 @@
[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.Wechat.Ads.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.Ads) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?label=License)](https://mit-license.org/)
基于 `Flurl.Http` 的微信广告平台 API 版客户端
基于 `Flurl.Http` 的微信广告平台 HTTP API SDK
---

View File

@ -85,7 +85,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
using var httpContent = Utilities.FileHttpContentBuilder.Build(fileName: request.FileName, fileBytes: request.FileBytes, fileContentType: request.FileContentType, formDataName: "media");
if (TYPE_VIDEO.Equals(request.Type))
{
httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(client.JsonSerializer.Serialize(request))), "\"description\"");
httpContent.Add(new StringContent(client.JsonSerializer.Serialize(request), Encoding.UTF8), "\"description\"");
}
return await client.SendRequestAsync<Models.CgibinMaterialAddMaterialResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken);
}

View File

@ -2,14 +2,14 @@
[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.Wechat.Api.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.Api) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?label=License)](https://mit-license.org/)
基于 `Flurl.Http` 的微信公众平台 & 微信开放平台 API 客户端
基于 `Flurl.Http` 的微信公众平台 & 微信开放平台 HTTP API SDK
---
### 【功能特性】
- 基于微信公众平台 & 微信开放平台 API 封装。
- 提供了微信公众平台 & 微信开放平台 API 所需的 SHA-1、HMAC-SHA-256、AES 等算法工具类。
- 提供了微信公众平台 & 微信开放平台 API 所需的 AES、SHA-1、HMAC-SHA-256 等算法工具类。
- 提供了 JS-SDK 签名、解析回调通知事件等扩展方法。
---

View File

@ -2,7 +2,7 @@
[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.Wechat.OpenAI.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.OpenAI) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?label=License)](https://mit-license.org/)
基于 `Flurl.Http` 的微信对话开放平台 API 版客户端
基于 `Flurl.Http` 的微信对话开放平台 HTTP API SDK
---

View File

@ -2,7 +2,7 @@
[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.Wechat.TenpayBusiness.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.TenpayBusiness) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?label=License)](https://mit-license.org/)
基于 `Flurl.Http` 的腾讯微企付 API 客户端
基于 `Flurl.Http` 的腾讯微企付 HTTP API SDK
---

View File

@ -2,7 +2,7 @@
[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.Wechat.TenpayV2.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.TenpayV2) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?label=License)](https://mit-license.org/)
基于 `Flurl.Http` 的微信商户平台 API v2 版客户端
基于 `Flurl.Http` 的微信商户平台 HTTP API SDK
**注意**:本库仅仅包含微信支付未提供 v3 版 API 的部分功能,如需微信支付 v3 版 API 客户端,欢迎使用 [`SKIT.FlurlHttpClient.Wechat.TenpayV3`](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.TenpayV3)。

View File

@ -2,7 +2,7 @@
[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.Wechat.TenpayV3.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.TenpayV3) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?label=License)](https://mit-license.org/)
基于 `Flurl.Http` 的微信商户平台 API v3 版客户端
基于 `Flurl.Http` 的微信商户平台 HTTP API SDK
---
@ -10,8 +10,8 @@
- 基于微信支付 v3 版 API 封装。
- 支持直连商户、服务商两种模式。
- 请求时自动生成签名(同时支持国际 RSA 算法或国密 SM 算法),无需开发者手动干预。
- 提供了微信支付所需的 RSA、AES、SM2/SM3/SM4、SHA-256 等算法工具类。
- 请求时自动生成签名(支持国际 RSA 算法或国密 SM 算法),无需开发者手动干预。
- 提供了微信支付所需的 AES、RSA、SM2/SM3/SM4、SHA-256 等算法工具类。
- 提供了调起支付签名、解析响应敏感数据、解析回调通知事件敏感数据等扩展方法。
---

View File

@ -2,7 +2,7 @@
[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.Wechat.Work.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Wechat.Work) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat?label=License)](https://mit-license.org/)
基于 `Flurl.Http` 的企业微信 API 客户端
基于 `Flurl.Http` 的企业微信 HTTP API SDK
---
@ -10,7 +10,7 @@
- 基于企业微信 API 封装。
- 支持企业内部开发、第三方应用开发、服务商代开发、智慧硬件开发四种模式。
- 提供了企业微信 API 所需的 SHA-1、AES 等算法工具类。
- 提供了企业微信 API 所需的 AES、SHA-1 等算法工具类。
- 提供了 JS-SDK 签名、解析回调通知事件等扩展方法。
---