diff --git a/Samples/All/Senparc.Weixin.Sample.CommonService/Senparc.Weixin.Net8Sample.CommonService.csproj b/Samples/All/Senparc.Weixin.Sample.CommonService/Senparc.Weixin.Net8Sample.CommonService.csproj
index b1fe23845e..a14c8865a8 100644
--- a/Samples/All/Senparc.Weixin.Sample.CommonService/Senparc.Weixin.Net8Sample.CommonService.csproj
+++ b/Samples/All/Senparc.Weixin.Sample.CommonService/Senparc.Weixin.Net8Sample.CommonService.csproj
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/Samples/All/net8-mvc/Senparc.Weixin.Sample.Net8/Senparc.Weixin.Sample.net8.csproj b/Samples/All/net8-mvc/Senparc.Weixin.Sample.Net8/Senparc.Weixin.Sample.net8.csproj
index 1b8b45d54d..2c0093ea9d 100644
--- a/Samples/All/net8-mvc/Senparc.Weixin.Sample.Net8/Senparc.Weixin.Sample.net8.csproj
+++ b/Samples/All/net8-mvc/Senparc.Weixin.Sample.Net8/Senparc.Weixin.Sample.net8.csproj
@@ -18,9 +18,9 @@
-
-
-
+
+
+
diff --git a/Samples/MP/Senparc.Weixin.Sample.MP.Simple/Senparc.Weixin.Sample.MP.Simple.csproj b/Samples/MP/Senparc.Weixin.Sample.MP.Simple/Senparc.Weixin.Sample.MP.Simple.csproj
index c5680b0da7..2b66df8ee0 100644
--- a/Samples/MP/Senparc.Weixin.Sample.MP.Simple/Senparc.Weixin.Sample.MP.Simple.csproj
+++ b/Samples/MP/Senparc.Weixin.Sample.MP.Simple/Senparc.Weixin.Sample.MP.Simple.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/Samples/MP/Senparc.Weixin.Sample.MP/Senparc.Weixin.Sample.MP.net8.csproj b/Samples/MP/Senparc.Weixin.Sample.MP/Senparc.Weixin.Sample.MP.net8.csproj
index 3f07112d15..d39a86095c 100644
--- a/Samples/MP/Senparc.Weixin.Sample.MP/Senparc.Weixin.Sample.MP.net8.csproj
+++ b/Samples/MP/Senparc.Weixin.Sample.MP/Senparc.Weixin.Sample.MP.net8.csproj
@@ -24,10 +24,10 @@
-
-
-
-
+
+
+
+
diff --git a/Samples/TenPayV2/Senparc.Weixin.Sample.TenPayV2/Senparc.Weixin.Sample.TenPayV2.net8.csproj b/Samples/TenPayV2/Senparc.Weixin.Sample.TenPayV2/Senparc.Weixin.Sample.TenPayV2.net8.csproj
index db454c9b8e..2cd3f138da 100644
--- a/Samples/TenPayV2/Senparc.Weixin.Sample.TenPayV2/Senparc.Weixin.Sample.TenPayV2.net8.csproj
+++ b/Samples/TenPayV2/Senparc.Weixin.Sample.TenPayV2/Senparc.Weixin.Sample.TenPayV2.net8.csproj
@@ -24,10 +24,10 @@
-
-
-
-
+
+
+
+
diff --git a/Samples/TenPayV3/Senparc.Weixin.Sample.TenPayV3/Senparc.Weixin.Sample.TenPayV3.net8.csproj b/Samples/TenPayV3/Senparc.Weixin.Sample.TenPayV3/Senparc.Weixin.Sample.TenPayV3.net8.csproj
index 9b921cf10a..9a9cd424a2 100644
--- a/Samples/TenPayV3/Senparc.Weixin.Sample.TenPayV3/Senparc.Weixin.Sample.TenPayV3.net8.csproj
+++ b/Samples/TenPayV3/Senparc.Weixin.Sample.TenPayV3/Senparc.Weixin.Sample.TenPayV3.net8.csproj
@@ -25,10 +25,10 @@
-
-
-
-
+
+
+
+
diff --git a/Samples/Work/Senparc.Weixin.Sample.Work/Senparc.Weixin.Sample.Work.net8.csproj b/Samples/Work/Senparc.Weixin.Sample.Work/Senparc.Weixin.Sample.Work.net8.csproj
index 7a37027a82..7c43e1cbc6 100644
--- a/Samples/Work/Senparc.Weixin.Sample.Work/Senparc.Weixin.Sample.Work.net8.csproj
+++ b/Samples/Work/Senparc.Weixin.Sample.Work/Senparc.Weixin.Sample.Work.net8.csproj
@@ -25,9 +25,9 @@
-
-
-
+
+
+
diff --git a/Samples/WxOpen/Senparc.Weixin.Sample.WxOpen/Senparc.Weixin.Sample.WxOpen.net8.csproj b/Samples/WxOpen/Senparc.Weixin.Sample.WxOpen/Senparc.Weixin.Sample.WxOpen.net8.csproj
index f72d011f09..60a9941ec3 100644
--- a/Samples/WxOpen/Senparc.Weixin.Sample.WxOpen/Senparc.Weixin.Sample.WxOpen.net8.csproj
+++ b/Samples/WxOpen/Senparc.Weixin.Sample.WxOpen/Senparc.Weixin.Sample.WxOpen.net8.csproj
@@ -25,10 +25,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc - Backup.WebSocket.net8.csproj b/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc - Backup.WebSocket.net8.csproj
new file mode 100644
index 0000000000..009fcad20e
--- /dev/null
+++ b/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc - Backup.WebSocket.net8.csproj
@@ -0,0 +1,126 @@
+
+
+ net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net8.0
+ 1.0.4
+ Senparc.WebSocket
+ Senparc.WebSocket
+ true
+
+ 微信 SDK - WebSocket 模块
+
+ Senparc.Weixin SDK 开源项目:
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+ Senparc Copyright © 2004~2024
+ 微信,weixin,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,微信支付,分布式,小程序,WebSocket
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.WebSocket.dll
+ 微信 SDK for .NET / C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
+ v0.1.1 完成MessageHandler、WebSocketHandler等基础架构,完成基本消息通讯
+
+ v0.1.3 优化WebSocket通讯机制
+
+ v0.2.0 支持 .NET Core
+
+ v0.3.0 支持 .NET Core 2.0
+ v0.3.1
+ 1、提供WebSocketHandler.IsReusable返回值(true)
+ 2、升级Newtonsoft.Json版本至10.0.1
+ v0.3.2 注册WebSocketMessageHandler,自定义对象的实例化方法,用以支持Spring等框架的注入
+ v0.3.3 常规优化
+ v0.4.0 停止对 .net core 1.1 生成的独立版本
+
+ v0.5.0-rc1 支持 .NET Core 2.1.0
+
+ v0.5.5 发布支持 .net core 2.1 的正式版
+ v0.6.0 支持最新基础库,使用 .NETStandard2.0 统一支持 .NET Core,放弃对 .NET Core 1.x 的单独适配
+ v0.7.3 全局使用 .ConfigureAwait(false) 应对异步锁死问题
+ v0.8.0
+ 1、支持 .NET Core SignalR
+ 2、提供 Register 注册方法
+ 3、优化 WebSocketMesssageHandler
+ v0.8.1 引用最新版本 CO2NET
+ v0.8.2 引用最新版本 CO2NET
+ v0.8.3 提供带符号的 nuget 包(.snupkg)
+ v0.9.0 使用最新版本 Senparc.Weixin,支持 .NET Core 3.0
+ v1.0.3 清理引用项目
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+ ..\..\..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+
+
+ ..\..\..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\..\..\BuildOutPut\Senparc.WebSocket.xml
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ ..\..\..\..\BuildOutPut\
+ ..\..\..\..\BuildOutPut\net462\Senparc.WebSocket.xml
+
+
+ ..\..\..\..\BuildOutPut\
+ ..\..\..\..\BuildOutPut\netstandard2.0\Senparc.WebSocket.xml
+
+
+ ..\..\..\..\BuildOutPut\
+ ..\..\..\..\BuildOutPut\netstandard2.1\Senparc.WebSocket.xml
+
+
+ ..\..\..\..\BuildOutPut\
+ ..\..\..\..\BuildOutPut\netcoreapp3.1\Senparc.WebSocket.xml
+
+
+ ..\..\..\..\BuildOutPut\
+ ..\..\..\..\BuildOutPut\net8.0\Senparc.WebSocket.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TRACE
+
+
\ No newline at end of file
diff --git a/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.net8.csproj b/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.net8.csproj
index 6a35ba6374..933882206c 100644
--- a/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.net8.csproj
+++ b/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.net8.csproj
@@ -113,7 +113,7 @@
-
+
diff --git a/src/Senparc.Weixin.All/Senparc.Weixin.All.csproj b/src/Senparc.Weixin.All/Senparc.Weixin.All.csproj
index 262aab9165..2a9694dea5 100644
--- a/src/Senparc.Weixin.All/Senparc.Weixin.All.csproj
+++ b/src/Senparc.Weixin.All/Senparc.Weixin.All.csproj
@@ -3,7 +3,7 @@
net8.0
enable
enable
- 2024.9.11
+ 2024.10.8
10.0
Senparc.Weixin.All
Senparc.Weixin.All
@@ -47,6 +47,7 @@
[2024-08-12] v2024.8.12 升级 Senparc.Weixin.Work
[2024-09-02] v2024.9.2 WxOpen 支持小程序付费能力的用量告警事件
[2024-09-10] v2024.9.10 更新基础库,包括缓存、APM、CO2NET 核心模块等全面升级
+ [2024-10-08] v2024.10.8 更新基础库,简化 .NET 版本支持
https://github.com/JeffreySu/WeiXinMPSDK
diff --git a/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.net8.csproj b/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.net8.csproj
index 7e2fba84b1..13297d1152 100644
--- a/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.net8.csproj
+++ b/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.net8.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 1.3.3
+ 1.3.4
Senparc.Weixin.AspNet
Senparc.Weixin.AspNet
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc - Backup.Weixin.Cache.CsRedis.net8.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc - Backup.Weixin.Cache.CsRedis.net8.csproj
new file mode 100644
index 0000000000..d1707bc20a
--- /dev/null
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc - Backup.Weixin.Cache.CsRedis.net8.csproj
@@ -0,0 +1,72 @@
+
+
+ net462;netstandard2.0;netstandard2.1
+ 1.0.3
+ Senparc.Weixin.Cache.CsRedis
+ Senparc.Weixin.Cache.CsRedis
+ true
+
+ 微信 SDK - Redis 模块
+
+ Senparc.Weixin SDK 开源项目:
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+ Senparc Copyright © 2004~2024
+ 微信,weixin,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,微信支付,分布式,小程序,Cache,Redis
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.Weixin.Cache.CsRedis.dll
+ 微信 SDK for .NET / C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
+ v0.1.0
+ 创世
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+ ..\..\BuildOutPut
+ TRACE
+
+
+ ..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\BuildOutPut\Senparc.Weixin.Cache.CsRedis.XML
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\net462\Senparc.Cache.CsRedis.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.0\Senparc.Cache.CsRedis.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.1\Senparc.Cache.CsRedis.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.net8.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.net8.csproj
index 9765ec3b1f..21305a70a2 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.net8.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.net8.csproj
@@ -61,7 +61,7 @@
-
+
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Dapr/Senparc - Backup.Weixin.Cache.Dapr.net8.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Dapr/Senparc - Backup.Weixin.Cache.Dapr.net8.csproj
new file mode 100644
index 0000000000..aff017469f
--- /dev/null
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Dapr/Senparc - Backup.Weixin.Cache.Dapr.net8.csproj
@@ -0,0 +1,67 @@
+
+
+ net8.0
+ 0.1.3-beta1
+ Senparc.Weixin.Cache.Dapr
+ Senparc.Weixin.Cache.Dapr
+ true
+
+ 微信 SDK - Redis 模块
+
+ Senparc.Weixin SDK 开源项目:
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+ Senparc Copyright © 2004~2024
+ 微信,weixin,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,微信支付,分布式,小程序,Cache,Redis
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.Weixin.Cache.Dapr.dll
+ 微信 SDK for .NET / C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
+ v0.1.0
+ 创世
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+ ..\..\BuildOutPut
+ TRACE
+
+
+ ..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\BuildOutPut\Senparc.Weixin.Cache.Dapr.XML
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\net462\Senparc.Cache.Dapr.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.0\Senparc.Cache.Dapr.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.1\Senparc.Cache.Dapr.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Dapr/Senparc.Weixin.Cache.Dapr.net8.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Dapr/Senparc.Weixin.Cache.Dapr.net8.csproj
index ea6a6f3933..957efe75e0 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Dapr/Senparc.Weixin.Cache.Dapr.net8.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Dapr/Senparc.Weixin.Cache.Dapr.net8.csproj
@@ -56,7 +56,7 @@
-
+
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc - Backup.Weixin.Cache.Memcached.net8.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc - Backup.Weixin.Cache.Memcached.net8.csproj
new file mode 100644
index 0000000000..f67b13c323
--- /dev/null
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc - Backup.Weixin.Cache.Memcached.net8.csproj
@@ -0,0 +1,154 @@
+
+
+ net462;netstandard2.0;netstandard2.1
+ 2.17.4
+ Senparc.Weixin.Cache.Memcached
+ Senparc.Weixin.Cache.Memcached
+
+ 微信 SDK - Memcached 模块
+
+ Senparc.Weixin SDK 开源项目:
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+ Senparc Copyright © 2004~2024
+ 微信,weixin,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,微信支付,分布式,小程序,Cache,Memcached
+ true
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.Weixin.Cache.Memcached.dll
+ 微信 SDK for .NET / C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
+ v0.0.1
+ 提供分布式缓存支持
+ .NET 4.0版本暂时未提供
+
+ v0.0.2
+ 重构缓存策略,提供分布锁
+
+ v0.0.3 优化方法和接口
+
+ v0.0.4 优化方法和接口
+
+ v0.0.5 添加ServerList配制方法
+
+ v0.1.0
+ 重构缓存,添加ObjectCacheStrategy
+
+ v0.2.0 重构分布式锁
+
+ v0.3.0 Memcached同步锁改为使用StoreMode.Add方法
+
+ v1.0.0 支持 .NET Core
+
+ v1.1.0 支持 .NET Core 2.0
+
+ v1.2.0 注释掉无效代码
+
+ v1.3.0 .net core下,MemcachedObjectCacheStrategy.GetMemcachedClientConfiguration()方法添加注入参数
+
+ v1.4.0 停止对 .net core 1.1 生成的独立版本
+ v1.4.1 提供 RegisterServices 进行快捷注册
+
+ v1.5.0-rc1 支持 .NET Core 2.1.0-rc1-final
+
+ v1.5.5 发布支持 .net core 2.1 的正式版
+
+ v2.0.0 引入 Senparc.CO2NET,支持 Senparc.Weixin v5.0
+ v2.0.6.1 支持 CO2NET v0.1.6.1
+ v2.0.9 支持 CO2NET v0.1.9
+ v2.1.0 支持 CO2NET v0.2.0
+ v2.2.1 支持 CO2NET v0.2.6,Senparc.CO2NET.Cache.Memcached v3.1.1
+ v2.2.2 支持 CO2NET v0.2.8,Senparc.CO2NET.Cache.Memcached v3.1.3
+ v2.3.0 支持最新基础库,使用 .NETStandard2.0 统一支持 .NET Core,放弃对 .NET Core 1.x 的单独适配
+ v2.3.5 支持异步缓存接口
+ v2.3.9 引用最新版本 CO2NET
+ v2.3.10 引用最新版本 CO2NET 和 Senparc.Weixin
+ v2.3.11 更新 MemcachedContainerCacheStrategy.UpdateContainerBagAsync() 方法
+ v2.4.0
+ 1、支持最新版本 Senparc.Weixin
+ 2、提供带符号的 nuget 包(.snupkg)
+ v2.5.0 使用最新版本 Senparc.Weixin,支持 .NET Core 3.0
+ v2.5.101 提供 .Net Core 3.0 独立版本
+ v2.7.102 RegisterDomainCache() 方法重命名为 ActivityDomainCache()
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+
+ ..\..\BuildOutPut
+ TRACE
+
+
+ ..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\BuildOutPut\Senparc.Weixin.Cache.Memcached.XML
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\net462\Senparc.Cache.Memcached.xml
+
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.0\Senparc.Cache.Memcached.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.1\Senparc.Cache.Memcached.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2.16.0
+
+
+ 1.0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.net8.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.net8.csproj
index dd91c5f61f..81995d2ffd 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.net8.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.net8.csproj
@@ -143,7 +143,7 @@
-
+
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc - Backup.Weixin.Cache.Redis.net8.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc - Backup.Weixin.Cache.Redis.net8.csproj
new file mode 100644
index 0000000000..29581d4e78
--- /dev/null
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc - Backup.Weixin.Cache.Redis.net8.csproj
@@ -0,0 +1,150 @@
+
+
+ net462;netstandard2.0;netstandard2.1
+ 2.19.4
+ Senparc.Weixin.Cache.Redis
+ Senparc.Weixin.Cache.Redis
+ true
+
+ 微信 SDK - Redis 模块
+
+ Senparc.Weixin SDK 开源项目:
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+ Senparc Copyright © 2004~2024
+ 微信,weixin,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,微信支付,分布式,小程序,Cache,Redis
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.Weixin.Cache.Redis.dll
+ 微信 SDK for .NET / C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
+ v0.1.0
+ 提供分布式缓存支持
+ 由于StackExchange.Redis库的bug,.NET 4.0版本暂时未提供
+
+ v0.1.1
+ 优化缓存策略,改进删除方法。
+
+ v0.2.0
+ 重构缓存策略,提供分布锁
+
+ v0.2.1
+ 优化方法和接口
+
+ v0.0.2
+ 重构缓存键命名空间规则,添加Config.DefaultCacheNamespace
+
+ v0.2.3
+ 发布稳定版本
+
+ v1.0.0
+ 修改缓存策略,将储存类型由String改为Hash
+
+ v1.1.0
+ 重构缓存,添加ObjectCacheStrategy
+
+ v1.2.0 重构分布式锁
+ v1.2.1 提供.net core版本
+ v1.2.2 同时提供.net core及.net 4.6.1版本
+
+ v1.3.0 支持 .NET Core
+
+ v1.4.0-beta1 支持.NET Core 2.0
+
+ v1.5.0 停止对 .net core 1.1 生成的独立版本
+ v1.5.1 提供 RegisterServices 进行快捷注册
+
+ v1.6.0 提供 .NET Core 下的完整二进制序列化支持(支持委托参数)
+ v1.6.1 优化二进制序列化支持
+
+ v1.7.0-rc1 支持 .NET Core 2.1.0-rc1-final
+ v1.7.2-rc1 为 .net core 2.1 改进条件编译
+
+ v1.7.5 发布支持 .net core 2.1 的正式版
+
+ v2.0.0 引入 Senparc.CO2NET,支持 Senparc.Weixin v5.0
+ v2.0.6.1 支持 CO2NET v0.1.6.1
+ v2.0.9 支持 CO2NET v0.1.9
+ v2.1.0 支持 CO2NET v0.2.0
+ v2.2.1 支持 CO2NET v0.2.6,Senparc.CO2NET.Cache.Redis v3.1.1
+ v2.3.0 支持 Senparc.CO2NET.Cache.Redis v3.2.0
+ v2.4.0 支持最新基础库,使用 .NETStandard2.0 统一支持 .NET Core,放弃对 .NET Core 1.x 的单独适配
+ v2.5.0 支持 .net 4.6.1
+ v2.5.3 添加 RedisHashSetContainerCacheStrategy,优化 HashSet 格式储存 Container 信息
+ v2.5.4 升级 StackExchange.Redis 到最新版本
+ v2.5.5 支持异步缓存接口
+ v2.5.9 引用最新版本 CO2NET
+ v2.5.10 引用最新版本 CO2NET 和 Senparc.Weixin
+ v2.4.0
+ 1、支持最新版本 Senparc.Weixin
+ 2、提供带符号的 nuget 包(.snupkg)
+ v2.7.0 使用最新版本 Senparc.Weixin,支持 .NET Core 3.0
+ v2.7.101 提供 .Net Core 3.0 独立版本
+ v2.7.104 引用最新版本 Senparc.CO2NET.Cache.Redis
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+ ..\..\BuildOutPut
+ TRACE
+
+
+ ..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\BuildOutPut\Senparc.Weixin.Cache.Redis.XML
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\net462\Senparc.Cache.Redis.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.0\Senparc.Cache.Redis.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.1\Senparc.Cache.Redis.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.net8.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.net8.csproj
index 91c3977de3..00dd945350 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.net8.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.net8.csproj
@@ -133,7 +133,7 @@
-
+
diff --git a/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.net8.csproj b/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.net8.csproj
index 3257c3f971..687999c8ba 100644
--- a/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.net8.csproj
+++ b/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.net8.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net8.0
- 1.3.3
+ 1.3.4
Senparc.Weixin.MP.Middleware
Senparc.Weixin.MP.Middleware
true
diff --git a/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.net8.csproj b/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.net8.csproj
index c654dd8a4e..b55100ae63 100644
--- a/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.net8.csproj
+++ b/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.net8.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net8.0
- 7.15.3
+ 7.15.4
Senparc.Weixin.MP.MvcExtension
Senparc.Weixin.MP.MvcExtension
true
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/Senparc.Weixin.MP.Test.net8.csproj b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/Senparc.Weixin.MP.Test.net8.csproj
index 00ad46a6e7..8ac67af06d 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/Senparc.Weixin.MP.Test.net8.csproj
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/Senparc.Weixin.MP.Test.net8.csproj
@@ -26,9 +26,9 @@
+
-
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/TenPayV3/TenPayV3Test.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/TenPayV3/TenPayV3Test.cs
index f7f17d3f7b..2e4e8b0b69 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/TenPayV3/TenPayV3Test.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/TenPayV3/TenPayV3Test.cs
@@ -54,7 +54,7 @@ public class TenPayV3Test : CommonApiTest
public void UnifiedorderTest()
{
//这是已经过期的旧方法,新方法请参考相同方法名的重写方法
- var result = TenPayV3.Unifiedorder(data);
+ var result = Senparc.Weixin.TenPay.V3.TenPayV3.Unifiedorder(data);
Console.Write(result);
Assert.IsNotNull(result);
}
@@ -70,7 +70,7 @@ public void GetSignKeyTest()
var nonceStr = TenPayV3Util.GetNoncestr();
var dataInfo = new TenPayV3GetSignKeyRequestData(base._mchId, nonceStr, base._tenPayKey);
- var result = TenPayV3.GetSignKey(dataInfo);
+ var result = Senparc.Weixin.TenPay.V3.TenPayV3.GetSignKey(dataInfo);
Console.WriteLine(result.ResultXml);
Assert.IsTrue(result.IsReturnCodeSuccess());
@@ -112,7 +112,7 @@ private void MicroPayTest(string sandBoxKey, string nonceStr)
nonceStr, deviceInfo, body, detail, null, outTradeNo, totalFee.ToString(), "CNY", "127.0.0.1",
null, null);
- var result = TenPayV3.MicroPay(dataInfo);
+ var result = Senparc.Weixin.TenPay.V3.TenPayV3.MicroPay(dataInfo);
Console.WriteLine(result.ResultXml);
Assert.IsTrue(result.IsReturnCodeSuccess());
@@ -124,7 +124,7 @@ private void MicroPayTest(string sandBoxKey, string nonceStr)
private void OrderQueryTest(string sandBoxKey, string nonceStr,string transactionId,string outTradeNo)
{
var dataInfo = new TenPayV3OrderQueryRequestData(base._appId, base._mchId, transactionId, nonceStr, outTradeNo, sandBoxKey);
- var result = TenPayV3.OrderQuery(dataInfo);
+ var result = Senparc.Weixin.TenPay.V3. TenPayV3.OrderQuery(dataInfo);
Console.WriteLine(result.ResultXml);
@@ -140,7 +140,7 @@ private void DownloadBillTest(string sandBoxKey, string nonceStr)
SystemTime.Now.ToString("yyyyMMdd"), "ALL", sandBoxKey);
- var result = TenPayV3.DownloadBill(dataInfo);
+ var result = Senparc.Weixin.TenPay.V3.TenPayV3.DownloadBill(dataInfo);
Assert.IsTrue(!string.IsNullOrEmpty(result));
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc - Backup.Weixin.MP.net8.csproj b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc - Backup.Weixin.MP.net8.csproj
new file mode 100644
index 0000000000..f29f70ed58
--- /dev/null
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc - Backup.Weixin.MP.net8.csproj
@@ -0,0 +1,594 @@
+
+
+ net462;netstandard2.0;netstandard2.1
+ 16.22.4
+ Senparc.Weixin.MP
+ Senparc.Weixin.MP
+ true
+
+ 微信 SDK - 微信公众号 模块
+
+ Senparc.Weixin SDK 开源项目:
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+ Senparc Copyright © 2004~2024
+ 微信,weixin,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,微信支付,分布式,小程序,JSSDK,微信支付,摇一摇周边
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.Weixin.MP.dll
+ 微信 SDK for .NET / C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
+ v4.9
+ 1、丰富了JSON通讯的消息返回类型
+ 2、修复MessageAgent状态记录的一个bug
+ 3、修复二维码事件bug
+ 4、24小时推送限制改为48小时
+
+ v4.10 添加媒体文件上传、下载接口
+
+ v4.11 添加AccessTokenContainer管理容器
+
+ v.4.12 添加更多AccessTokenContainer下的方法
+
+ v4.13.0 添加高级接口中的语种选择
+
+ v5.0.0 添加图片、语音、视频返回类型
+
+ v5.1 优化图片等消息的响应,并添加图片等新回复格式的DEMO
+
+ v5.2 添加MessageAgent.CheckUrlAndToken方法
+
+ v5.4.0 souidea全面升级到weiweihi
+
+ v5.5.0 添加View事件响应;添加单个列队自定义过期时间
+
+ v5.6.0 添加OnTextOrEventRequest事件
+
+ v5.7.0 添加百度地图帮助类
+
+ v5.8.0 添加模板消息接口、群发接口
+
+ v5.9.0 添加多客服接口
+
+ v5.10.0 添加对外请求超时设置
+
+ v6.1.0 添加多客服聊天记录查询
+
+ v6.2.0 优化RequestMessageEvent相关结构;添加消息发送测试工具
+
+ v7.0.10 添加微信支付相关接口、优化二维码接口
+
+ v7.0.14 完善微信支付接口,添加AccessTokenHandlerWapper
+
+ v7.0.20 添加MessageHandlerException,修正部分bug
+
+ v7.1.0 正式发布微信支付、微小店接口;完善模板消息响应事件。
+
+ v8.0.0 分离基础方法到Senparc.Weixin
+
+ v9.3.0 稳定版
+
+ v9.4.2 修改完善了群发的方法
+ v9.4.3 支持新增的6种菜单的事件推送
+
+ v9.5.0
+ 添加消息去重
+
+ v9.5.3
+ 纠正群发和模板推送 接收MsgID出错问题
+
+ v9.5.7 新增获取Js-Api凭证接口(ticket)以及生成签名的方法
+
+ v9.6.1 添加AccessToken过期获取的Lock、新增数据统计接口
+
+ v9.6.4 获取JsApiTicket方法完善
+
+ v10.0.0 重构代码,加入AppStore
+
+ v11.0.1 框架升级到.NET 4.0
+
+ v11.2.0 添加AppStore相关接口
+
+ v11.2.24 添加针对加密信息的官方iphone换行bug处理
+
+ v11.3.0 分离Open,优化素材相关方法
+
+ v11.3.2 摇一摇周边试用版
+
+ v11.3.6 群发消息接口修改 试用版
+
+ v12.3.1 添加了AccessToken(非预期的)过期自动处理机制,大部分高级接口可以忽略对AccessToken的获取和管理。稳定版。
+
+ v12.4.2 重新整理(简化)API的命名空间
+
+ v13 支持.NET4.5,添加异步请求方法
+
+ v13.2.1 完善异步请求方法,添加JSON生成过程中null对象的过滤机制
+
+ v13.3.0 整合JsAPITicketContainer到AccessTokenContainer
+
+ v13.4 重构升级
+
+ v13.5.2 添加个性化菜单
+ v13.5.6
+ 完善红包发送及查询接口
+ 修复Wifi API的bug
+ 完善Web代理(Proxy)功能
+ 完善微小店实体类型
+
+ v13.6.3
+ 更新Container架构
+ 分离AccessTokenContainer和JsApiTicketContainer
+ 完善接口
+ 匹配Senparc.Weixin v4.5.12
+ v13.6.8
+ URL转义
+ 更新API
+ 优化Container,全面支持分布式缓存
+ 添加客服消息接口
+
+ v13.6.10
+ 提供Container缓存立即生效的解决方案
+
+ v13.7.0-beta1
+ 优化缓存方案
+ 添加短链接接口
+
+ v13.7.9
+ 1、BatchGetUserInfoJson类重命名为BatchGetUserInfoJsonResult
+ 2、重构部分MessageHandler代码
+ 3、更新卡券接口
+ 4、完善消息响应功能
+ 5、完善摇一摇功能
+ 6、完善wifi功能
+ 7、添加用户“标签”相关接口
+
+ v13.8.2
+ 2016-05-24
+ 更新及新增接口:
+ TemplateApi
+ CardApi
+ WiFiApi
+ ShakeAroundApi
+ 新增接口模块:
+ ScanApi
+ v13.8.4 尝试解决OAuth:40029-invalid code 错误
+
+ v14.1.0
+ 为接口添加异步方法
+ 完善接口
+
+ v14.2.2
+ 支持.NET ore
+ 优化EntityHelper及接口
+
+ v14.2.3
+ 使用ApiUtility.GetExpireTime()方法处理过期
+
+ v14.3.3
+ 重构缓存策略
+ 重构Container
+ 整合分布锁
+
+ v14.3.4
+ 添加TryReRegister()方法,处理分布式缓存重启(丢失)的情况
+
+ v14.3.6
+ 重构缓存键命名空间规则,添加Config.DefaultCacheNamespace
+
+ v14.3.7
+ 修改Create方法(及对应异步方法),匹配最新的官方文档,删除CreateByStr方法(及对应异步方法);
+ 增加QrCode_ActionName枚举
+
+ v14.3.100
+ 第100个Nuget公开发布的Senparc.Weixin.MP.dll版本。
+ 添加获取API:获取微信服务器的ip段。
+
+ v14.3.101
+ 修改TenPayUtil.BuildRandomStr()方法.
+ .NET Core版本:修改编码;删除第一版微信支付代码。(TenPayLib)
+
+ v14.3.104
+ 重构缓存,添加ObjectCacheStrategy
+
+ v14.3.105 优化红包,添加裂变红包
+ v14.3.106
+ 删除Senparc.Weixin.MP.Helpers.FileHelper,合并到Senparc.Weixin.Helpers.FileHelper类中(开发时只需要注意修改命名空间)
+ 为Senparc.Weixin.Helpers.FileHelper添加DownLoadFileFromUrl()方法
+ v14.3.107
+ SearchRedPack方法修改证书初始化方法
+ RedPackHBInfo去除status属性
+ 为TenPayLibV3.RequestHandler.ParseXML()方法添加v==null的判断
+ v14.3.107
+ fix bug:普通红包加入场景值之后的签名问题
+ v14.3.105 优化红包,添加裂变红包
+ v14.3.106
+ 删除Senparc.Weixin.MP.Helpers.FileHelper,合并到Senparc.Weixin.Helpers.FileHelper类中(开发时只需要注意修改命名空间)
+ 为Senparc.Weixin.Helpers.FileHelper添加DownLoadFileFromUrl()方法
+ v14.3.107
+ SearchRedPack方法修改证书初始化方法
+ RedPackHBInfo去除status属性
+ 为TenPayLibV3.RequestHandler.ParseXML()方法添加v==null的判断
+ v14.3.107
+ fix bug:普通红包加入场景值之后的签名问题
+ v14.3.113
+ 修正了WiFiApi中GetQrcode函数的返回值数据类型。
+ 修正了ShakeAroundApi中申请iBeacon设备的申请批次ID(appId)的数据类型从int改为long。
+ 修正了ShakeAroundApi中查询iBeacon设备传递的参数(begin => last_seen),跟随微信更新。
+ 修正了WiFiApi中GetQrcodeResult的bug。
+ v14.3.114 优化微信支付方法
+ v14.3.115 CommonApi.GetMenu()方法,当发生菜单不存在等错误的时候会抛出WeixinMenuException异常。
+ v14.3.116 TryCommonApi抛出ErrorJsonResultException、WeixinException异常时加入了accessTokenOrAppId参数
+ v14.3.117 添加SuccessResponseMessage类型响应信息
+ v14.3.119
+ OnEvent_ShakearoundUserShake接口默认返回ResponseMessageNoResponse类型消息
+ 修改BatchGetUserInfoData.lang属性为int类型
+ v14.3.122
+ 优化微信支付
+ TenPayV3UnifiedorderRequestData类调整sign_type设置顺序
+ (准备做,需要测试:TenPayV3RefundQueryRequestData类暂时注释掉signType传入)
+ 14.3.123
+ 废除SHA1UtilHelper及MD5UtilHelper,方法合并到Senparc.Weixin.Helpers.EncryptHelper下(Senparc.Weixin.dll中)
+ v14.3.124 修改lang属性为string类型,并添加LangEnum作为枚举
+ v14.3.125 重新调整sign_type设置顺序,v14.3.122版本中不应该做调整
+ v14.3.126 更新微信支付接口
+ v14.3.127 :
+ fix bug:微信支付统一订单接口。将 totalFee 参数类型由 decimal 改为 int。
+ v14.3.128:
+ 完善PoiApi.GetPoiList()方法返回参数中的GetStoreList_BaseInfo信息
+ v14.3.129 :
+ 设置TransactionId和OutTradeNo时判断是否为null,如果是则提供空字符串""
+ 修改订单查询接口的参数顺序,sign_type参数有的话必须参与签名,也就是放在md5之前,否则微信服务器会返回签名错误
+ v14.3.131 :1·为MediaApi.Get()方法提供ApiHandlerWapper.TryCommonApi()方法支持,可以传入AppId
+ v14.3.132:添加Get.DownloadAsync(string url, string dir)方法
+ v14.3.132:完善UnifiedorderResult 服务商统一订单接口
+ v14.3.133:修复CommonApi.CreateMenuConditional()方法调用出现“invalid button size”错误的问题
+ v14.3.136:增加KeywordAutoReplyInfo_Item.reply_list_info属性
+ v14.3.137:修改JSSDKHelper.GetAddrSign传入参数,应该传入OAuth的AccessToken
+ v14.3.138:修改 JSSDKHelper.GetAddrSign() 方法
+ v14.3.139:自定义菜单、模板消息全面支持小程序最新接口!
+ v14.3.140
+ 1、添加BaseGroupMessageDataByGroupId.send_ignore_reprint属性
+ 2、优化代码
+ v14.3.141 修改amount为decimal类型
+ v14.3.142 RequestUtility中的所有请求证书由X509Certificate类型改为X509Certificate2
+ SendResult文件添加了msg_data_id字段,此字段用于统计分析
+ v14.3.143 修复上一版本造成的菜单获取错误问题
+
+ v14.4.5 完善微信支付退款申请接口
+ v14.4.6 修复企业付款接口无法指定证书的问题(TenpayV3.Transfers)
+ v14.4.7 iBeacon设备接口GroupGetAdddevice()方法更新
+
+ v14.4.5 完善微信支付退款申请接口
+ v14.4.6 修复企业付款接口无法指定证书的问题(TenpayV3.Transfers)
+ v14.4.7 iBeacon设备接口GroupGetAdddevice()方法更新
+ v14.4.8
+ 1、完善TenPayLibV3.GetNoncestr()方法;
+ 2、优化TenPayLibV3.BuildRandomStr()方法
+
+ v14.4.9
+ 1、修改CardAPI的卡信息更新设置
+ 2、修改TenPayUtil.GetNoncestr()方法,将编码由GBK改为UTF8
+
+ v14.4.10
+ 1、CardApi.CardBatchGet()方法增加statusList参数
+ 2、修改Card_CashData属性类型(int)
+ v14.4.11 完善CommonJsonSend.SendAsync()方法参数
+ v14.4.12 1、修改 UTF-8 编码设置
+ 2、修复 CustomServiceApi.GetMsgList() 方法时间戳问题
+ v14.4.13 修复二级菜单小程序无法设置的问题
+ v14.4.14 修改 JSSDKHelper.GetcardExtSign()和CreateNonekeySha1() 方法,使用 ASCII 字典排序
+
+ v14.5.0
+ 1、AccessTokenResult 加入 IAccessTokenResult 接口
+ 2、启用新版本的ApiHandlerWapper
+ v14.5.1 完善异步方法async/await
+ v14.5.2 Card_MemberCardData添加wx_activate_after_submit和wx_activate_after_submit_url
+ v14.5.3
+ 1、添加 QrCode_ActionName.QR_STR_SCENE
+ 2、解决了QrCode_ActionName.QR_STR_SCENE下临时二维码有效时间expire_seconds不生效的问题
+ v14.5.4 添加“一次性订阅消息”接口
+
+ v14.5.5
+ 1、修改Container中的锁及异步调用方法
+ 2、支持H5支付(同时已发布Demo)
+ 3、为Tencent命名空间添加Senparc.Weixin.MP前缀
+ 4、完善RequestMessageEvent_MassSendJobFinish(群发判断转载)
+ 5、提取EntityHelper.FillClassValue()方法,优化FillEntityWithXml()方法
+ 6、添加了NewsModel下的need_open_comment、only_fans_can_comment属性
+ 7、查询红包接口(SearchRedPack)添加refund_amount和remark两个参数获取
+ 8、增加“获取商品二维码”接口(ScanApi.GetQrCode()),同时提供配套异步方法
+ 9、更新CardApi.CardBatchGet()方法的statusList参数传值
+
+ v14.6.0
+ 1、新增 刷卡支付 撤销订单接口
+ 2、支持.NET Core 2.0
+ v14.6.1 撤销订单接口(TenPayV3.Reverse())添加证书设置
+ v14.6.2 回滚AccessTokenContainer
+ v14.6.3 回滚JsApiTicketContainer和OAuthAccessTokenContainer
+ v14.6.4 撤销订单接口(TenPayV3.Reverse())添加证书设置
+ v14.6.5 回滚 AccessTokenContainer
+ v14.6.6 添加 JSSDKHelper.GetJsSdkUiPackageAsync() 异步方法
+ v14.6.7 增加更多自定义菜单类型:media_id、view_limited
+ v14.6.8 添加Event下“微信认证事件推送”一系列事件类型:
+ 1 qualification_verify_success - 资质认证成功(此时立即获得接口权限)
+ 2 qualification_verify_fail - 资质认证失败
+ 3 naming_verify_success - 名称认证成功(即命名成功)
+ 4 naming_verify_fail - 名称认证失败(这时虽然客户端不打勾,但仍有接口权限)
+ 5 annual_renew - 年审通知
+ 6 verify_expired - 认证过期失效通知
+ v14.6.9 添加:小程序审核事件推送
+ v14.6.10 添加接口:普通红包发送(服务商)
+ v14.6.11 常规优化
+ v14.7.0 TenPayV3的接口添加对 UseSandBoxPay 的判断,可以自动使用沙箱
+ v14.7.1(.NET Core)恢复从.NET Framework中移植的RequestUtility.SetHttpProxy()和RemoveHttpProxy()方法
+
+ v14.8.0-beta1 重新支持.NET 3.5/4.0
+ v14.8.0-beta2 优化多版本支持代码
+ v14.8.1 修复几处GetNoncestr还在使用GBK编码
+ v14.8.2 修复发送红包接口的响应XML的解析问题
+ v14.8.3
+ 1、添加RequestMessageUnknownType以及相关处理机制,处理未知类型的请求
+ 2、新增新增MsgTypeHelper.GetRequestMsgTypeString()方法
+ v14.8.4 支持Senparc.Weixin v4.18.0,支持Ajax模拟请求
+ v14.8.5 卡券Membe完善CardGetResultJson字段rCard_CustomField_NameType枚举添加FIELD_NAME_TYPE_UNKNOW类型
+ v14.8.7 完善CardGetResultJson字段
+ v14.8.8 修正了统计接口关注用户实体类的属性数据类型错误
+ v14.8.9 支持Senparc.Weixin v4.18.5 可自定义API域名
+ v14.8.10 修复红包接口 RedPackApi.SendNormalRedPack() 在.NET 4.6 下的XML解析问题
+ v14.8.11 添加根据标签群发接口,重构原根据分组群发接口
+ v14.8.12 完成群发接口添加clientmsgid属性
+ v14.8.13
+ 1、使用 Config.ApiMpFileHost,修改 MediaApi.Get() 方法,可以自动识别文件类型储存
+ 2、设置 TenPayV3xxRequestData 的 NonceStr 属性为只读
+ 3、AnalysisApi 接口中的 GetUserReadItem 和 GetUserReadHourItem 添加 user_source 属性(用户渠道来源)
+ v14.8.14 CardApi.UpdateUser() 方法参数中重新加添 add_bonus 和 add_balance 两个参数
+ v14.8.15 添加“评论数据管理”接口(共8个)
+
+ v14.9.0 支持异步 MessageHandler
+ v14.9.1 完善AnalysisApi.GetArticleTotal()返回数据字段
+
+ v14.10.0 停止对 .net core 1.1 生成的独立版本
+ v14.10.1 添加RegisterService提供快捷注册方式
+ v14.10.2 微信支付统一下单接口TenPayV3UnifiedorderRequestData数据添加“场景信息”字段(sceneInfo)
+ v14.10.3 增加MessageHandler的file类型处理
+ v14.10.4 WeixinUserInfoResult添加tagid_list属性(用户被打上的标签ID列表)
+ v14.10.5 TenPayV3Result 增加 ResultXML 只读属性
+ v14.10.6 完善“查看指定文章的评论数据”接口(CommentApi.List())的返回结果数据
+ v14.10.7 MessageHandler消息去重增加对“领取事件推送”的特殊判断
+ v14.10.8 GroupMessageApi.SendGroupMessageByFilter() 方法修复判断错误
+ v14.10.9 TenPayV3UnifiedorderRequestData_SceneInfo 支持新H5支付的场景参数
+ v14.10.10 修正 Net Core 版本错误的代理设置
+ v14.10.11-beta1 测试.net core下的文件上传方法
+ v14.10.12
+ 1、TenpayV3的GetSignKey()接口,用于获取模拟支付环境下的签名。
+ 2、添加 TenPayV3Util.DecodeRefundReqInfo() 方法,提供给退款通知解密使用
+ 3、支持自定义菜单传入菜单对象为null(自动过滤)
+ v14.10.13 优化 TenPayV3Util.DecodeRefundReqInfo() 方法
+ v14.10.14 优化 Get.Download() 方法,完善对 FileName 的判断
+ v14.10.15 Wifi连接页面支持跳转到小程序。微信返回的JSON有变化。
+ v14.11.0 添加“付款到银行卡”接口
+ v14.11.1 为 TenPayV3.GetTransferInfo() 及对应异步方法添加证书参数。
+ v14.12.0
+ 1、用户信息扫码场景信息
+ 2、cardapi增加多卡二维码API
+ 3、UpdateUser、MemberCardDeal增加参数
+ 4、统一cardmanageResultjson的类命名规则
+ v14.12.1 修改.NET Core环境下,ResponseHandler 中构造函数传入 HttpContext 的异常提示
+ v14.12.2 修正 MediaApi.GetForeverMedia() 方法永久视频的文件下载过程。
+ v14.12.3 1、添加黑名单管理
+ 2、分离永久视频素材获取接口
+
+ v14.13.0-rc1 支持 .NET Core 2.1.0-rc1-final
+
+ v14.14.0-rc1
+ 1、支持 Senparc.Weixin v4.22.0-rc1
+ 2、CardAPI 升级到新的 Newtonsoft.Json 的序列化参数
+
+ v14.14.0
+ 1、发布支持 .net core 2.1 的正式版
+ 2、获取用户基本信息(包括UnionID机制)API 的 ResultJson 模型增加 subscribe_scene(用户关注的渠道来源)字段。
+
+ v15.0.0 引入 Senparc.CO2NET,支持 Senparc.Weixin v5.0
+ v15.0.2-preview1 支持 CO2NET v0.1.2
+ v15.0.3.1 解决.NetCore环境微信支付回调时ResponseHandler传入HttpContext实例后解析xml提示找不到根节点的错误
+ v15.0.6.1 支持 CO3NET v0.1.6.1 解决 XXE 漏洞
+ v15.0.6.2 TenPayV3RefundRequestData 添加 SubAppId、SubMchId 两个参数,以及支持这两个参数的构造函数
+ v15.0.7 支持 Senparc.Weixin 5.0.7
+ v15.0.9 Container 的 Register() 的微信参数自动添加到 Config.SenparcWeixinSetting.Items 下
+ v15.0.10 支持 Senparc.Weixin v5.0.10
+ v15.0.11 支持 Senparc.Weixin v5.0.11
+ v15.1.0 支持 Senparc.Weixin v5.1.0,重构 Container,提供新的缓存过期策略
+ v15.1.2 企业付款到银行卡修复携带证书问题
+ v15.1.3
+ 1、优化接口
+ 2、支持 Senparc.Weixin v5.1.4
+ v15.1.4 修复 GetForeverMedia() 接口 bug
+
+ v15.2.0
+ 1、SenparcWeixinSetting 添加 TenPayV3_WxOpenTenpayNotify 属性,用于设置小程序支付回调地址
+ 2、支持 Senparc.Weixin v5.1.6
+ v15.2.1 实现 SenparcWeixinSetting 自动注册
+ v15.2.2 优化客服接口,分离小程序客服接口
+ v15.2.3 支持 CO2NET v0.2.8
+ v15.2.4 微信支付 RequestHandler 增加 HMAC-SHA256 加密方式
+ v15.3.0 分离微信支付到 Senparc.Weixin.TenPay.dll
+
+ v16.0.0 支持 NeuChar 标准
+ v16.0.1 支持 Senparc.Weixin v6.0.1
+ v16.1.0 支持 Senparc.NeuChar v0.0.5
+ v16.2.0 支持卡券消息回调
+ v16.3.0 重构 MessageHandler OnXxRequest() 方法参数类型,逐步开始使用接口,如 IRequestMessageText
+ v16.3.2 支持 Senparc.NeuChar v0.1.2
+ v16.3.4 支持 Senparc.NeuChar v0.1.4
+ v16.3.5 支持 Senparc.NeuChar v0.2.1
+ v16.4.0 支持电子发票等新接口
+ v16.4.1 菜单按钮类型(ButtonType)改为使用 Senparc.NeuChar.MenuButtonType
+ v16.4.2 Senparc.NeuChar v0.2.7
+ v16.4.5 支持 Senparc.NeuChar v0.2.9.1
+ v16.4.5 支持 Senparc.NeuChar v0.2.10,支持 NeuChar 连接检测
+ v16.4.7 Senparc.NeuChar v0.2.11,升级 MessageHandler
+ v16.4.9 修正发票接口问题
+ v16.4.10 优化 MessageHandler 构造函数,提供 PostModel 默认值
+ v16.4.12 移除微信支付相关类(已经迁移到 Senparc.Weixin.TenPay.dll 中)
+ v16.5.0 使用 Senparc.CO2NET.APM
+ v16.5.1 支持 Senparc.NeuChar v0.4.4
+ v16.5.2 优化 APM 和 MessageHandler 消息解密过程
+ v16.6.0 支持最新基础库,使用 .NETStandard2.0 统一支持 .NET Core,放弃对 .NET Core 1.x 的单独适配
+ v16.6.4 修复会员卡接口的枚举序列化字符串问题
+ v16.6.5 修复会员卡创建时supply_balance字段和supply_bonus字段为false不序列化
+ v16.6.6 添加卡券跳转小程序参数
+ v16.6.7 RequestMessageEvent_User_Get_Card 添加 UnionId 属性
+ v16.6.8 添加微信门店小程序接口
+ v16.6.9
+ 1、修复:裂变红包 url 及参数不正确
+ v16.6.13 添加 SendMenu 相关接口,并打通消息回复响应
+ v16.6.14 支持最新版本 Senparc.Weixin
+ v16.6.15 Card_BaseInfoBase 添加 get_custom_code_mode 属性
+ v16.7.0
+ 1、支持异步 Container
+ 2、停止对 .NET 3.5 和 .NET 4.0 的支持
+ v16.7.2 完善 Container 注册委托的储存类型,解决多账户下的注册冲突问题
+ v16.7.4 添加 MessageHandler 的“点击菜单跳转小程序的事件推送”功能
+ v16.7.7.1 修改 UserInfoJson.qr_scene 类型为 unit
+ v16.7.10 修复回复评论的参数bug,添加图文群发总数据的新字段
+ v16.7.11 优化 Container,修复在未注册的情况下直接尝试注册时可能造成线程死锁的情况
+ v16.7.12 修复:客服输入状态的参数错误,调整客服输入状态的参数名称
+ v16.7.13 完善同步方法的 xxContainer.Register() 对异步方法的调用,避免可能的线程锁死问题
+ v16.7.14 修复 AccessTokenContainer.RegisterAsync() 执行缓存更新时可能发生的线程死锁情况
+ v16.7.15 优化 xxContainer.Register() 方法
+ v16.7.16 解决卡券WxCardApiTicketContainer【异步方法】获取可用Ticket,type传值的问题
+ v16.7.17 添加 JsSdkAddCardUiPackage(JSSDK 卡券 AddCard API 调用的参数)
+ v16.7.18 引用最新版本 CO2NET 和 Senparc.Weixin
+ v16.8.0
+ 1、消息上下文支持分布式缓存
+ 2、提供带符号的 nuget 包(.snupkg)
+ v16.9.0
+ 1、使用最新版本 Senparc.Weixin,支持 .NET Core 3.0
+ 2、QrCodeApi.Create() 参数说明更改
+ v16.9.101
+ 1、提供 .Net Core 3.0 独立版本
+ 2、群发接口更新过期类型,使用 GroupMessageByFilter_MediaId
+ 3、优化 Container 异步注册方法
+ v16.9.102
+ 1、提供 MessageHandler 中间件
+ 2、正式启用 OAuthAccessTokenContainer
+ v16.9.103 解决 MessageHandler 初始化无响应的问题
+ v16.9.104 优化 MessageHandler 同步方法兼容策略
+ v16.9.104.1
+ 1、AutoReplyType 添加卡券(card)枚举
+ 2、CommonApi.Token() 方法设置异常抛出机制
+ v16.10.402 添加会员卡接口自定义cell参数
+ v16.10.403 提供详细 CommonApi.GetToken() 报错信息(包括白名单异常)
+ v16.10.500 提供详细 CommonApi.GetToken() 报错信息(包括白名单异常)
+ v16.10.502.1
+ 1、新增从腾讯地图拉取省市区信息
+ 2、在腾讯地图中创建门店
+ 3、修复查询授权页字段信息请求微信URL错误
+ v16.10.502.2 添加微信电子发票 2.3 接收授权完成事件的处理
+ v16.10.502.3 "获取授权页链接数据开票来源"属性的枚举类型序列化字符串优化
+ v16.10.502.3 完善“新增永久视频素材”接口参数
+ v16.10.601 MASSSENDJOBFINISH事件增加 ArticleUrlResult 节点
+ v16.11.102 修正“将电子发票卡券插入用户卡包”接口 InvoiceApi.InsertCardToBag() 问题
+ v16.11.201 服务号订阅通知相关接口 & 补充小程序[获取小程序账号的类目]接口
+ v16.12.101 修改“addTemplate选用模板”接口
+ v16.14.2
+ 1、Register 提供对 ApiHandlerWapper 委托的设置方法
+ 2、添加用户提交抬头后,商户会收到用户提交的事件(submit_invoice_title)
+
+ v16.15.0
+ 1、接入微信支付 V3
+ 2、SEnparcWeixinSetting 添加 record 能力
+
+ v16.15.500 用户信息调整:不再返回用户性别及地区信息
+ v16.17.1 完善永久素材上传接口
+ v16.17.2 优化永久素材上传接口,提供素材类型枚举:UploadForeverMediaType
+ v16.17.3 UserApi.Info() 接口返回值,将 headimgurl、nickname 设为过期
+ v16.17.8 新增草稿箱和发布能力接口
+ v16.18.1 公众号菜单添加 article_id、article_view_limited 类型
+ v16.18.2 完善客服接口
+ v16.18.4 完善 GetDraftResultJson 字段
+ v16.18.5 新增 OpenApi 接口,包括:“查询 openAPI 调用quota”“查询 rid 信息”接口
+ v16.18.6 OAuth 的 AccessToken 获取接口添加 is_snapshotuser 返回值
+ v16.18.7 OAuthApi.GetAuthorizeUrl() 方法添加 forcePopup 参数
+ v16.18.10.7 修复自定义菜单实体问题
+ v16.18.11 新增“获取稳定版接口调用凭据”接口
+ v16.18.13 回退代码,修复菜单问题 #2843
+ v16.18.14 JSSDKHelper.GetNoncestr() 弃用 MD5 加密方法
+ v16.19.0 MessageHandler 和客服接口支持长文本自动切割后连续发送
+ v16.20.1 添加 TemplateApi.AddTemplate() 参数
+ v16.20.2 fix bug: self menu onfig result. PR #2963 / Issue #2804
+ v16.20.3 添加 OCR 接口 / PR #2967
+ v16.20.5 中间件增加事件推送发布结果类型回调 / PR #2984
+ [2024-08-06] v16.21.4 更新基础库,包括 Senparc.CO2NET 相关库、Senparc.AI
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+ ..\..\BuildOutPut
+ TRACE
+
+
+ ..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\BuildOutPut\Senparc.Weixin.MP.xml
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\net40\Senparc.Weixin.MP.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.0\Senparc.Weixin.MP.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.1\Senparc.Weixin.MP.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.net8.csproj b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.net8.csproj
index 528b8855cd..e5ce41977f 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.net8.csproj
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.net8.csproj
@@ -581,7 +581,7 @@
-
+
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net8.csproj b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net8.csproj
index 8176fb8d20..9c757cb316 100644
--- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net8.csproj
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.net8.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 4.20.3
+ 4.20.4
Senparc.Weixin.Open
Senparc.Weixin.Open
true
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc - Backup.Weixin.TenPay.net8.csproj b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc - Backup.Weixin.TenPay.net8.csproj
new file mode 100644
index 0000000000..cb6d14c4ab
--- /dev/null
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc - Backup.Weixin.TenPay.net8.csproj
@@ -0,0 +1,108 @@
+
+
+ net462;netstandard2.0;netstandard2.1
+ 1.16.4
+ Senparc.Weixin.TenPay
+ Senparc.Weixin.TenPay
+ true
+
+ 微信 SDK - 微信支付 模块
+
+ Senparc.Weixin SDK 开源项目:
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+ Senparc Copyright © 2004~2024
+ 微信,微信支付,weixin,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,分布式,小程序,JSSDK,微信支付,摇一摇周边
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.Weixin.TenPay.dll
+ 微信支付 SDK for C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
+ v0.1.0 从 Senparc.Weixin.MP 和 Senparc.Weixin.Work 抽象并分离独立的微信支付模块
+ v0.2.0 支持 Senparc.Weixin v6.0.1
+ v0.2.1 优化支付模板Html5Order方法
+
+ v1.0.0 Senparc.Weixin 6.1.4
+ v1.0.1 优化 TenPayV3Result.GetXmlValues() 方法
+ v1.1.0 完善子账号 SubMchId 相关参数
+ v1.3.0 停止对 .NET 3.5 和 .NET 4.0 的支持
+ v1.4.0 .NET Core 添加多证书注册功能
+ v1.4.2 修改“企业付款”接口(Transfers)的参数命名
+ v1.4.3 引用最新版本 CO2NET
+ v1.4.4 引用最新版本 CO2NET 和 Senparc.Weixin
+ v1.4.5 添加 GetTransferInfoResult.payment_time 属性
+ v1.4.6 引用最新版本 CO2NET 和 Senparc.Weixin
+ v1.4.7
+ 1、支持最新版本 Senparc.Weixin
+ 2、提供带符号的 nuget 包(.snupkg)
+ v1.5.0
+ 1、使用最新版本 Senparc.Weixin,支持 .NET Core 3.0
+ 2、商户的企业付款查询结果实体(GetTransferInfoResult)payment_time字段空值修复
+ v1.5.101 提供 .Net Core 3.0 独立版本
+ v1.5.103 提供 .Net Core 3.0 独立版本
+ v1.5.103.1 增加微信支付小程序:发送红包API
+ v1.5.401 实现分账接口
+ v1.5.402 添加 TenpayV3ProtfitSharingRequestData 的 Version 属性
+ v1.5.403 增加服务商模式SubAppId、SubMchId字段重载
+ v1.5.502.4 添加支付退款详情列表
+ v1.5.601 修正企业红包支付功能中的加密过程
+ v1.6.100 更新 TenPayV3UnifiedorderRequestData 构造函数,version 为空时忽略 https://github.com/JeffreySu/WeiXinMPSDK/issues/2277
+ v1.6.101
+ 1、更新 TenPayV3UnifiedorderRequestData 构造函数,单独提供 version 参数,修正问题:https://github.com/JeffreySu/WeiXinMPSDK/pull/2151
+ 2、删除 TenpayV3ProtfitRequestDataVersion 的定义
+ v1.6.200.2 修复:调用分账查询接口, 结果返回"验证签名失败"问题
+ v1.11.4 使用 Senparc.Weixin.Config.TenPayV3Host 提供可配置的 API 域名
+ v1.12.8 TenPayUtil.GetNoncestr() 弃用 MD5 加密方法
+ [2024-08-06] v1.14.4 更新基础库,包括 Senparc.CO2NET 相关库、Senparc.AI
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+ ..\..\BuildOutPut
+ TRACE
+
+
+ ..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\BuildOutPut\Senparc.Weixin.TenPay.xml
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\net40\Senparc.Weixin.TenPay.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.0\Senparc.Weixin.TenPay.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.1\Senparc.Weixin.Open.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.net8.csproj b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.net8.csproj
index b97e221fa6..f2f7489e99 100644
--- a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.net8.csproj
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.net8.csproj
@@ -97,7 +97,7 @@
-
+
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc - Backup.Weixin.TenPayV3.net8.csproj b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc - Backup.Weixin.TenPayV3.net8.csproj
new file mode 100644
index 0000000000..86f4ff2c2d
--- /dev/null
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc - Backup.Weixin.TenPayV3.net8.csproj
@@ -0,0 +1,101 @@
+
+
+ netstandard2.1
+ 1.6.5
+ Senparc.Weixin.TenPayV3
+ Senparc.Weixin.TenPayV3
+ 10.0
+ true
+
+ 微信 SDK - 微信支付 V3 模块
+
+ Senparc.Weixin SDK 开源项目:
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+ Senparc Copyright © 2004~2024
+ 微信,微信支付,weixin,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,分布式,小程序,JSSDK,微信支付,摇一摇周边
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.Weixin.TenPayV3.dll
+ 微信支付 V3 SDK for C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
+ v0.1.0 创世
+ v0.3.500.2 重构加密方法
+ v0.3.500.3 修正合单支付的 URL 路径错误
+ v0.3.500.4 完成商家券接口、委托营销接口、消费卡接口、支付有礼接口
+ v0.5.1 修复PayV3营销工具商户券API
+ v0.5.6 使用 Senparc.Weixin.Config.TenPayV3Host 提供可配置的 API 域名
+ v0.5.7 升级微信支付请求的方法,支持多种加密方式
+ v0.6.1 修复 CloseOrderAsync() 参数问题
+ v0.6.2.2 修复 TenPayHttpClient 赋值问题
+ v0.6.3 添加“发起商家转账API”
+ v0.6.5 重构 BasePayApis.GetPayApiUrl() 方法
+ v0.6.8.2 MarketingApis.ModifyBusifavorStockInformationAsync 方法单独提取参数 stock_id
+ v0.6.8.3 MarketingApis.ModifyBusifavorStockBudgetAsync 方法单独提取参数 stock_id
+ v0.6.8.4 修改 week_day 类型为 int[]
+ v0.6.8.7 优化 TenPayApiResultCode 获取逻辑,修复 TryGetCode() 方法中当匹配不到预设错误信息时,返回 null 的问题
+ v0.6.8.8 修复 RefundQueryAsync() URL 问题
+ v0.6.8.13 修复验签时 204(NoContent)情况下的异常
+ v0.6.8.14 修复 PayScoreApis.QueryServiceOrderAsync() 重复代码
+ v0.6.8.15 修复 PayScoreApis.QueryServiceOrderAsync() 参数判断逻辑
+ v0.7.0 BasePay 支持服务商模式
+ v0.7.1 修复 TradeBillQueryRequestData 默认参数问题
+ v0.7.3 新增微信支付 V3 服务商的“经营能力”“资金应用”相关接口
+ v0.7.5 TenPayV3Util.GetNoncestr() 弃用 MD5 加密方法
+ v0.7.10.4 基础支付参数缺失处理 、JsonIgnore的问题处理
+ v0.7.11
+ v1.0.0-beta1
+ 1、TenPayV3 RefundQueryRequestData.sub_mchid 属性添加 [JsonIgnore] 标签 #2905
+ 2、添加小程序发货信息管理服务消息事件 PR#2908
+ 3、TenPayV3分账 字段内部加密 PR#2909
+ v1.1.0 TenPaySignHelper.GetJsApiUiPackage() 方法添加 senparcWeixinSettingForTenpayV3 参数
+ v1.2.1.1 解决微信支付分、完成订单参数可为空的问题 Issue #2989
+ v1.4.0 添加:微信支付-发起商家转账入参添加转账场景ID、通知地址;返回结果添加批次状态 / PR #3030
+ v1.4.2 完善 SM 相关方法
+ v1.6.3 更新支付接口调用过程中的 SM 和 RSA 判断方式
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+ ..\..\BuildOutPut
+ TRACE
+
+
+ ..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\BuildOutPut\Senparc.Weixin.TenPayV3.xml
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.1\Senparc.Weixin.Open.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc.Weixin.TenPayV3.net8.csproj b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc.Weixin.TenPayV3.net8.csproj
index df480b284e..0ccde0d453 100644
--- a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc.Weixin.TenPayV3.net8.csproj
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPayV3/Senparc.Weixin.TenPayV3.net8.csproj
@@ -89,7 +89,7 @@
-
+
diff --git a/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.net8.csproj b/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.net8.csproj
index 9764507771..d585b5759c 100644
--- a/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.net8.csproj
+++ b/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.net8.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net8.0
- 1.3.3
+ 1.3.4
Senparc.Weixin.Work.Middleware
Senparc.Weixin.Work.Middleware
true
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.net8.csproj b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.net8.csproj
index c65f89e3b8..606831c5c1 100644
--- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.net8.csproj
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.net8.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 3.23.1
+ 3.23.2
10.0
Senparc.Weixin.Work
Senparc.Weixin.Work
diff --git a/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.net8.csproj b/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.net8.csproj
index 876c7eae26..8909847c51 100644
--- a/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.net8.csproj
+++ b/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.net8.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1;netcoreapp3.1;net8.0
- 1.3.3
+ 1.3.4
Senparc.Weixin.WxOpen.Middleware
Senparc.Weixin.WxOpen.Middleware
true
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/Charge/ChargeApi.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/Charge/ChargeApi.cs
new file mode 100644
index 0000000000..a30fb6655a
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/Charge/ChargeApi.cs
@@ -0,0 +1,90 @@
+using Senparc.NeuChar;
+using Senparc.Weixin.CommonAPIs;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Senparc.Weixin.WxOpen.AdvancedAPIs.Charge
+{
+ [NcApiBind(NeuChar.PlatformType.WeChat_MiniProgram, true)]
+ public class ChargeApi
+ {
+ #region 同步方法
+ ///
+ /// 查询购买资源包的用量情况
+ ///
+ ///
+ /// 商品SPU ID
+ /// 分页偏移量,从0开始
+ ///
+ ///
+ ///
+ public static UsageResultJson Usage(string accessTokenOrAppId, string spuId, int offset, int limit, int timeOut = Config.TIME_OUT)
+ {
+ return WxOpenApiHandlerWapper.TryCommonApi(accessToken =>
+ {
+ var urlFormat = Config.ApiMpHost + "/wxa/charge/usage/get?access_token={0}&spuId=" + spuId + "&offset=" + offset+ "&limit=" + limit;
+ return CommonJsonSend.Send(accessToken, urlFormat, null, CommonJsonSendType.GET, timeOut: timeOut);
+
+ }, accessTokenOrAppId);
+ }
+
+ ///
+ /// 获取小程序某个付费能力的最近用量数据
+ ///
+ ///
+ /// 商品SPU ID
+ ///
+ ///
+ public static GetRecentAverageResultJson GetRecentAverage(string accessTokenOrAppId, string spuId, int timeOut = Config.TIME_OUT)
+ {
+ return WxOpenApiHandlerWapper.TryCommonApi(accessToken =>
+ {
+ var urlFormat = Config.ApiMpHost + "/wxa/charge/usage/get_recent_average?access_token={0}&spuId=" + spuId;
+ return CommonJsonSend.Send(accessToken, urlFormat, null, CommonJsonSendType.GET, timeOut: timeOut);
+
+ }, accessTokenOrAppId);
+ }
+ #endregion
+
+ #region 异步方法
+ ///
+ /// 【异步方法】查询购买资源包的用量情况
+ ///
+ ///
+ /// 商品SPU ID
+ /// 分页偏移量,从0开始
+ ///
+ ///
+ ///
+ public static async Task UsageAsync(string accessTokenOrAppId, string spuId, int offset, int limit, int timeOut = Config.TIME_OUT)
+ {
+ return await WxOpenApiHandlerWapper.TryCommonApiAsync(async accessToken =>
+ {
+ var urlFormat = Config.ApiMpHost + "/wxa/charge/usage/get?access_token={0}&spuId=" + spuId + "&offset=" + offset + "&limit=" + limit;
+ return await CommonJsonSend.SendAsync(accessToken, urlFormat, null, CommonJsonSendType.GET, timeOut: timeOut).ConfigureAwait(false);
+
+ }, accessTokenOrAppId).ConfigureAwait(false);
+ }
+
+ ///
+ /// 【异步方法】获取小程序某个付费能力的最近用量数据
+ ///
+ ///
+ /// 商品SPU ID
+ ///
+ ///
+ public static async Task GetRecentAverageAsync(string accessTokenOrAppId, string spuId, int timeOut = Config.TIME_OUT)
+ {
+ return await WxOpenApiHandlerWapper.TryCommonApiAsync(async accessToken =>
+ {
+ var urlFormat = Config.ApiMpHost + "/wxa/charge/usage/get_recent_average?access_token={0}&spuId=" + spuId;
+ return await CommonJsonSend.SendAsync(accessToken, urlFormat, null, CommonJsonSendType.GET, timeOut: timeOut).ConfigureAwait(false);
+
+ }, accessTokenOrAppId).ConfigureAwait(false);
+ }
+ #endregion
+ }
+}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/Charge/ChargeJson/GetRecentAverageResultJson.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/Charge/ChargeJson/GetRecentAverageResultJson.cs
new file mode 100644
index 0000000000..4e5d423361
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/Charge/ChargeJson/GetRecentAverageResultJson.cs
@@ -0,0 +1,47 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2024 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
+
+----------------------------------------------------------------*/
+#endregion Apache License Version 2.0
+
+/*----------------------------------------------------------------
+ Copyright (C) 2024 Senparc
+
+ 文件名:GetRecentAverageResultJson.cs
+ 文件功能描述:小程序 获取小程序某个付费能力的最近用量数据 返回结果
+
+
+ 创建标识:mc7246 - 20240831
+
+----------------------------------------------------------------*/
+
+using Senparc.Weixin.Entities;
+
+namespace Senparc.Weixin.WxOpen.AdvancedAPIs.Charge
+{
+ ///
+ /// 小程序 获取小程序某个付费能力的最近用量数据 返回结果
+ ///
+ public class GetRecentAverageResultJson: WxJsonResult
+ {
+ ///
+ /// 最近月平均用量,经模糊化处理,非精确值
+ /// 当averageData返回值为50时,语义为小程序最近平均用量小于等于50次/月,并不是特指精确等于每月50次。
+ ///
+ public int averageData { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/Charge/ChargeJson/UsageResultJson.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/Charge/ChargeJson/UsageResultJson.cs
new file mode 100644
index 0000000000..36b3961154
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/Charge/ChargeJson/UsageResultJson.cs
@@ -0,0 +1,126 @@
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2024 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+except in compliance with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+either express or implied. See the License for the specific language governing permissions
+and limitations under the License.
+
+Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
+
+----------------------------------------------------------------*/
+#endregion Apache License Version 2.0
+
+/*----------------------------------------------------------------
+ Copyright (C) 2024 Senparc
+
+ 文件名:UsageResultJson.cs
+ 文件功能描述:小程序 查询购买资源包的用量情况 返回结果
+
+
+ 创建标识:mc7246 - 20240831
+
+----------------------------------------------------------------*/
+
+using Senparc.Weixin.Entities;
+using System.Collections.Generic;
+
+namespace Senparc.Weixin.WxOpen.AdvancedAPIs.Charge
+{
+ ///
+ /// 小程序-查询购买资源包的用量情况 返回结果
+ ///
+ public class UsageResultJson : WxJsonResult
+ {
+ ///
+ /// 资源可用总量(64位数字),用于资源包类商品
+ ///
+ public string all { get; set; }
+
+ ///
+ /// 资源总量(64位数字),用于资源包类商品
+ ///
+ public string effectiveAll { get; set; }
+
+ ///
+ /// 累计用量(64位数字),用于资源包类商品
+ ///
+ public string effectiveUse { get; set; }
+
+ ///
+ /// 订阅开始时间戳(单位:秒),用于订阅类商品
+ ///
+ public long startServiceTime { get; set; }
+
+ ///
+ /// 订阅结束时间戳(单位:秒),用于订阅类商品
+ ///
+ public long endServiceTime { get; set; }
+
+ ///
+ /// 用量详情列表总数
+ ///
+ public int total { get; set; }
+
+ ///
+ /// 用量详情列表
+ ///
+ public List detailList { get; set; }
+ }
+
+ public class UsageResultJson_DetailList
+ {
+ ///
+ /// 资源包ID
+ ///
+ public string pkgId { get; set; }
+
+ ///
+ /// 资源包状态,1生效中,2未生效,3已失效
+ ///
+ public int status { get; set; }
+
+ ///
+ /// 额度有效期开始时间戳(单位:秒)
+ ///
+ public long startTime { get; set; }
+
+ ///
+ /// 额度有效期至结束时间戳(单位:秒)
+ ///
+ public long endTime { get; set; }
+
+ ///
+ /// 使用额度(64位数字)
+ ///
+ public string used { get; set; }
+
+ ///
+ /// 额度容量(64位数字)
+ ///
+ public string all { get; set; }
+
+ ///
+ /// 额度来源的商品SPU ID(64位数字)
+ ///
+ public string spuId { get; set; }
+
+ ///
+ /// 额度来源的商品SKU ID(64位数字)
+ ///
+ public string skuId { get; set; }
+
+ ///
+ /// 额度来源,1体验额度,2付费购买,3服务商分配,4其他,5其他
+ ///
+ public int source { get; set; }
+
+ }
+}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageContexts/DefaultWxOpenMessageContext.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageContexts/DefaultWxOpenMessageContext.cs
index a0e8c5655f..149868337e 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageContexts/DefaultWxOpenMessageContext.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/MessageContexts/DefaultWxOpenMessageContext.cs
@@ -102,6 +102,18 @@ public override IRequestMessageBase GetRequestEntityMappingResult(RequestMsgType
case "WX_VERIFY_DISPATCH": //微信认证派单事件
requestMessage = new RequestMessageEvent_WxVerifyDispatch();
break;
+ case "USER_INFO_MODIFIED": //用户资料变更
+ requestMessage = new RequestMessageEvent_UserInfoModified();
+ break;
+ case "USER_AUTHORIZATION_REVOKE": //用户撤回
+ requestMessage = new RequestMessageEvent_UserAuthorizationRevoke();
+ break;
+ case "USER_AUTHORIZATION_CANCELLATION": //用户完成注销
+ requestMessage = new RequestMessageEvent_UserAuthorizationCancellation();
+ break;
+ case "CHARGE_SERVICE_QUOTA_NOTIFY": //付费管理订单用量告警事件
+ requestMessage = new RequestMessageEvent_ChargeServiceQuotaNotify();
+ break;
default://其他意外类型(也可以选择抛出异常)
requestMessage = new RequestMessageEventBase();
break;
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj
index e40f1324ec..16793a73c9 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.net8.csproj
@@ -1,7 +1,7 @@
net462;netstandard2.0;netstandard2.1
- 3.20.4
+ 3.21.0
9.0
Senparc.Weixin.WxOpen
Senparc.Weixin.WxOpen
@@ -150,40 +150,41 @@
v3.8.512 添加解密到实例信息方法
v3.10.101 新增 WxOpen 专属 AccessTokenContainer,解决没有提供 name 参数的情况下,Register 过程和公众号注册信息发生冲突的问题
v3.10.102 修正 UniformSendData.Mp_Template_Msg.Miniprogram 参数 pagepath -> page
- v3.10.103 修正 WxOpenApiHandlerWapper 正确引用 AccessTokenContainer
- v3.10.104 添加 WxAppApi.GenerateScheme() 接口
- v3.10.401 升级 MessageApi.SendSubscribe() 方法参数
- v3.11.100 修改完善“附近的小程序”接口
- v3.13.500-preview4.1 添加“Short Link”接口
- v3.14 添加 ExpressApi 接口
- v3.14.2 添加“小程序违规和申诉管理”消息事件
- v3.14.3 添加 UrlLinkApi.Generate() 接口
- v3.14.4 添加 BusinessApi.GetUserPhoneNumber() 接口
- v3.14.5 修改“下发小程序和公众号统一的服务消息”接口参数,提升兼容性
- v3.14.10.1 修复 WxAppApi.GetWxaCodeUnlimitAsync() 接口参数错误
- v3.15.2 添加小程序隐私接口
- v3.15.3 添加商户客户参数(BusinessId)
- v3.15.4 添加小程序客服管理接口
- v3.15.6 添加“异步校验图片/音频是否含有违法违规内容”接口
- v3.15.7
- 1、添加 OnEvent_MediaCheckRequest() 方法:内容安全回调 - wxa_media_check 推送结果
- 2、修复 RequestMsgType.Event 返回值没有正确赋值的问题
- v3.15.10 EncryptHelper.DecodeEncryptedData() 方法添加 keySize 参数
- v3.15.12 添加小程序类目审核结果事件推送
- v3.15.13 添加“文本内容安全识别”接口 PR #2786
- v3.15.15 添加物流服务相关接口和事件推送 PR #2834
- v3.15.15.1 获取小程序服务GenerateScheme模型增加env_version字段 PR #2861
- v3.16.0 客服接口支持长文本自动切割后连续发送
- v3.16.4 微信已于2023 年 9 月 20 日收回下发统一消息接口,标注过时 PR #2921
- v3.17.1 添加 CodeApi.RevertCodeRelease() 方法的 appVersion 参数
- v3.17.2 添加“小程序虚拟支付”功能 PR #2961 / Issue #2951
- v3.17.3 添加小程序分类审核异步通知事件 / PR #2969
- v3.17.5 新增小程序认证年审事件接口 / PR #2979
- v3.17.6 虚拟支付增加了接口从1.0.7~1.0.10,同步完善 / PR #2987
- v3.19.0 添加小程序发货信息管理服务-查询小程序是否已完成交易结算管理确认接口 / PR #3030
- [2024-08-06] v3.19.2 更新基础库,包括 Senparc.CO2NET 相关库、Senparc.AI
- [2024-09-02] v3.20.2 WxOpen 支持小程序付费能力的用量告警事件
-
+ v3.10.103 修正 WxOpenApiHandlerWapper 正确引用 AccessTokenContainer
+ v3.10.104 添加 WxAppApi.GenerateScheme() 接口
+ v3.10.401 升级 MessageApi.SendSubscribe() 方法参数
+ v3.11.100 修改完善“附近的小程序”接口
+ v3.13.500-preview4.1 添加“Short Link”接口
+ v3.14 添加 ExpressApi 接口
+ v3.14.2 添加“小程序违规和申诉管理”消息事件
+ v3.14.3 添加 UrlLinkApi.Generate() 接口
+ v3.14.4 添加 BusinessApi.GetUserPhoneNumber() 接口
+ v3.14.5 修改“下发小程序和公众号统一的服务消息”接口参数,提升兼容性
+ v3.14.10.1 修复 WxAppApi.GetWxaCodeUnlimitAsync() 接口参数错误
+ v3.15.2 添加小程序隐私接口
+ v3.15.3 添加商户客户参数(BusinessId)
+ v3.15.4 添加小程序客服管理接口
+ v3.15.6 添加“异步校验图片/音频是否含有违法违规内容”接口
+ v3.15.7
+ 1、添加 OnEvent_MediaCheckRequest() 方法:内容安全回调 - wxa_media_check 推送结果
+ 2、修复 RequestMsgType.Event 返回值没有正确赋值的问题
+ v3.15.10 EncryptHelper.DecodeEncryptedData() 方法添加 keySize 参数
+ v3.15.12 添加小程序类目审核结果事件推送
+ v3.15.13 添加“文本内容安全识别”接口 PR #2786
+ v3.15.15 添加物流服务相关接口和事件推送 PR #2834
+ v3.15.15.1 获取小程序服务GenerateScheme模型增加env_version字段 PR #2861
+ v3.16.0 客服接口支持长文本自动切割后连续发送
+ v3.16.4 微信已于2023 年 9 月 20 日收回下发统一消息接口,标注过时 PR #2921
+ v3.17.1 添加 CodeApi.RevertCodeRelease() 方法的 appVersion 参数
+ v3.17.2 添加“小程序虚拟支付”功能 PR #2961 / Issue #2951
+ v3.17.3 添加小程序分类审核异步通知事件 / PR #2969
+ v3.17.5 新增小程序认证年审事件接口 / PR #2979
+ v3.17.6 虚拟支付增加了接口从1.0.7~1.0.10,同步完善 / PR #2987
+ v3.19.0 添加小程序发货信息管理服务-查询小程序是否已完成交易结算管理确认接口 / PR #3030
+ [2024-08-06] v3.19.2 更新基础库,包括 Senparc.CO2NET 相关库、Senparc.AI
+ [2024-09-02] v3.20.2 WxOpen 支持小程序付费能力的用量告警事件
+ [2024-10-08] v3.21.0 WxOpen 添加“查询购买资源包的用量情况”接口 #3078
+
https://github.com/JeffreySu/WeiXinMPSDK
diff --git a/src/Senparc.Weixin/Senparc.Weixin/Senparc - Backup.Weixin.net8.csproj b/src/Senparc.Weixin/Senparc.Weixin/Senparc - Backup.Weixin.net8.csproj
new file mode 100644
index 0000000000..aac25542a0
--- /dev/null
+++ b/src/Senparc.Weixin/Senparc.Weixin/Senparc - Backup.Weixin.net8.csproj
@@ -0,0 +1,409 @@
+
+
+ net462;netstandard2.0;netstandard2.1
+
+ 6.20.1
+ 10.0
+ Senparc.Weixin
+ Senparc.Weixin
+ true
+
+ 微信 SDK - Senparc.Weixin SDK 基础模块
+
+ Senparc.Weixin SDK 开源项目:
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+ Senparc Copyright © 2004~2024
+ 微信,weixin,公众号,WeChat,Senparc,盛派,SDK,C#,JSSDK,微信支付,分布式,小程序,Cache,Redis
+ Jeffrey Su
+ Senparc
+ Apache-2.0
+ https://github.com/JeffreySu/WeiXinMPSDK
+ Senparc.Weixin.dll
+ 微信 SDK for .NET / C#
+ https://github.com/JeffreySu/WeiXinMPSDK
+ icon.jpg
+
+ v1.0.0
+ 重构代码,从原来的Senparc.Weixin.MP.dll中分离基类代码
+
+ v1.4.0
+ 重构代码,完全兼容公众账号及企业号。
+
+ v1.5.0
+ 添加统一的消息加密接口
+
+ v1.6.0
+ 添加消息去重功能
+
+ v1.6.1
+ 完善消息去重功能
+
+ v2.0.0
+ 重构代码,加入AppStore接口
+
+ v3.0.0
+ .NET框架升级到4.0
+
+ v3.3.4
+ 区分企业号与公众号的返回码
+ post表单处理修改
+
+ v3.3.6
+ 修改HttpUtility方法
+
+ v3.3.7 添加 验证服务器证书回调自动验证功能
+
+ v3.3.8 稳定版本
+
+ v3.3.9 优化PostModel基类属性,稳定版本
+
+ v4.1.0 添加异步代码,支持.NET 4.5
+
+ v4.2.1 完善异步方法,添加JSON生成过程中null对象的过滤机制。
+
+ v4.2.3 完善底层代码
+
+ v4.3.2 增加统一的Container和Bag管理器
+
+ v4.4.1 重构,增加Debug跟踪功能
+
+ v4.5 添加分布式缓存接口
+ v4.5.6 优化缓存策略
+ v4.5.12 优化缓存策略结构
+ v4.5.14 优化重构
+ v4.5.17 优化列队及缓存方案
+ v4.5.19 优化Http通讯方法
+ v4.5.20 添加消息接口IResponseMessageNoResponse
+ v4.5.22 添加BaseContainerBag.Name
+
+ v4.6.0
+ 优化EntityHelper等方法
+
+ v4.7.3
+ 重构缓存及Container相关
+
+ v4.7.4 解决Container无法注册的问题
+
+ v4.7.5
+ 添加TryReRegister()方法,处理分布式缓存重启(丢失)的情况
+
+ v4.7.7
+ 重构缓存键命名空间规则,添加Config.DefaultCacheNamespace
+
+ v4.8.0
+ 修正在ResponseMessage都null的情况下,没有对_textResponseMessage做判断就直接返回空字符串的问题
+
+ v4.9.0 重构缓存,添加ObjectCacheStrategy
+ v4.9.1 重写WxJsonResult.ToString()方法,输出带格式的内容。
+ v4.9.2 Senparc.Weixin v4.9.2 添加FileHelper
+ v4.9.3 添加小程序返回码添加小程序返回码
+ v4.9.5 添加Sex枚举
+ v4.9.6 修改错别字Browser->Browser,请注意全局替换更新
+
+ v4.9.7
+ 1、WeixinTrace使用同步锁,取代原先的本地锁
+ 2、修改日志储存路径,新路径为/App_Data/WeixinTraceLog/SenparcWeixinTrace-yyyyMMdd.log
+ 3、完善异常日志记录
+ v4.9.8 将SendLog方法改名为SendApiLog
+ v4.9.9
+ 1、优化WeixinTrace
+ 2、统一MessageHandlerException、UnknownRequestMsgTypeException的构造函数调用(将第一个构造函数的base改为this);
+ 3、修改UnknownRequestMsgTypeException的基类为MessageHandlerException
+ 4、添加【ReturnCode.template_id】不正确枚举
+ 5、修改ErrorJsonResultException日志记录格式
+ v4.9.11 添加SuccessResponseMessageBase类型响应信息基类
+
+ v4.9.14
+ 为AsUrlData方法添加null判断
+ v4.9.15 添加AES加密、解密算法
+
+ v4.10.0 添加TemplateMessageBase作为所有模板消息数据实体基类
+ Senparc.Weixin v4.10.1 添加SerializerHelper.GetObject方法
+ v4.10.3 BaseContainer添加RemoveFromCache方法
+ v4.10.4 优化FileHelper.GetFileStream方法
+
+ v4.11.0 重构分布式锁
+ v4.11.1 添加【ReturnCode.appsecret不正确】枚举类型(invalid appsecret,40125)
+ v4.11.2 :
+ 修改SideInWeixinBrowser判断逻辑
+ v4.11.3 :
+ 日志中添加对线程的记录
+ v4.11.4 :
+ 修改EncryptHelper.GetSha1(string encypStr)方法算法
+ v4.11.5:修复WeixinJsonConventer.Serialize中的错误。
+ v4.11.6:修改注释,整理文件
+ v4.11.7 请求证书都改为 X509Certificate2 类型
+ v4.11.8 (MessageHandler V3.2)修复 TextResponseMessage 不输出加密信息的问题
+ v4.11.9 修改Download方法
+ v4.11.10 恢复.net core版本中的EncryptHelper.GetSha1()方法可用
+ v4.11.11 添加MessageHandlerExtensions
+
+ v4.12.0 优化最新 .NET Core 模块
+ v4.12.1 修复因为netstandard1.6条件编译符不正确造成的部分代码短路
+ v4.12.2 修复HttpUtility.UrlEncode .net core方法错误
+ v4.12.3 修复HttpUtility.UrlEncode .net 4.5方法错误
+
+ v4.12.1 修复因为netstandard1.6条件编译符不正确造成的部分代码短路
+ 添加SenparcWeixinSetting配置类
+ v4.12.2 修复HttpUtility.UrlEncode .net core方法错误
+ v4.12.3 修复HttpUtility.UrlEncode .net 4.5方法错误
+ v4.12.4 MessageHandler基类默认开启消息去重,不再需要手动设置(messageHandler.OmitRepeatedMessage = true)
+ v4.12.5 提供对企业微信的支持:添加WorkJsonResult(企业微信返回消息基类)、ReturnCode_Work(枚举)
+
+ v4.12.5 提供对企业微信的支持:添加WorkJsonResult(企业微信返回消息基类)、ReturnCode_Work(枚举)
+ v4.12.6 添加ASCIISort比较类,用于ASCII字典排序
+
+ v4.13.0
+ 1、IJsonResult 接口添加 ErrorCodeValue 属性
+ 2、添加MutipleCacheTestHelper类(多种缓存测试帮助类)
+ 3、添加ReflectionHelper类(反射帮助类)
+ 4、完善本地缓存策略插入key
+ v4.13.1 优化ApiHandlerWapperBase.TryCommonApiBaseAsync()方法
+ v4.13.2 添加RequestMessageTextExtension的大小写是否敏感设置
+ v4.13.3 为RequestUtility.HttpGet()方法添加Accept、UserAgent、KeepAlive设置
+ v4.13.4 修改企业微信APPId判断标准错误(使用新规则)
+
+ v4.13.5
+ 1、完善AppId未注册提示
+ 2、修复ApiHandlerWapperBase.TryCommonApiBase()方法自动刷新AccessToken的问题
+ 3、提供统一的EntityHelper
+ 4、ReturnCode添加:没有留言权限 = 88000
+
+ v4.14.0
+ 1、修复RequestMessageTextExtension.GetResponseMessage()方法判断问题
+ 2、支持.NET Core 2.0
+ v4.14.3 重构MD5生成方法,并提供小写MD5方法
+ v4.14.4 常规更新
+
+ v4.15.0
+ 1、添加 WeixinNullReferenceException 异常类型
+ 2、添加 UrlUtility(Url工具类),生成 OAuth 用的额 CallbackUrl 参数
+ v4.15.1 优化 DateTimeHelper 计算方式
+
+ v4.16.0 添加 Senparc.Weixin.Config.UseSandBoxPay 属性,使用微信支付接口时自动判断是否调用沙箱
+ v4.16.1 (.NET Core)添加CoreWebProxy.cs
+ v4.16.3 在 NetStandard 2.0中恢复 WeixinTrace 的日志功能
+ v4.16.4 在 2017年9月26日企业号长度变化,对应修改IsAppId()方法逻辑
+ v4.16.5 尝试解决微信{utf8"编码字符串带来的.net core runtime 对 content-type的解析错误
+ v4.16.6 提供NETCOREAPP2_0编译
+ v4.16.7 继续解决.net core 2.0下utf8和utf-8的问题处理
+ v4.16.8 优化 .net core 2.0 RequestUtility异步方法
+ v4.16.9 添加 ObjectExtensions,补充扩展方法
+ v4.16.10 优化.net core环境下的WeixinTrace日志输出路径
+
+ v4.17.0-beta1 重构HttpUtility,重新支持 .NET 4.0
+ v4.17.0-beta3 重新支持 .NET 3.5
+ v4.17.0-beta4 优化
+ v4.17.1 优化WeixinTrace
+ v4.17.2 丰富SenparcWeixinSetting参数
+ v4.17.3 添加RequestUtility.HttpResponseGet()方法,提供外部测试通道
+
+ v4.18.0 RequestUtility的Post和Get方法开始支持模拟Ajax请求
+ v4.18.1 修改Get.Download()方法
+ v4.18.2 新建SenparcHttpResponse,重构重构RequestUtility.HttpPost()方法
+ v4.18.3 v4.18.2-beta发布正式版
+ v4.18.4 修正当.net core 2.0中对请求的流不支持Seek 时的判断
+ v4.18.5 添加Config.ApiMpHost属性,可以设置API域名
+ v4.18.6 重新设置企业微信默认域名
+ v4.18.7 调整HttpUtility.Get.Download(string url, string filePathName),改为输入完整文件路径+文件名
+ v4.18.8 优化CommonJsonSend中的方法,并完善Post数据的日志记录
+ v4.18.9 优化MD5获取方法:EncryptHelper.GetMD5()
+ v4.18.10 添加 EncryptHelper.GetHmacSha256() 方法,为“小游戏”签名提供支持
+ v4.18.11 添加 WeixinObsoleteException,用于标记接口或方法过期异常
+ v4.18.13
+ 1、添加 Config.ApiMpFileHost 公众号文件下载域名
+ 2、修改 HttpUtility.Get.Download() 方法,根据 Content-Disposition 中的文件名储存文件
+ v4.18.14 优化 HttpUtility.RequestUtility.HttpPost() 方法,优化文件流上传
+
+ v4.19.0 支持异步 MessageHandler
+
+ v4.20.0 停止对 .net core 1.1 生成的独立版本
+ v4.20.1 提供 RegisterServices 进行快捷注册
+ v4.20.2
+ 1、添加IRequestMessageTextOrEvent,作为所有文本(RequestMessageText)或事件(RequestMessageEvent)接口
+ 2、添加IRequestMessageEvent作为所有事件(RequestMessageEvent接口)
+ v4.20.3 为 .NET Core 优化 UrlUtility.GenerateOAuthCallbackUrl() 方法中的端口获取过程
+ v4.20.4 增加对小程序 web-view 内打开页面的判断方法 BrowserUtility.SideInWeixinMiniProgram()
+
+ v4.21.0-rc1 支持 .NET Core 2.1.2
+ v4.21.2-rc1 完善 .net core 注册流程
+ v4.21.3-rc1 为 .net core 2.1 改进条件编译
+ v4.21.4-rc1 完善 .net core 环境下的文件上传机制,解决文件占用问题
+ v4.21.5-rc1 修改 TenPayV3Util.DecodeRefundReqInfo() 方法,解决重复 base64 解码的问题
+ v4.21.6-rc1 添加 RequestUtility.GetRequestMemoryStream() 方法
+
+ v4.22.0-rc1 将 JsonSetting 继承 JsonSerializerSettings,使用 Newtonsoft.Json 进行序列化
+ v4.22.1-rc1
+ 1、丰富 SenparcWeixinSetting 参数(Component_Token、Component_EncodingAESKey)
+ 2、添加 RequestExtension
+
+ v4.22.1 发布支持 .net core 2.1 的正式版
+ v4.22.2 完善 RequestUtility.HttpPost_Common_NetCore() 字符串信息提交过程
+
+ v5.0.0 引入 Senparc.CO2NET
+ v5.0.2-preview1 支持 CO2NET v0.1.2
+ v5.0.3.1-perview
+ v5.0.6.1 支持 CO2NET v0.1.6.1 解决 XXE 漏洞
+ v5.0.7 支持 CO2NET v0.1.7,为 WeixinRegister.UseSenparcWeixin() 方法提供自动注册扩展缓存的能力
+ v5.0.8
+ 1、SenparcWeixinSetting 构造函数提供 isDebug 参数
+ 2、优化扩展缓存自动注册过程
+ v5.0.8.4 优化 WeixinRegister.UseSenparcWeixin() 提供 autoScanExtensionCacheStrategies 参数,可设置是否全局扫描扩展缓存(扫描会增加系统启动时间)
+ v5.0.9
+ 1、支持 CO2NET v0.1.9,扩展缓存扫描方式重构
+ 2、重构 SenparcWeixinSetting 参数,添加公众号信息集中管理功能
+ 3、重构账号注册过程
+ v5.0.10 支持 CO2NET v0.1.10,将 SenparcWeixinSetting 中的 Redis 和 Memcached 配置参数调整到 CO2NET 的 SenparcSetting 中
+ v5.0.11 支持 CO2NET v0.1.11
+ v5.1.0 支持 CO2NET v0.2.0,重构Container代码
+ v5.1.2 Config.SenparcWeixinSetting 提供默认实例
+ v5.1.3
+ 1、支持 CO2NET v0.2.3
+ 2、优化 UrlUtility.GenerateOAuthCallbackUrl() 方法
+ v5.1.4 支持 CO2NET v0.2.4
+ v5.1.6 支持 CO2NET v0.2.6
+ v5.1.7 优化 SenparcWeixinSetting,分离不同模块接口
+ v5.1.8 支持 CO2NET v0.2.8
+
+ v6.0.0 支持 NeuChar 标准,分离 MessageHandlers 和 WeixinContext
+ v6.0.1 支持 CO2NET v0.2.10
+ v6.0.2 优化 NeuChar 标准
+ v6.0.4 UrlUtility.GenerateOAuthCallbackUrl() 方法,更好支持反向代理
+ v6.1.0 支持 Senparc.NeuChar v0.1.2,BaseContainer.GetFirstOrDefaultAppId() 方法添加 PlatformType 属性
+ v6.1.1 还原 v6.0.4 的修改
+ v6.1.2 支持 Senparc.NeuChar v0.1.4
+ v6.1.3 支持 Senparc.NeuChar v0.2.1
+ v6.1.4 支持 Senparc.CO2NET v0.2.14,Senparc.NeuChar v0.2.5
+ v6.1.5 Senparc.NeuChar v0.2.7
+ v6.1.7 支持 Senparc.NeuChar v0.2.9.1
+ v6.1.8 Senparc.NeuChar v0.2.11,升级 MessageHandler
+ v6.1.10 改进 TryCommonApiBase 方法
+ v6.2.0 升级 Senparc.NeuChar,支持 APM
+ v6.2.1 支持 Senparc.NeuChar v0.4.4
+ v6.3.0
+ 1、使用 .NETStandard2.0 统一支持 .NET Core,放弃对 .NET Core 1.x 的单独适配
+ 2、完善子账号 SubMchId 相关参数
+ v6.3.4 添加快速创建小程序接口
+ v6.3.6 支持在子程序环境下获取 OAuth 回调地址
+ v6.3.9 支持最新版本 Senparc.NeuChar
+ v6.3.10 支持最新版本 Senparc.NeuChar
+ v6.3.11 优化 BaseContainer
+ v6.4.0
+ 1、支持异步 Container
+ 2、停止对 .NET 3.5 和 .NET 4.0 的支持
+ v6.4.2 完善 Container 注册委托的储存类型,解决多账户下的注册冲突问题
+ v6.4.4 .NET Core 添加多证书注册功能
+ v6.4.8 添加 Config.ThrownWhenJsonResultFaild 属性,用于设置当 JsonResult 不为“成功”状态时,是否抛出异常,默认为 true
+ v6.4.9 增加 ReturnCode 枚举: 创建标签 错误返回信息
+ v6.4.10 增加 ReturnCode 枚举:开放平台-小程序的普通链接二维码接口
+ v6.4.11 引用最新版本 CO2NET
+ v6.4.12 引用最新版本 CO2NET
+ v6.4.13 引用最新版本 CO2NET
+ v6.4.14 引用最新版本 CO2NET
+ v6.5.0
+ 1、引用新版本 NeuChar,支持分布式消息上下文(MessageContext)
+ 2、提供带符号的 nuget 包(.snupkg)
+ v6.6.0 使用最新版本 Neuchar、CO2NET,支持 .NET Core 3.0
+ v6.6.101 提供 .Net Core 3.0 独立版本
+ v6.6.102
+ 1、添加 UseSenparcWeixin() 新方法
+ 2、提供 SenparcWeixinSetting[key] 快捷索引器,对 Items 内容进行索引
+ 3、提供 SenparcWeixinSettingItem 快速创建构造函数
+ v6.6.104 引用新版本 NeuChar,优化 MessageHandler 同步方法兼容策略
+ v6.6.104.1 优化 ApiHandlerWapperBase.TryCommonApiBaseAsync() 方法,统一使用 accessToken 参数进行容错重试
+ v6.7.303 BaseContainerCacheStrategy.UpdateContainerBag() 方法自动更新 CacheTime 值
+ v6.7.401 配合 Open v6.7.401,添加 ReturnCode 枚举类型
+ v6.7.500 修改 ErrorJsonResultException 属性
+ v6.7.502
+ 1、添加 40164 错误编码
+ 2、新增企业微信状态码转换失败判断
+ v6.8.200 RegisterFuncCollection 改为 ConcurrentDictionary 类型
+ v6.8.400
+ 1、引用新版本 NeuChar 及 CO2NET,解决可能导致崩溃的缓存问题
+ 2、修复 CommonJsonSend.PostFailAction 公共请求失败处理抛错问题
+ v6.11.1 TryCommonApiBase 提供 invalidCredentialValues,可设置多种重试错误代码
+ v6.12.0 升级至微信支付 V3(真)
+ v6.12.500 提供 UserHelper
+ v6.14.5 添加试用小程序接口及事件
+ v6.15 最低 .NET Framework 版本升级至 4.6.2
+ v6.15.2 更新 ReturnCode 枚举,添加“半屏小程序管理”代码
+ v6.15.3 使用最新 CO2NET,处理微信服务器无法识别中文文件名的问题。
+ v6.15.4
+ 1、更新 TryCommonApiBase 异常抛出逻辑
+ 2、添加 JsonResultHelper
+ 3、更新 ReturnCode 枚举,OpenApi 中的错误代码
+ v6.15.5 添加 WeixinTrace.SendApiLog(string, Stream) 重写方法
+ v6.15.8 CommonJsonSend.Send() 方法提供 contentType 参数
+ v6.15.8.6 AddCertHttpClient.AddCertHttpClient() 方法添加对 certPath 为 null 的判断
+ v6.17.1 添加 app.UseSenparcWeixin() 扩展方法
+ [2024-08-06] v6.18.4 更新基础库,包括 Senparc.CO2NET 相关库、Senparc.AI
+ [2024-09-29] v6.20.0 更新WeixinRegister.UseSenparcWeixin() 方法,修复 Console 模式下无法完成自定义注册的问题
+
+ https://github.com/JeffreySu/WeiXinMPSDK
+
+
+ ..\..\BuildOutPut
+ TRACE;RELEASE
+
+
+ ..\..\BuildOutPut
+ $(DefineConstants);RELEASE
+ ..\..\BuildOutPut\Senparc.Weixin.XML
+ true
+ pdbonly
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\net462\Senparc.Weixin.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.0\Senparc.Weixin.xml
+
+
+ ..\..\BuildOutPut\
+ ..\..\BuildOutPut\netstandard2.1\Senparc.Weixin.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.net8.csproj b/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.net8.csproj
index 2f867f1534..3b491a1a4b 100644
--- a/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.net8.csproj
+++ b/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.net8.csproj
@@ -382,7 +382,7 @@
-
+
diff --git a/src/Senparc.Weixin/Senparc.WeixinTests/Senparc.WeixinTests.net8.csproj b/src/Senparc.Weixin/Senparc.WeixinTests/Senparc.WeixinTests.net8.csproj
index f562e1138e..ec8914d0dc 100644
--- a/src/Senparc.Weixin/Senparc.WeixinTests/Senparc.WeixinTests.net8.csproj
+++ b/src/Senparc.Weixin/Senparc.WeixinTests/Senparc.WeixinTests.net8.csproj
@@ -27,7 +27,7 @@
-
+