mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-07-17 01:46:20 +08:00
docs: 完善文档
This commit is contained in:
parent
53b7ed0b60
commit
0c7cd5e1df
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需区分文件格式之间的不同。
|
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需区分文件格式之间的不同。
|
||||||
|
|
||||||
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestDataEncryption.md)的有关章节。
|
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。
|
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。
|
||||||
|
|
||||||
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestDataEncryption.md)的有关章节。
|
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ bool ret = client.VerifyEventSignature(
|
|||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
需要注意的是,使用该扩展方法前需先下载好平台证书,并存入全局的 `CertificateManager`。有关 `CertificateManager` 的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestDataEncryption.md)的有关章节。
|
需要注意的是,使用该扩展方法前需先下载好平台证书,并存入全局的 `CertificateManager`。有关 `CertificateManager` 的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -49,3 +49,27 @@ public class MyFakeEvent : WechatTenpayEvent.Types.IDecryptedResource
|
|||||||
public string MyFakeProps { get; set; }
|
public string MyFakeProps { get; set; }
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 敏感信息字段
|
||||||
|
|
||||||
|
如果你扩展的自定义请求或响应模型中包含敏感信息字段,并希望可以通过本库提供的 `EncryptRequestSensitiveProperty()` 和 `DecryptResponseSensitiveProperty()` 两个扩展方法来实现自动加、解密,那么你需要在定义模型时额外指定一个特性:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public class MyFakeRequest : WechatTenpayRequest
|
||||||
|
{
|
||||||
|
[Newtonsoft.Json.JsonProperty("my_fake_props")]
|
||||||
|
[System.Text.Json.Serialization.JsonPropertyName("my_fake_props")]
|
||||||
|
[WechatTenpaySensitiveProperty("my_alg")]
|
||||||
|
public string MyFakeProps { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MyFakeResponse : WechatTenpayResponse
|
||||||
|
{
|
||||||
|
[Newtonsoft.Json.JsonProperty("my_fake_props")]
|
||||||
|
[System.Text.Json.Serialization.JsonPropertyName("my_fake_props")]
|
||||||
|
[WechatTenpaySensitiveProperty("my_alg")]
|
||||||
|
public string MyFakeProps { get; set; }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。
|
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。
|
||||||
|
|
||||||
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestDataEncryption.md)的有关章节。
|
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ bool ret = RSAUtility.VerifyWithSHA256(publicKey, data, sign);
|
|||||||
bool ret = client.VerifyResponseSignature(response);
|
bool ret = client.VerifyResponseSignature(response);
|
||||||
```
|
```
|
||||||
|
|
||||||
需要注意的是,使用该扩展方法前需先下载好平台证书,并存入全局的 `CertificateManager`。有关 `CertificateManager` 的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestDataEncryption.md)的有关章节。
|
需要注意的是,使用该扩展方法前需先下载好平台证书,并存入全局的 `CertificateManager`。有关 `CertificateManager` 的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -102,13 +102,13 @@ else
|
|||||||
|
|
||||||
- [如何验证响应签名?](./Advanced_ResponseSignatureVerification.md)
|
- [如何验证响应签名?](./Advanced_ResponseSignatureVerification.md)
|
||||||
|
|
||||||
- [如何加密请求中的敏感数据?](./Advanced_RequestDataEncryption.md)
|
- [如何加密请求中的敏感数据?](./Advanced_RequestSensitiveDataEncryption.md)
|
||||||
|
|
||||||
- [如何解密响应中的敏感数据?](./Advanced_ResponseDataDecryption.md)
|
- [如何解密响应中的敏感数据?](./Advanced_ResponseSensitiveDataDecryption.md)
|
||||||
|
|
||||||
- [如何验证回调通知事件签名?](./Advanced_EventDataSignatureVerification.md)
|
- [如何验证回调通知事件签名?](./Advanced_EventSignatureVerification.md)
|
||||||
|
|
||||||
- [如何解密回调通知事件中的敏感数据?](./Advanced_EventDataDecryption.md)
|
- [如何解密回调通知事件中的敏感数据?](./Advanced_EventResourceDecryption.md)
|
||||||
|
|
||||||
- [如何生成客户端调起支付时所需的参数及签名?](./Advanced_Payment.md)
|
- [如何生成客户端调起支付时所需的参数及签名?](./Advanced_Payment.md)
|
||||||
|
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using SKIT.FlurlHttpClient.Wechat.TenpayV3;
|
|
||||||
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models;
|
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models;
|
||||||
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Settings;
|
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Settings;
|
||||||
|
|
||||||
@ -49,7 +47,9 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample_Net5.Services.BackgroundSe
|
|||||||
var response = await client.ExecuteQueryCertificatesAsync(request, cancellationToken: stoppingToken);
|
var response = await client.ExecuteQueryCertificatesAsync(request, cancellationToken: stoppingToken);
|
||||||
if (response.IsSuccessful())
|
if (response.IsSuccessful())
|
||||||
{
|
{
|
||||||
response = client.DecryptResponseSensitiveProperty(response);
|
// 注意:如果启用了 AutoDecryptResponseSensitiveProperty,则无需再手动执行下面被注释的解密方法
|
||||||
|
// response = client.DecryptResponseSensitiveProperty(response);
|
||||||
|
|
||||||
foreach (var certificateModel in response.CertificateList)
|
foreach (var certificateModel in response.CertificateList)
|
||||||
{
|
{
|
||||||
_certificateManager.AddEntry(new CertificateEntry(certificateModel));
|
_certificateManager.AddEntry(new CertificateEntry(certificateModel));
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Flurl;
|
using Flurl;
|
||||||
using Flurl.Http;
|
using Flurl.Http;
|
||||||
using Flurl.Http.Configuration;
|
using Flurl.Http.Configuration;
|
||||||
@ -41,7 +39,9 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample_Net5.Services.HttpClients.
|
|||||||
MerchantV3Secret = wechatMerchant.SecretV3,
|
MerchantV3Secret = wechatMerchant.SecretV3,
|
||||||
MerchantCertSerialNumber = wechatMerchant.CertSerialNumber,
|
MerchantCertSerialNumber = wechatMerchant.CertSerialNumber,
|
||||||
MerchantCertPrivateKey = wechatMerchant.CertPrivateKey,
|
MerchantCertPrivateKey = wechatMerchant.CertPrivateKey,
|
||||||
CertificateManager = _certificateManager
|
CertificateManager = _certificateManager,
|
||||||
|
AutoEncryptRequestSensitiveProperty = true,
|
||||||
|
AutoDecryptResponseSensitiveProperty = true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user