Skip to content

Commit

Permalink
升级到 .NET 9.0
Browse files Browse the repository at this point in the history
  • Loading branch information
roc916 committed Nov 24, 2024
1 parent 6f4e65a commit 2a0a515
Show file tree
Hide file tree
Showing 11 changed files with 48 additions and 23 deletions.
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
<GenerateDocumentationFile Condition="'$(Configuration)' == 'Release'">true</GenerateDocumentationFile>
<GeneratePackageOnBuild Condition="'$(Configuration)' == 'Release'">true</GeneratePackageOnBuild>
<LangVersion>latest</LangVersion>
<SystemTextJsonPackageVersion>8.0.5</SystemTextJsonPackageVersion>
<MicrosoftExtensionsHttpPackageVersion>8.0.1</MicrosoftExtensionsHttpPackageVersion>
<SystemTextJsonPackageVersion>9.0.0</SystemTextJsonPackageVersion>
<MicrosoftExtensionsHttpPackageVersion>9.0.0</MicrosoftExtensionsHttpPackageVersion>
</PropertyGroup>

<ItemGroup>
Expand All @@ -31,7 +31,7 @@
<None Include="$(MSBuildThisFileDirectory)README.md" Pack="true" Visible="false" PackagePath="" />
</ItemGroup>

<ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1' or '$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0' or '$(TargetFramework)' == 'net8.0'">
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"sdk": {
"version": "8.0.403",
"version": "9.0.100",
"rollForward": "latestFeature"
}
}
2 changes: 1 addition & 1 deletion samples/WebApplicationSample/WebApplicationSample.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>
<UserSecretsId>a59ca38e-9b52-44fe-b3d2-8cb5a1641623</UserSecretsId>
<SignAssembly>false</SignAssembly>
<GenerateDocumentationFile>false</GenerateDocumentationFile>
Expand Down
4 changes: 2 additions & 2 deletions src/Essensoft.Paylink.Alipay/Essensoft.Paylink.Alipay.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.1;netcoreapp3.1;net6.0;net7.0;net8.0</TargetFrameworks>
<TargetFrameworks>netstandard2.1;netcoreapp3.1;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
<PackageId>Essensoft.Paylink.Alipay</PackageId>
<PackageTags>Essensoft;Paylink;Alipay;支付宝</PackageTags>
</PropertyGroup>
Expand All @@ -11,7 +11,7 @@
<PackageReference Include="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsHttpPackageVersion)" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1' or '$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0' or '$(TargetFramework)' == 'net8.0'">
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1' or '$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0' or '$(TargetFramework)' == 'net8.0' or '$(TargetFramework)' == 'net9.0'">
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

