docs: 完善文档

This commit is contained in:
Fu Diwei 2021-11-26 02:59:02 +08:00
parent 53b7ed0b60
commit 0c7cd5e1df
9 changed files with 39 additions and 15 deletions

View File

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

View File

@ -12,7 +12,7 @@
需要注意的是,平台为商户提供的是 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)的有关章节。
---

View File

@ -49,3 +49,27 @@ public class MyFakeEvent : WechatTenpayEvent.Types.IDecryptedResource
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; }
}
```

View File

@ -25,7 +25,7 @@
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestDataEncryption.md)的有关章节。
有关密钥文件格式的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
---
@ -54,7 +54,7 @@ bool ret = RSAUtility.VerifyWithSHA256(publicKey, data, sign);
bool ret = client.VerifyResponseSignature(response);
```
需要注意的是,使用该扩展方法前需先下载好平台证书,并存入全局的 `CertificateManager`。有关 `CertificateManager` 的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestDataEncryption.md)的有关章节。
需要注意的是,使用该扩展方法前需先下载好平台证书,并存入全局的 `CertificateManager`。有关 `CertificateManager` 的更多介绍,请参阅本文档[《高级技巧 - 如何加密请求中的敏感数据?》](./Advanced_RequestSensitiveDataEncryption.md)的有关章节。
---

View File

@ -102,13 +102,13 @@ else
- [如何验证响应签名?](./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)

View File

@ -1,12 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using SKIT.FlurlHttpClient.Wechat.TenpayV3;
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models;
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);
if (response.IsSuccessful())
{
response = client.DecryptResponseSensitiveProperty(response);
// 注意:如果启用了 AutoDecryptResponseSensitiveProperty则无需再手动执行下面被注释的解密方法
// response = client.DecryptResponseSensitiveProperty(response);
foreach (var certificateModel in response.CertificateList)
{
_certificateManager.AddEntry(new CertificateEntry(certificateModel));

View File

@ -1,7 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
using Flurl.Http.Configuration;
@ -41,7 +39,9 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample_Net5.Services.HttpClients.
MerchantV3Secret = wechatMerchant.SecretV3,
MerchantCertSerialNumber = wechatMerchant.CertSerialNumber,
MerchantCertPrivateKey = wechatMerchant.CertPrivateKey,
CertificateManager = _certificateManager
CertificateManager = _certificateManager,
AutoEncryptRequestSensitiveProperty = true,
AutoDecryptResponseSensitiveProperty = true
});
}
}