test(tenpayv3): 补充基于国密算法的客户端测试

This commit is contained in:
fudiwei
2022-11-28 12:10:04 +08:00
parent c75c68bde7
commit 23346ceab1
21 changed files with 102 additions and 80 deletions

View File

@@ -7,31 +7,41 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
{
static TestClients()
{
var certificateManager = new Settings.InMemoryCertificateManager();
Instance = new WechatTenpayClient(new WechatTenpayClientOptions()
var manager = new Settings.InMemoryCertificateManager();
InstanceUseRSA = new WechatTenpayClient(new WechatTenpayClientOptions()
{
MerchantId = TestConfigs.WechatMerchantId,
MerchantV3Secret = TestConfigs.WechatMerchantSecret,
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantCertificateSerialNumber,
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantCertificatePrivateKey,
PlatformCertificateManager = certificateManager
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantRSACertificateSerialNumber,
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantRSACertificatePrivateKey,
PlatformCertificateManager = manager
});
InstanceUseSM2 = new WechatTenpayClient(new WechatTenpayClientOptions()
{
MerchantId = TestConfigs.WechatMerchantId,
MerchantV3Secret = TestConfigs.WechatMerchantSecret,
SignScheme = Constants.SignSchemes.WECHATPAY2_SM2_WITH_SM3,
MerchantCertificateSerialNumber = TestConfigs.WechatMerchantSM2CertificateSerialNumber!,
MerchantCertificatePrivateKey = TestConfigs.WechatMerchantSM2CertificatePrivateKey!,
PlatformCertificateManager = manager
});
}
internal static async Task InitializeCertificateManagerAsync()
{
var request = new Models.QueryCertificatesRequest();
var response = await Instance.ExecuteQueryCertificatesAsync(request);
var request = new Models.QueryCertificatesRequest() { AlgorithmType = "ALL" };
var response = await InstanceUseRSA.ExecuteQueryCertificatesAsync(request);
if (!response.IsSuccessful())
throw new Exception();
foreach (var certificate in Instance.DecryptResponseSensitiveProperty(response).CertificateList)
foreach (var certificate in InstanceUseRSA.DecryptResponseSensitiveProperty(response).CertificateList)
{
Instance.PlatformCertificateManager.AddEntry(new Settings.CertificateEntry(certificate));
InstanceUseRSA.PlatformCertificateManager.AddEntry(new Settings.CertificateEntry(certificate));
}
}
public static readonly WechatTenpayClient Instance;
public static readonly WechatTenpayClient InstanceUseRSA;
public static readonly WechatTenpayClient InstanceUseSM2;
}
}