Expand Down
12 changes: 12 additions & 0 deletions src/Essensoft.Paylink.Alipay/Utility/AlipayCertUtil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,27 @@ public static X509Certificate2 Parse(string certificate)
{
if (File.Exists(certificate))
{
#if NET9_0_OR_GREATER
return X509CertificateLoader.LoadCertificateFromFile(certificate);
#else
return new X509Certificate2(certificate);
#endif
}
else if (Base64Util.IsBase64String(certificate))
{
#if NET9_0_OR_GREATER
return X509CertificateLoader.LoadCertificate(Convert.FromBase64String(certificate));
#else
return new X509Certificate2(Convert.FromBase64String(certificate));
#endif
}
else
{
#if NET9_0_OR_GREATER
return X509CertificateLoader.LoadCertificate(Encoding.ASCII.GetBytes(certificate));
#else
return new X509Certificate2(Encoding.ASCII.GetBytes(certificate));
#endif
}
}
catch (CryptographicException ex)
Expand Down
6 changes: 1 addition & 5 deletions src/Essensoft.Paylink.Alipay/Utility/FileItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,7 @@ public byte[] GetContent()
{
if (content == null && fileInfo != null && fileInfo.Exists)
{
using (var fileStream = fileInfo.OpenRead())
{
content = new byte[fileStream.Length];
fileStream.Read(content, 0, content.Length);
}
content = File.ReadAllBytes(fileInfo.FullName);
}

return content;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.1;net6.0;net7.0;net8.0</TargetFrameworks>
<TargetFrameworks>netstandard2.1;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
<PackageId>Essensoft.Paylink.Security</PackageId>
<PackageTags>Essensoft;Paylink;Security</PackageTags>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netstandard2.1;netcoreapp3.1;net6.0;net7.0;net8.0</TargetFrameworks>
<TargetFrameworks>netstandard2.1;netcoreapp3.1;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
<PackageId>Essensoft.Paylink.WeChatPay</PackageId>
<PackageTags>Essensoft;Paylink;WeChatPay;微信支付</PackageTags>
</PropertyGroup>
Expand All @@ -11,7 +11,7 @@
<PackageReference Include="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsHttpPackageVersion)" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1' or '$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0' or '$(TargetFramework)' == 'net8.0'">
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1' or '$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0' or '$(TargetFramework)' == 'net8.0' or '$(TargetFramework)' == 'net9.0'">
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,14 @@ public Action<HttpMessageHandlerBuilder> Configure(Action<HttpMessageHandlerBuil
{
next(builder);

if (builder.PrimaryHandler is HttpClientHandler handler)
if (builder.Name.Contains(WeChatPayClient.Prefix))
{
if (builder.Name.Contains(WeChatPayClient.Prefix))
if (builder.PrimaryHandler is not HttpClientHandler)
{
builder.PrimaryHandler = new HttpClientHandler();
}

if (builder.PrimaryHandler is HttpClientHandler handler)
{
var certificateSerialNo = builder.Name.RemovePreFix(WeChatPayClient.Prefix);
if (_clientCertificateManager.TryGetValue(certificateSerialNo, out var clientCertificate))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,11 @@ public async Task<WeChatPayPlatformCertificate> GetCertificateAsync(IWeChatPayCl
case nameof(AEAD_AES_256_GCM):
{
var certStr = AEAD_AES_256_GCM.Decrypt(certificate.EncryptCertificate.Nonce, certificate.EncryptCertificate.Ciphertext, certificate.EncryptCertificate.AssociatedData, options.APIv3Key);

var x509cert = new X509Certificate2(Encoding.ASCII.GetBytes(certStr), string.Empty, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

#if NET9_0_OR_GREATER
var x509cert = X509CertificateLoader.LoadPkcs12(Encoding.UTF8.GetBytes(certStr), string.Empty, X509KeyStorageFlags.DefaultKeySet | X509KeyStorageFlags.Exportable);
#else
var x509cert = new X509Certificate2(Encoding.UTF8.GetBytes(certStr), string.Empty, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
#endif
var cert = new WeChatPayPlatformCertificate
{
MchId = options.MchId,
Expand Down Expand Up @@ -111,9 +113,11 @@ public async Task<WeChatPayPlatformCertificate> GetCertificateAsync(IWeChatPayCl
case nameof(AEAD_AES_256_GCM):
{
var certStr = AEAD_AES_256_GCM.Decrypt(certificate.EncryptCertificate.Nonce, certificate.EncryptCertificate.Ciphertext, certificate.EncryptCertificate.AssociatedData, options.APIv3Key);

var x509cert = new X509Certificate2(Encoding.ASCII.GetBytes(certStr), string.Empty, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

#if NET9_0_OR_GREATER
var x509cert = X509CertificateLoader.LoadPkcs12(Encoding.UTF8.GetBytes(certStr), string.Empty, X509KeyStorageFlags.DefaultKeySet | X509KeyStorageFlags.Exportable);
#else
var x509cert = new X509Certificate2(Encoding.UTF8.GetBytes(certStr), string.Empty, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
#endif
var cert = new WeChatPayPlatformCertificate
{
MchId = options.MchId,
Expand Down
8 changes: 8 additions & 0 deletions src/Essensoft.Paylink.WeChatPay/WeChatPayOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,19 @@ private void GetCertificateInfo()
{
if (File.Exists(Certificate))
{
#if NET9_0_OR_GREATER
Certificate2 = X509CertificateLoader.LoadPkcs12FromFile(Certificate, CertificatePassword, X509KeyStorageFlags.DefaultKeySet | X509KeyStorageFlags.Exportable);
#else
Certificate2 = new X509Certificate2(Certificate, CertificatePassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
#endif
}
else
{
#if NET9_0_OR_GREATER
Certificate2 = X509CertificateLoader.LoadPkcs12(Convert.FromBase64String(Certificate), CertificatePassword, X509KeyStorageFlags.DefaultKeySet | X509KeyStorageFlags.Exportable);
#else
Certificate2 = new X509Certificate2(Convert.FromBase64String(Certificate), CertificatePassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
#endif
}

CertificateSerialNo = Certificate2.GetSerialNumberString();
Expand Down

0 comments on commit 2a0a515

Please sign in to comment.