docs: 完善文档

This commit is contained in:
Fu Diwei
2021-11-25 21:45:34 +08:00
parent c4990f76b9
commit e0ff72403e
3 changed files with 38 additions and 10 deletions

View File

@@ -42,7 +42,8 @@ bool ret = client.VerifyEventSignature(
```csharp
bool ret = client.VerifyEventSignature(timestamp, nonce, body, signature, serialNumber, out Exception error);
if (!ret) {
if (!ret)
{
Console.WriteLine(error);
Console.WriteLine(error.InnerException);
}

View File

@@ -133,29 +133,55 @@ client.EncryptRequestSensitiveProperty(request);
```csharp
using StackExchange.Redis;
using Newtonsoft.Json;
public class RedisCertificateManager : CertificateManager
{
private readonly ConnectionMultiplexer _connection;
private const string REDIS_KEY_PREFIX = "wxpaypc-";
protected ConnectionMultiplexer Connection { get; }
public RedisCertificateManager(string connectionString)
{
_connection = ConnectionMultiplexer.Connect(connectionString);
Connection = ConnectionMultiplexer.Connect(connectionString);
}
private string GenerateRedisKey(string serialNumber)
protected string GenerateRedisKey(string serialNumber)
{
return string.Format("wxpaypc-{0}", serialNumber);
return $"{REDIS_KEY_PREFIX}{serialNumber}";
}
public override string GetCertificate(string serialNumber)
public override IEnumerable<CertificateEntry> AllEntries()
{
return _connection.StringGet(GenerateRedisKey(serialNumber));
RedisKey[] keys = Connection.GetServer().Keys($"{REDIS_KEY_PREFIX}*");
RedisValue[] values = Connection.GetDatabase().StringGet(keys);
return values.Where(e => e.HasValue).Select(e => JsonConvert.DeserializeObject<CertificateEntry>(e.ToString()));
}
public override void SetCertificate(string serialNumber, string certificate)
public override void AddEntry(CertificateEntry entry)
{
_connection.StringSet(GenerateRedisKey(serialNumber), certificate, TimeSpan.FromDays(90));
string key = GenerateRedisKey(serialNumber);
string value = JsonConvert.SerializeObject(entry);
TimeSpan expiresIn = entry.ExpireTime - DateTimeOffset.Now;
Connection.GetDatabase().StringSet(key, value, expiresIn);
}
public override CertificateEntry? GetEntry(string serialNumber)
{
string key = GenerateRedisKey(serialNumber);
string value = Connection.GetDatabase().StringGet(GenerateRedisKey(serialNumber));
if (!string.IsNullOrEmpty(value))
{
return JsonConvert.DeserializeObject<CertificateEntry>(value);
}
return null;
}
public override bool RemoveEntry(string serialNumber)
{
string key = GenerateRedisKey(serialNumber);
return Connection.GetDatabase().KeyDelete(key);
}
}
```

View File

@@ -64,7 +64,8 @@ bool ret = client.VerifyResponseSignature(response);
```csharp
bool ret = client.VerifyResponseSignature(response, out Exception error);
if (!ret) {
if (!ret)
{
Console.WriteLine(error);
Console.WriteLine(error.InnerException);
}