mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-12-29 18:04:42 +08:00
feat(tenpayv3): 适配国密接入模式
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using Xunit;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
@@ -8,11 +8,12 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
[Fact(DisplayName = "测试用例:`CertificateEntry` 序列化")]
|
||||
public void TestCertificateEntrySerialization()
|
||||
{
|
||||
var entry = new Settings.CertificateEntry("SN", "-----BEGIN CERTIFICATE-----END CERTIFICATE-----", DateTimeOffset.Now, DateTimeOffset.Now);
|
||||
var entry = new Settings.CertificateEntry("RSA", "FAKE SERIAL NUMBER", "-----BEGIN CERTIFICATE-----FAKE CERTIFICATE-----END CERTIFICATE-----", DateTimeOffset.Now, DateTimeOffset.Now);
|
||||
|
||||
var serialized1 = Newtonsoft.Json.JsonConvert.SerializeObject(entry);
|
||||
var deserialized1 = Newtonsoft.Json.JsonConvert.DeserializeObject<Settings.CertificateEntry>(serialized1);
|
||||
|
||||
Assert.Equal(entry.AlgorithmType, deserialized1.AlgorithmType);
|
||||
Assert.Equal(entry.SerialNumber, deserialized1.SerialNumber);
|
||||
Assert.Equal(entry.Certificate, deserialized1.Certificate);
|
||||
Assert.Equal(entry.EffectiveTime, deserialized1.EffectiveTime);
|
||||
@@ -21,6 +22,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
var serialized2 = System.Text.Json.JsonSerializer.Serialize(entry);
|
||||
var deserialized2 = System.Text.Json.JsonSerializer.Deserialize<Settings.CertificateEntry>(serialized2);
|
||||
|
||||
Assert.Equal(entry.AlgorithmType, deserialized2.AlgorithmType);
|
||||
Assert.Equal(entry.SerialNumber, deserialized2.SerialNumber);
|
||||
Assert.Equal(entry.Certificate, deserialized2.Certificate);
|
||||
Assert.Equal(entry.EffectiveTime, deserialized2.EffectiveTime);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Xunit;
|
||||
|
||||
@@ -12,8 +12,9 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
private const string MockText = "mock_text";
|
||||
private readonly Lazy<WechatTenpayClient> MockClientInstance = new Lazy<WechatTenpayClient>(() =>
|
||||
{
|
||||
var certManager = new Settings.InMemoryCertificateManager();
|
||||
certManager.AddEntry(new Settings.CertificateEntry(
|
||||
var manager = new Settings.InMemoryCertificateManager();
|
||||
manager.AddEntry(new Settings.CertificateEntry(
|
||||
algorithmType: "RSA",
|
||||
serialNumber: RSA_CERTSN,
|
||||
certificate: RSA_CERTIFICATE,
|
||||
effectiveTime: DateTimeOffset.MinValue,
|
||||
@@ -21,7 +22,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
));
|
||||
return new WechatTenpayClient(new WechatTenpayClientOptions()
|
||||
{
|
||||
PlatformCertificateManager = certManager
|
||||
PlatformCertificateManager = manager
|
||||
});
|
||||
}, isThreadSafe: false);
|
||||
|
||||
@@ -35,7 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
};
|
||||
var data = MockClientInstance.Value.EncryptRequestSensitiveProperty(mock);
|
||||
|
||||
Assert.Equal(RSA_CERTSN, data.WechatpayCertificateSerialNumber);
|
||||
Assert.Equal(RSA_CERTSN, data.WechatpayCertificateSerialNumber, ignoreCase: true);
|
||||
Assert.Equal(MockText, data.Account);
|
||||
Assert.Equal(MockText, Utilities.RSAUtility.DecryptWithECB(RSA_PRIVATE_KEY, data.Name!));
|
||||
}
|
||||
@@ -56,7 +57,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
};
|
||||
var data = MockClientInstance.Value.EncryptRequestSensitiveProperty(mock);
|
||||
|
||||
Assert.Equal(RSA_CERTSN, data.WechatpayCertificateSerialNumber);
|
||||
Assert.Equal(RSA_CERTSN, data.WechatpayCertificateSerialNumber, ignoreCase: true);
|
||||
Assert.Equal(MockText, data.ReceiverList[0].Account);
|
||||
Assert.Equal(MockText, Utilities.RSAUtility.DecryptWithECB(RSA_PRIVATE_KEY, data.ReceiverList[0].Name!));
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Threading.Tasks;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
@@ -17,6 +17,12 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
|
||||
Assert.True(response.RawHeaders.Count > 0);
|
||||
Assert.True(response.RawBytes.Length > 0);
|
||||
Assert.True(TestClients.Instance.VerifyResponseSignature(response));
|
||||
Assert.NotNull(response.WechatpayRequestId);
|
||||
Assert.NotNull(response.WechatpayNonce);
|
||||
Assert.NotNull(response.WechatpayTimestamp);
|
||||
Assert.NotNull(response.WechatpaySignature);
|
||||
Assert.NotNull(response.WechatpaySignatureType);
|
||||
Assert.NotNull(response.WechatpayCertificateSerialNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user