diff --git a/Samples/net45-mvc/Senparc.Weixin.MP.Sample.CommonService/Senparc.Weixin.NetCore3Sample.CommonService.csproj b/Samples/net45-mvc/Senparc.Weixin.MP.Sample.CommonService/Senparc.Weixin.NetCore3Sample.CommonService.csproj
index 2b9defd05b..4fdd34c4f8 100644
--- a/Samples/net45-mvc/Senparc.Weixin.MP.Sample.CommonService/Senparc.Weixin.NetCore3Sample.CommonService.csproj
+++ b/Samples/net45-mvc/Senparc.Weixin.MP.Sample.CommonService/Senparc.Weixin.NetCore3Sample.CommonService.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Senparc.Weixin.Sample.NetCore3.csproj b/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Senparc.Weixin.Sample.NetCore3.csproj
index e2a7eeeaa8..3c00679569 100644
--- a/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Senparc.Weixin.Sample.NetCore3.csproj
+++ b/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Senparc.Weixin.Sample.NetCore3.csproj
@@ -2,7 +2,7 @@
netcoreapp3.1
- 5.600.7
+ 5.600.8
@@ -39,8 +39,8 @@
-
-
+
+
diff --git a/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Startup.cs b/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Startup.cs
index b98449d725..489131eedc 100644
--- a/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Startup.cs
+++ b/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Startup.cs
@@ -218,7 +218,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env,
{
app.UseEnyimMemcached();
weixinRegister.UseSenparcWeixinCacheMemcached();
- } // DPBMARK_END
+ } // DPBMARK_END
#endregion
@@ -227,7 +227,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env,
weixinRegister
//注册公众号(可注册多个) -- DPBMARK MP
- .RegisterMpAccount(senparcWeixinSetting.Value, "【盛派网络小助手】公众号")// DPBMARK_END
+ .RegisterMpAccount(senparcWeixinSetting.Value, "【盛派网络小助手】公众号") // DPBMARK_END
//注册多个公众号或小程序(可注册多个) -- DPBMARK MiniProgram
@@ -352,7 +352,12 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env,
//使用公众号的 MessageHandler 中间件(不再需要创建 Controller) --DPBMARK MP
app.UseMessageHandlerForMp("/WeixinAsync", CustomMessageHandler.GenerateMessageHandler, options =>
{
- //说明:此代码块中演示了较为全面的功能点,简化的使用可以参考下面小程序和企业微信
+ /* 说明:
+ * 1、此代码块中演示了较为全面的功能点,简化的使用可以参考下面小程序和企业微信
+ * 2、使用中间件也支持多账号,可以使用 URL 添加参数的方式(如:/Weixin?id=1),
+ * 在options.AccountSettingFunc = context => {...} 中,从 context.Request 中获取 [id] 值,
+ * 并反馈对应的 senparcWeixinSetting 信息
+ */
#region 配置 SenparcWeixinSetting 参数,以自动提供 Token、EncodingAESKey 等参数
diff --git a/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Views/Shared/_Layout.cshtml b/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Views/Shared/_Layout.cshtml
index 97463bf293..c424ef4399 100644
--- a/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Views/Shared/_Layout.cshtml
+++ b/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/Views/Shared/_Layout.cshtml
@@ -117,9 +117,9 @@
@*2017年6月16日已发布新版本,改进诸多功能,并发布企业微信(Senparc.Weixin.Work)测试版,支持 .net core / .net 4.5。点击这里查看。*@
@*Senparc 官方微信开发教程《微信开发深度解析:公众号、小程序高效开发秘籍》已经出版,点击这里购买正版。*@
+ Senparc 官方微信开发视频教程《微信公众号+小程序快速开发(一)》已全部上线,【点击这开始学习】。
+ Senparc 官方微信开发教程《微信开发深度解析:公众号、小程序高效开发秘籍》已经出版(已第 8 次印刷),【点击这里购买正版】。
Sample 项目自动生成工具 v1.6 正式版已发布。【点击这里查看】。
- Senparc 官方微信开发视频教程《微信公众号+小程序快速开发》已经上线,陆续更新中,【点击这开始学习】。
- Senparc 官方微信开发教程《微信开发深度解析:公众号、小程序高效开发秘籍》已经出版(已第 4 次印刷),【点击这里购买正版】。
diff --git a/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/WebSocket/Hubs/SenparcHub.cs b/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/WebSocket/Hubs/SenparcHub.cs
index b1a36a380e..c3eb27a34b 100644
--- a/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/WebSocket/Hubs/SenparcHub.cs
+++ b/Samples/netcore3.0-mvc/Senparc.Weixin.Sample.NetCore3/WebSocket/Hubs/SenparcHub.cs
@@ -1,4 +1,6 @@
-using Microsoft.AspNetCore.SignalR;
+//DPBMARK_FILE WebSocket
+
+using Microsoft.AspNetCore.SignalR;
using Senparc.WebSocket.SignalR;
using System.Threading.Tasks;
diff --git a/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.netcore3.csproj b/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.netcore3.csproj
index c5a7ee7df1..70e85add38 100644
--- a/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.netcore3.csproj
+++ b/src/Senparc.WebSocket/src/Senparc.WebSocket/Senparc.WebSocket/Senparc.WebSocket.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1;netcoreapp3.1
- 0.10.600
+ 0.11.101
Senparc.WebSocket
Senparc.WebSocket
true
diff --git a/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.netcore3.csproj b/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.netcore3.csproj
index 6e44af313f..eb1d5c3943 100644
--- a/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.netcore3.csproj
+++ b/src/Senparc.Weixin.AspNet/Senparc.Weixin.AspNet.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1;netcoreapp3.1
- 0.1.600
+ 0.2.101
Senparc.Weixin.AspNet
Senparc.Weixin.AspNet
true
@@ -82,7 +82,7 @@
-
+
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.netcore3.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.netcore3.csproj
index 3475e84b69..da194118ca 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.netcore3.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.CsRedis/Senparc.Weixin.Cache.CsRedis.netcore3.csproj
@@ -1,7 +1,7 @@
net45;net461;netstandard2.0;netstandard2.1
- 0.1.600
+ 0.2.101
Senparc.Weixin.Cache.CsRedis
Senparc.Weixin.Cache.CsRedis
true
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.netcore3.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.netcore3.csproj
index 815a850d5b..32a38c926d 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.netcore3.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Memcached/Senparc.Weixin.Cache.Memcached.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1
- 2.6.600
+ 2.7.101
Senparc.Weixin.Cache.Memcached
Senparc.Weixin.Cache.Memcached
微信公众账号 - Memcached 模块
diff --git a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.netcore3.csproj b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.netcore3.csproj
index 850740231d..88e6c96cdb 100644
--- a/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.netcore3.csproj
+++ b/src/Senparc.Weixin.Cache/Senparc.Weixin.Cache.Redis/Senparc.Weixin.Cache.Redis.netcore3.csproj
@@ -1,7 +1,7 @@
net45;net461;netstandard2.0;netstandard2.1
- 2.8.600
+ 2.9.101
Senparc.Weixin.Cache.Redis
Senparc.Weixin.Cache.Redis
true
diff --git a/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.netcore3.csproj b/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.netcore3.csproj
index 408f1f2a62..4226901831 100644
--- a/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.netcore3.csproj
+++ b/src/Senparc.Weixin.MP.Middleware/Senparc.Weixin.MP.Middleware.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1;netcoreapp3.1
- 0.1.600
+ 0.2.101
Senparc.Weixin.MP.Middleware
Senparc.Weixin.MP.Middleware
true
@@ -82,7 +82,7 @@
-
+
diff --git a/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.netcore3.csproj b/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.netcore3.csproj
index a5113d73a0..702750d267 100644
--- a/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.netcore3.csproj
+++ b/src/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension/Senparc.Weixin.MP.MvcExtension.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1;netcoreapp3.1
- 7.5.600
+ 7.6.101
Senparc.Weixin.MP.MvcExtension
Senparc.Weixin.MP.MvcExtension
true
@@ -163,7 +163,7 @@
-
+
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/CommonAPIs/CommonApiTest.Menu.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/CommonAPIs/CommonApiTest.Menu.cs
index 042b0962c8..780f288136 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/CommonAPIs/CommonApiTest.Menu.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/CommonAPIs/CommonApiTest.Menu.cs
@@ -32,11 +32,9 @@ namespace Senparc.Weixin.MP.Test.CommonAPIs
{
public partial class CommonApiTest
{
- [TestMethod]
+ //[TestMethod]//已经通过测试
public void CreateMenuTest()
{
- return;//已经通过测试
-
//var accessToken = AccessTokenContainer.GetAccessToken(_appId);
ButtonGroup bg = new ButtonGroup();
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/CommonAPIs/CommonApiTest.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/CommonAPIs/CommonApiTest.cs
index c0eb9a4829..4e985f4a65 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/CommonAPIs/CommonApiTest.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/CommonAPIs/CommonApiTest.cs
@@ -49,7 +49,7 @@ and limitations under the License.
namespace Senparc.Weixin.MP.Test.CommonAPIs
{
//已通过测试
- //[TestClass]
+ [TestClass]
public partial class CommonApiTest : BaseTest
{
private dynamic _appConfig;
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/MessageHandlers/MessageHandlers_OmitRepeatMessageTest.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/MessageHandlers/MessageHandlers_OmitRepeatMessageTest.cs
index f89497a855..a5b4d9d94d 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/MessageHandlers/MessageHandlers_OmitRepeatMessageTest.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP.Test/MessageHandlers/MessageHandlers_OmitRepeatMessageTest.cs
@@ -26,6 +26,7 @@ and limitations under the License.
using Senparc.Weixin.MP.Entities;
using Senparc.Weixin.MP.Entities.Request;
using Senparc.Weixin.MP.MessageHandlers;
+using Senparc.WeixinTests;
namespace Senparc.Weixin.MP.Test.MessageHandlers
{
@@ -34,12 +35,12 @@ public class OmitRepeatMessageMessageHandlers : MessageHandler
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/AccessTokenContainer.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/AccessTokenContainer.cs
index 4840d4ce2d..cb0ecbbb41 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/AccessTokenContainer.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/AccessTokenContainer.cs
@@ -118,45 +118,9 @@ namespace Senparc.Weixin.MP.Containers
public class AccessTokenBag : BaseContainerBag, IBaseContainerBag_AppId
{
public string AppId { get; set; }
- // {
- // get { return _appId; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _appId, value, "AppId"); }
- //#else
- // set { this.SetContainerProperty(ref _appId, value); }
- //#endif
- // }
-
public string AppSecret { get; set; }
- // {
- // get { return _appSecret; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _appSecret, value, "AppSecret"); }
- //#else
- // set { this.SetContainerProperty(ref _appSecret, value); }
- //#endif
- // }
-
public DateTimeOffset AccessTokenExpireTime { get; set; }
- // {
- // get { return _accessTokenExpireTime; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _accessTokenExpireTime, value, "AccessTokenExpireTime"); }
- //#else
- // set { this.SetContainerProperty(ref _accessTokenExpireTime, value); }
- //#endif
- // }
-
public AccessTokenResult AccessTokenResult { get; set; }
- // {
- // get { return _accessTokenResult; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _accessTokenResult, value, "AccessTokenResult"); }
- //#else
- // set { this.SetContainerProperty(ref _accessTokenResult, value); }
- //#endif
- // }
-
//private AccessTokenResult _accessTokenResult;
//private DateTimeOffset _accessTokenExpireTime;
//private string _appSecret;
@@ -286,6 +250,10 @@ public static async Task RegisterAsync(string appId, string appSecret, string na
if (!name.IsNullOrEmpty())
{
+ /*
+ * 注意:此处会修改全局的 WeixinAppId 和 WeixinAppSecret 的值,如果小程序从这里注册(并且没有提供 name),就会影响到公众号的参数
+ * https://github.com/JeffreySu/WeiXinMPSDK/pull/2261/files
+ */
Senparc.Weixin.Config.SenparcWeixinSetting.Items[name].WeixinAppId = appId;
Senparc.Weixin.Config.SenparcWeixinSetting.Items[name].WeixinAppSecret = appSecret;
}
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/JsApiTicketContainer.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/JsApiTicketContainer.cs
index 4cc8c75315..12c9da0c60 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/JsApiTicketContainer.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/JsApiTicketContainer.cs
@@ -100,43 +100,9 @@ namespace Senparc.Weixin.MP.Containers
public class JsApiTicketBag : BaseContainerBag, IBaseContainerBag_AppId
{
public string AppId { get; set; }
- // {
- // get { return _appId; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _appId, value, "AppId"); }
- //#else
- // set { this.SetContainerProperty(ref _appId, value); }
- //#endif
- // }
public string AppSecret { get; set; }
- // {
- // get { return _appSecret; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _appSecret, value, "AppSecret"); }
- //#else
- // set { this.SetContainerProperty(ref _appSecret, value); }
- //#endif
- // }
-
public JsApiTicketResult JsApiTicketResult { get; set; }
- // {
- // get { return _jsApiTicketResult; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _jsApiTicketResult, value, "JsApiTicketResult"); }
- //#else
- // set { this.SetContainerProperty(ref _jsApiTicketResult, value); }
- //#endif
- // }
-
public DateTimeOffset JsApiTicketExpireTime { get; set; }
- // {
- // get { return _jsApiTicketExpireTime; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _jsApiTicketExpireTime, value, "JsApiTicketExpireTime"); }
- //#else
- // set { this.SetContainerProperty(ref _jsApiTicketExpireTime, value); }
- //#endif
- // }
///
/// 只针对这个AppId的锁
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/WxCardApiTicketContainer.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/WxCardApiTicketContainer.cs
index 6b7b02d4e1..b80cfc8f14 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/WxCardApiTicketContainer.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Containers/WxCardApiTicketContainer.cs
@@ -70,69 +70,9 @@ namespace Senparc.Weixin.MP.Containers
public class WxCardApiTicketBag : BaseContainerBag, IBaseContainerBag_AppId
{
public string AppId { get; set; }
- // {
- // get
- // {
- // return _appId;
- // }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _appId, value, "AppId"); }
- //#else
- // set
- // {
- // this.SetContainerProperty(ref _appId, value);
- // }
- //#endif
- // }
-
public string AppSecret { get; set; }
- // {
- // get
- // {
- // return _appSecret;
- // }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _appSecret, value, "AppSecret"); }
- //#else
- // set
- // {
- // this.SetContainerProperty(ref _appSecret, value);
- // }
- //#endif
- // }
-
public JsApiTicketResult WxCardApiTicketResult { get; set; }
- // {
- // get
- // {
- // return _WxCardApiTicketResult;
- // }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _WxCardApiTicketResult, value, "WxCardApiTicketResult"); }
- //#else
- // set
- // {
- // this.SetContainerProperty(ref _WxCardApiTicketResult, value);
- // }
- //#endif
- // }
-
public DateTimeOffset WxCardApiTicketExpireTime { get; set; }
- // {
- // get
- // {
- // return _WxCardApiTicketExpireTime;
- // }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _WxCardApiTicketExpireTime, value, "WxCardApiExpireTime"); }
- //#else
- // set
- // {
- // this.SetContainerProperty(ref _WxCardApiTicketExpireTime, value);
- // }
- //#endif
- // }
-
///
/// 只针对这个AppId的锁
///
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Enums.cs b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Enums.cs
index 3c3760dde5..270abc6a25 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Enums.cs
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Enums.cs
@@ -96,6 +96,9 @@ and limitations under the License.
修改标识:Senparc - 20191206
修改描述:AutoReplyType 添加卡券(card)枚举
+ 修改标识:Senparc - 20201211
+ 修改描述:v1.6.101.1 修改 TenPayV3Type 过期提示
+
----------------------------------------------------------------*/
using System;
@@ -991,7 +994,7 @@ public enum QrCode_ActionName
/// 支付类型
///
- [Obsolete("请使用 Senparc.Weixin.TenPay.dll,Senparc.Weixin.TenPay.V3 中的对应方法")]
+ [Obsolete("请使用 Senparc.Weixin.TenPay.dll,Senparc.Weixin.TenPay 中的对应方法")]
public enum TenPayV3Type
{
///
diff --git a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.netcore3.csproj b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.netcore3.csproj
index a4f6a4822c..e44eb25faa 100644
--- a/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.netcore3.csproj
+++ b/src/Senparc.Weixin.MP/Senparc.Weixin.MP/Senparc.Weixin.MP.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1
- 16.10.601
+ 16.11.101
Senparc.Weixin.MP
Senparc.Weixin.MP
true
@@ -499,7 +499,7 @@
v16.10.502.3 "获取授权页链接数据开票来源"属性的枚举类型序列化字符串优化
v16.10.502.3 完善“新增永久视频素材”接口参数
v16.10.601 MASSSENDJOBFINISH事件增加 ArticleUrlResult 节点
-
+
https://github.com/JeffreySu/WeiXinMPSDK
@@ -558,8 +558,8 @@
-
-
+
+
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Containers/ComponentContainer.cs b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Containers/ComponentContainer.cs
index 410d1c5fa3..8890a797b7 100644
--- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Containers/ComponentContainer.cs
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Containers/ComponentContainer.cs
@@ -112,121 +112,38 @@ public class ComponentBag : BaseContainerBag
/// 第三方平台AppId
///
public string ComponentAppId { get; set; }
- // {
- // get { return _componentAppId; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _componentAppId, value, "ComponentAppId"); }
- //#else
- // set { this.SetContainerProperty(ref _componentAppId, value); }
- //#endif
- // }
-
///
/// 第三方平台AppSecret
///
public string ComponentAppSecret { get; set; }
- // {
- // get { return _componentAppSecret; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _componentAppSecret, value, "ComponentAppSecret"); }
- //#else
- // set { this.SetContainerProperty(ref _componentAppSecret, value); }
- //#endif
- // }
-
///
/// 第三方平台ComponentVerifyTicket(每隔10分钟微信会主动推送到服务器,IP必须在白名单内)
///
public string ComponentVerifyTicket { get; set; }
- // {
- // get { return _componentVerifyTicket; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _componentVerifyTicket, value, "ComponentVerifyTicket"); }
- //#else
- // set { this.SetContainerProperty(ref _componentVerifyTicket, value); }
- //#endif
- // }
-
///
/// 第三方平台ComponentVerifyTicket过期时间(实际上过期之后仍然可以使用一段时间)
///
public DateTimeOffset ComponentVerifyTicketExpireTime { get; set; }
- // {
- // get { return _componentVerifyTicketExpireTime; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _componentVerifyTicketExpireTime, value, "ComponentVerifyTicketExpireTime"); }
- //#else
- // set { this.SetContainerProperty(ref _componentVerifyTicketExpireTime, value); }
- //#endif
-
- // }
-
///
/// ComponentAccessTokenResult
///
public ComponentAccessTokenResult ComponentAccessTokenResult { get; set; }
- // {
- // get { return _componentAccessTokenResult; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _componentAccessTokenResult, value, "ComponentAccessTokenResult"); }
- //#else
- // set { this.SetContainerProperty(ref _componentAccessTokenResult, value); }
- //#endif
- // }
-
///
/// ComponentAccessToken过期时间
///
public DateTimeOffset ComponentAccessTokenExpireTime { get; set; }
- // {
- // get { return _componentAccessTokenExpireTime; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _componentAccessTokenExpireTime, value, "ComponentAccessTokenExpireTime"); }
- //#else
- // set { this.SetContainerProperty(ref _componentAccessTokenExpireTime, value); }
- //#endif
- // }
-
-
///
/// PreAuthCodeResult 预授权码结果
///
public PreAuthCodeResult PreAuthCodeResult { get; set; }
- // {
- // get { return _preAuthCodeResult; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _preAuthCodeResult, value, "PreAuthCodeResult"); }
- //#else
- // set { this.SetContainerProperty(ref _preAuthCodeResult, value); }
- //#endif
- // }
-
///
/// 预授权码过期时间
///
public DateTimeOffset PreAuthCodeExpireTime { get; set; }
- // {
- // get { return _preAuthCodeExpireTime; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _preAuthCodeExpireTime, value, "PreAuthCodeExpireTime"); }
- //#else
- // set { this.SetContainerProperty(ref _preAuthCodeExpireTime, value); }
- //#endif
- // }
-
///
/// AuthorizerAccessToken
///
public string AuthorizerAccessToken { get; set; }
- // {
- // get { return _authorizerAccessToken; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _authorizerAccessToken, value, "AuthorizerAccessToken"); }
- //#else
- // set { this.SetContainerProperty(ref _authorizerAccessToken, value); }
- //#endif
- // }
-
///
/// 只针对这个AppId的锁
///
diff --git a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.netcore3.csproj b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.netcore3.csproj
index d88cfd9d33..52804b8b3d 100644
--- a/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.netcore3.csproj
+++ b/src/Senparc.Weixin.Open/Senparc.Weixin.Open/Senparc.Weixin.Open.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netcoreapp3.0
- 4.7.600
+ 4.8.101
Senparc.Weixin.Open
Senparc.Weixin.Open
true
@@ -232,7 +232,7 @@
-
+
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Register.cs b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Register.cs
index 2b6f2631ac..07b35bb1ad 100644
--- a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Register.cs
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Register.cs
@@ -13,6 +13,9 @@
修改标识:15989221023 - 20200416
修改描述:v1.5.402 添加 Version 参数 https://github.com/JeffreySu/WeiXinMPSDK/pull/2151
+ 修改标识:Senparc - 20201210
+ 修改描述:v1.6.101 删除 TenpayV3ProtfitRequestDataVersion 的定义,并非全局都需要用到
+
----------------------------------------------------------------*/
using Senparc.CO2NET.RegisterServices;
@@ -28,10 +31,12 @@ namespace Senparc.Weixin.TenPay
{
public static class Register
{
+ /*
///
/// 接口版本号 version 是 String(32) 1.0 新增字段,接口版本号,区分原接口,默认填写1.0。入参新增version后,则支付通知接口也将返回单品优惠信息字段promotion_detail,请确保支付通知的签名验证能通过。
///
public static string TenpayV3ProtfitRequestDataVersion { get; set; } = "1.0";
+ */
///
/// 注册微信支付Tenpay(注意:新注册账号请使用RegisterTenpayV3!
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.netcore3.csproj b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.netcore3.csproj
index c6ddd043e0..849b927a34 100644
--- a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.netcore3.csproj
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1
- 1.5.601-beta1
+ 1.6.101.1
Senparc.Weixin.TenPay
Senparc.Weixin.TenPay
true
@@ -50,7 +50,11 @@
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 的定义
+
https://github.com/JeffreySu/WeiXinMPSDK
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/V3/Universal/Entities/Request/TenPayV3UnifiedorderRequestData.cs b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/V3/Universal/Entities/Request/TenPayV3UnifiedorderRequestData.cs
index 50f87d73a4..afd1b60ab0 100644
--- a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/V3/Universal/Entities/Request/TenPayV3UnifiedorderRequestData.cs
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/V3/Universal/Entities/Request/TenPayV3UnifiedorderRequestData.cs
@@ -57,6 +57,14 @@ and limitations under the License.
修改标识:hesi815 - 20200318
修改描述:v1.5.401 实现分账接口
+
+ 修改标识:Senparc - 20201209
+ 修改描述:v1.6.100 更新 TenPayV3UnifiedorderRequestData 构造函数,version 为空时忽略 https://github.com/JeffreySu/WeiXinMPSDK/issues/2277
+
+ 修改标识:Senparc - 20201210
+ 修改描述:v1.6.101 更新 TenPayV3UnifiedorderRequestData 构造函数,单独提供 version 参数,修正问题:https://github.com/JeffreySu/WeiXinMPSDK/pull/2151
+
+
----------------------------------------------------------------*/
using Senparc.Weixin.TenPay;
@@ -208,6 +216,10 @@ public class TenPayV3UnifiedorderRequestData
/// 普通商户需要 产品中心-我的产品 中开通分账功能;
///
public string ProfitSharing { get; set; }
+ ///
+ /// 统一下单接口参数,参考:https://pay.weixin.qq.com/wiki/doc/api/danpin.php?chapter=9_203&index=6
+ ///
+ public string Version { get; private set; }
///
///
@@ -310,6 +322,7 @@ public TenPayV3UnifiedorderRequestData() { }
/// 并且特约商户需要在 产品中心-我授权的商品中给服务商授权才可以使用分账功能;
/// 普通商户需要 产品中心-我的产品 中开通分账功能;
///
+ /// 统一下单接口参数,参考:https://pay.weixin.qq.com/wiki/doc/api/danpin.php?chapter=9_203&index=6
public TenPayV3UnifiedorderRequestData(
string appId, string mchId, string subappid, string submchid, string body, string outTradeNo, int totalFee, string spbillCreateIp,
string notifyUrl, TenPayV3Type tradeType, string openid, string subOpenid, string key, string nonceStr,
@@ -317,7 +330,7 @@ public TenPayV3UnifiedorderRequestData(
string detail = null, string attach = null, string feeType = "CNY", string goodsTag = null,
string productId = null, bool limitPay = false,
TenPayV3UnifiedorderRequestData_SceneInfo sceneInfo = null,
- string profitSharing = null
+ string profitSharing = null,string version=null
)
{
AppId = appId;
@@ -346,7 +359,7 @@ public TenPayV3UnifiedorderRequestData(
SubOpenid = subOpenid;
SceneInfo = sceneInfo;
ProfitSharing = profitSharing;
-
+ Version = version;
#region 设置RequestHandler
@@ -357,7 +370,7 @@ public TenPayV3UnifiedorderRequestData(
//设置package订单参数
//以下设置顺序按照官方文档排序,方便维护:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
- PackageRequestHandler.SetParameter("version", Register.TenpayV3ProtfitRequestDataVersion);
+ PackageRequestHandler.SetParameterWhenNotNull("version", Version);
PackageRequestHandler.SetParameter("appid", this.AppId); //公众账号ID
PackageRequestHandler.SetParameter("mch_id", this.MchId); //商户号
PackageRequestHandler.SetParameterWhenNotNull("sub_appid", this.SubAppId); //子商户公众账号ID
diff --git a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/V3/Universal/Entities/Request/TenpayV3ProfitShareingRequestData.cs b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/V3/Universal/Entities/Request/TenpayV3ProfitShareingRequestData.cs
index 269d24439c..347eb2bbcf 100644
--- a/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/V3/Universal/Entities/Request/TenpayV3ProfitShareingRequestData.cs
+++ b/src/Senparc.Weixin.TenPay/Senparc.Weixin.TenPay/V3/Universal/Entities/Request/TenpayV3ProfitShareingRequestData.cs
@@ -38,6 +38,8 @@ and limitations under the License.
修改标识:Senparc - 20200601
修改描述:v1.5.502.3 fix bug:必须指定待分账的接收方列表 判断有误 https://github.com/JeffreySu/WeiXinMPSDK/issues/2184
+ 修改标识:Senparc - 20201209
+ 修改描述:v1.6.100 更新 TenPayV3UnifiedorderRequestData 构造函数,version 为空时忽略 https://github.com/JeffreySu/WeiXinMPSDK/issues/2277
----------------------------------------------------------------*/
using Newtonsoft.Json;
@@ -636,6 +638,10 @@ public class TenpayV3ProfitShareingRemoveReceiverRequestData
/// 分账接收方对象,json格式
///
public TenpayV3ProfitShareing_ReceiverInfo Receiver { get; set; }
+ ///
+ /// 统一下单接口参数,参考:https://pay.weixin.qq.com/wiki/doc/api/danpin.php?chapter=9_203&index=6
+ ///
+ public string Version { get; set; }
///
@@ -654,11 +660,11 @@ public TenpayV3ProfitShareingRemoveReceiverRequestData()
/// 子商户号
///
///
- /// 需要删除的的分账接收方对象
- ///
+ /// 需要删除的的分账接收方对象
+ /// 统一下单接口参数,参考:https://pay.weixin.qq.com/wiki/doc/api/danpin.php?chapter=9_203&index=6
public TenpayV3ProfitShareingRemoveReceiverRequestData(
string appId, string mchId, string subappid, string submchid, string key, string nonceStr,
- TenpayV3ProfitShareing_ReceiverInfo receiver
+ TenpayV3ProfitShareing_ReceiverInfo receiver, string version = null
)
{
AppId = appId;
@@ -668,6 +674,7 @@ TenpayV3ProfitShareing_ReceiverInfo receiver
SubAppId = subappid;
SubMchId = submchid;
Receiver = receiver;
+ Version = version;
if (Receiver == null)
{
throw new ArgumentNullException("必须指定待删除的分账接收方");
@@ -684,21 +691,21 @@ TenpayV3ProfitShareing_ReceiverInfo receiver
//设置package订单参数
//以下设置顺序按照官方文档排序,方便维护:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
- PackageRequestHandler.SetParameter("version", Register.TenpayV3ProtfitRequestDataVersion);
- PackageRequestHandler.SetParameter("appid", this.AppId); //公众账号ID
- PackageRequestHandler.SetParameter("mch_id", this.MchId); //商户号
- PackageRequestHandler.SetParameterWhenNotNull("sub_appid", this.SubAppId); //子商户公众账号ID
- PackageRequestHandler.SetParameterWhenNotNull("sub_mch_id", this.SubMchId); //子商户号
- PackageRequestHandler.SetParameter("nonce_str", this.NonceStr); //随机字符串
- PackageRequestHandler.SetParameter("sign_type", this.SignType); //签名类型,默认为MD5
+ PackageRequestHandler.SetParameterWhenNotNull("version", Version);
+ PackageRequestHandler.SetParameter("appid", this.AppId); //公众账号ID
+ PackageRequestHandler.SetParameter("mch_id", this.MchId); //商户号
+ PackageRequestHandler.SetParameterWhenNotNull("sub_appid", this.SubAppId); //子商户公众账号ID
+ PackageRequestHandler.SetParameterWhenNotNull("sub_mch_id", this.SubMchId); //子商户号
+ PackageRequestHandler.SetParameter("nonce_str", this.NonceStr); //随机字符串
+ PackageRequestHandler.SetParameter("sign_type", this.SignType); //签名类型,默认为MD5
JsonSerializerSettings setting = new JsonSerializerSettings();
setting.NullValueHandling = NullValueHandling.Ignore;
- PackageRequestHandler.SetParameter("receiver", Receiver.ToJson(false, setting)); //场景信息
+ PackageRequestHandler.SetParameter("receiver", Receiver.ToJson(false, setting));//场景信息
Sign = PackageRequestHandler.CreateSha256Sign("key", this.Key);
- PackageRequestHandler.SetParameter("sign", Sign); //签名
+ PackageRequestHandler.SetParameter("sign", Sign); //签名
#endregion
}
diff --git a/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.netcore3.csproj b/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.netcore3.csproj
index 1200d26954..d038e9015b 100644
--- a/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.netcore3.csproj
+++ b/src/Senparc.Weixin.Work.Middleware/Senparc.Weixin.Work.Middleware.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1;netcoreapp3.1
- 0.1.600
+ 0.2.101
Senparc.Weixin.Work.Middleware
Senparc.Weixin.Work.Middleware
true
@@ -82,7 +82,7 @@
-
+
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/AccessTokenContainer.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/AccessTokenContainer.cs
index eb08d41125..7205e502b4 100644
--- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/AccessTokenContainer.cs
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/AccessTokenContainer.cs
@@ -112,54 +112,18 @@ public class AccessTokenBag : BaseContainerBag
[Obsolete("请使用 CorpId 属性")]
public string CoprId { get { return CorpId; } set { CorpId = value; } }
- // {
- // get { return _corpId; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _corpId, value, "CorpId"); }
- //#else
- // set { this.SetContainerProperty(ref _corpId, value); }
- //#endif
- // }
-
///
/// CorpSecret
///
public string CorpSecret { get; set; }
- // {
- // get { return _corpSecret; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _corpSecret, value, "CorpSecret"); }
- //#else
- // set { this.SetContainerProperty(ref _corpSecret, value); }
- //#endif
- // }
-
///
/// 过期时间
///
public DateTimeOffset ExpireTime { get; set; }
- // {
- // get { return _expireTime; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _expireTime, value, "ExpireTime"); }
- //#else
- // set { this.SetContainerProperty(ref _expireTime, value); }
- //#endif
- // }
-
///
/// AccessTokenResult
///
public AccessTokenResult AccessTokenResult { get; set; }
- // {
- // get { return _accessTokenResult; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _accessTokenResult, value, "AccessTokenResult"); }
- //#else
- // set { this.SetContainerProperty(ref _accessTokenResult, value); }
- //#endif
- // }
-
///
/// 只针对这个CorpId的锁
///
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/JsApiTicketContainer.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/JsApiTicketContainer.cs
index be2d285cf8..7f93955762 100644
--- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/JsApiTicketContainer.cs
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/JsApiTicketContainer.cs
@@ -113,45 +113,9 @@ public class JsApiTicketBag : BaseContainerBag
[Obsolete("请使用 CorpId 属性")]
public string CoprId { get { return CorpId; } set { CorpId = value; } }
- // {
- // get { return _appId; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _appId, value, "AppId"); }
- //#else
- // set { this.SetContainerProperty(ref _appId, value); }
- //#endif
- // }
-
public string CorpSecret { get; set; }
- // {
- // get { return _appSecret; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _appSecret, value, "AppSecret"); }
- //#else
- // set { this.SetContainerProperty(ref _appSecret, value); }
- //#endif
- // }
-
public JsApiTicketResult JsApiTicketResult { get; set; }
- // {
- // get { return _jsApiTicketResult; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _jsApiTicketResult, value, "JsApiTicketResult"); }
- //#else
- // set { this.SetContainerProperty(ref _jsApiTicketResult, value); }
- //#endif
- // }
-
public DateTimeOffset ExpireTime { get; set; }
- // {
- // get { return _expireTime; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _expireTime, value, "ExpireTime"); }
- //#else
- // set { this.SetContainerProperty(ref _expireTime, value); }
- //#endif
- // }
-
///
/// 只针对这个AppId的锁
///
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/ProviderTokenContainer.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/ProviderTokenContainer.cs
index a0e92e5c70..ba101f25e1 100644
--- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/ProviderTokenContainer.cs
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Containers/ProviderTokenContainer.cs
@@ -100,54 +100,18 @@ public class ProviderTokenBag : BaseContainerBag
/// CorpId
///
public string CorpId { get; set; }
- // {
- // get { return _corpId; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _corpId, value, "CorpId"); }
- //#else
- // set { this.SetContainerProperty(ref _corpId, value); }
- //#endif
- // }
-
///
/// CorpSecret
///
public string CorpSecret { get; set; }
- // {
- // get { return _corpSecret; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _corpSecret, value, "CorpSecret"); }
- //#else
- // set { this.SetContainerProperty(ref _corpSecret, value); }
- //#endif
- // }
-
///
/// 过期时间
///
public DateTimeOffset ExpireTime { get; set; }
- // {
- // get { return _expireTime; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _expireTime, value, "ExpireTime"); }
- //#else
- // set { this.SetContainerProperty(ref _expireTime, value); }
- //#endif
- // }
-
///
/// ProviderTokenResult
///
public ProviderTokenResult ProviderTokenResult { get; set; }
- // {
- // get { return _providerTokenResult; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _providerTokenResult, value, "ProviderTokenResult"); }
- //#else
- // set { this.SetContainerProperty(ref _providerTokenResult, value); }
- //#endif
- // }
-
///
/// 只针对这个CorpId的锁
///
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Entities/Request/ThirdPartyInfo/RequestMessager_Register_Corp.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Entities/Request/ThirdPartyInfo/RequestMessager_Register_Corp.cs
new file mode 100644
index 0000000000..12955b020a
--- /dev/null
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Entities/Request/ThirdPartyInfo/RequestMessager_Register_Corp.cs
@@ -0,0 +1,60 @@
+/*----------------------------------------------------------------
+ Copyright (C) 2020 Senparc
+
+ 文件名:RequestMessager_Register_Corp.cs
+ 文件功能描述:推广二维码注册企业微信完成通知
+
+
+ 创建标识:Billzjh - 20201210
+
+----------------------------------------------------------------*/
+
+using Senparc.NeuChar.Entities;
+
+namespace Senparc.Weixin.Work.Entities
+{
+ ///
+ /// 推广二维码注册企业微信完成通知
+ ///
+ public class RequestMessager_Register_Corp : ThirdPartyInfoBase, IThirdPartyInfoBase
+ {
+ //public override RequestMsgType MsgType
+ //{
+ // get { return RequestMsgType.Unknown; }
+ //}
+
+ public ThirdPartyInfo InfoType
+ {
+ get { return ThirdPartyInfo.REGISTER_CORP; }
+ }
+ ///
+ /// 服务商corpid
+ ///
+ public string ServiceCorpId { get; set; }
+ public string TimeStamp { get; set; }
+ ///
+ /// 创建企业对应的注册码
+ ///
+ public string RegisterCode { get; set; }
+ ///
+ /// 注册成功的企业corpid
+ ///
+ public string AuthCorpId { get; set; }
+ ///
+ /// 授权管理员的信息
+ ///
+ public ContactSyncToken ContactSync { get; set; }
+ ///
+ /// 授权管理员的userid
+ ///
+ public AuthUserInfoModel AuthUserInfo { get; set; }
+ ///
+ /// 用户自定义的状态值,参数值由接口 获取注册码 指定。若未指定,则无该字段
+ ///
+ public string State { get; set; }
+ ///
+ /// 推广包ID
+ ///
+ public string TemplateId { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Enums.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Enums.cs
index a81c10581f..f01316b5fa 100644
--- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Enums.cs
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Enums.cs
@@ -191,7 +191,12 @@ public enum ThirdPartyInfo
///
/// 外部联系人变更通知
///
- CHANGE_EXTERNAL_CONTACT
+ CHANGE_EXTERNAL_CONTACT,
+
+ ///
+ /// 推广码注册完成通知
+ ///
+ REGISTER_CORP
}
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/MessageHandlers/WorkMessageHandler.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/MessageHandlers/WorkMessageHandler.cs
index 68601f233c..6874a3d53f 100644
--- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/MessageHandlers/WorkMessageHandler.cs
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/MessageHandlers/WorkMessageHandler.cs
@@ -51,6 +51,9 @@ OnThirdPartyEvent_Contact_Sync 改名为 OnThirdPartyEvent_Change_Contact()
修改标识:gokeiyou - 20201013
修改描述:v3.7.604 添加外部联系人管理 > 客户管理相关接口
+ 修改标识:Billzjh - 20201210
+ 修改描述:v3.8.101 添加 OnThirdPartyEvent_REGISTER_CORP() 事件
+
----------------------------------------------------------------*/
using System;
@@ -742,6 +745,8 @@ private string OnThirdPartyEvent(IThirdPartyInfoBase thirdPartyInfo)
return OnThirdPartyEvent_Create_Auth((RequestMessageInfo_Create_Auth)thirdPartyInfo);
case ThirdPartyInfo.CHANGE_CONTACT:
return OnThirdPartyEvent_Change_Contact((RequestMessageInfo_Change_Contact)thirdPartyInfo);
+ case ThirdPartyInfo.REGISTER_CORP:
+ return OnThirdPartyEvent_REGISTER_CORP((RequestMessager_Register_Corp)thirdPartyInfo);
case ThirdPartyInfo.CHANGE_EXTERNAL_CONTACT:
{
var cecRequestMessage = RequestMessage as IRequestMessageEvent_Change_ExternalContact_Base;
@@ -779,6 +784,11 @@ protected virtual string OnThirdPartyEvent_Change_Contact(RequestMessageInfo_Cha
return ThirdPartyEventSuccessResult;
}
+ protected virtual string OnThirdPartyEvent_REGISTER_CORP(RequestMessager_Register_Corp thirdPartyInfo)
+ {
+ return ThirdPartyEventSuccessResult;
+ }
+
protected virtual string OnThirdPartyEvent_Create_Auth(RequestMessageInfo_Create_Auth thirdPartyInfo)
{
return ThirdPartyEventSuccessResult;
diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.netcore3.csproj b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.netcore3.csproj
index e4edad8289..c69a49e717 100644
--- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.netcore3.csproj
+++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.netcore3.csproj
@@ -2,7 +2,7 @@
net45;netstandard2.0;netstandard2.1
$(Net35FrameworkPathOverride)
- 3.7.604
+ 3.8.101
Senparc.Weixin.Work
Senparc.Weixin.Work
true
@@ -155,7 +155,7 @@
1、企业微信通讯录模块下 成员 实体 更新实体新增别名、MemberBase移除isleader
2、新增is_leader_in_dept
v3.7.604 添加外部联系人管理 > 客户管理相关接口
-
+
https://github.com/JeffreySu/WeiXinMPSDK
False
@@ -233,7 +233,7 @@
-
+
diff --git a/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.netcore3.csproj b/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.netcore3.csproj
index da1b0164f8..63ce03e324 100644
--- a/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.netcore3.csproj
+++ b/src/Senparc.Weixin.WxOpen.Middleware/Senparc.Weixin.WxOpen.Middleware.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1;netcoreapp3.1
- 0.1.600
+ 0.2.101
Senparc.Weixin.WxOpen.Middleware
Senparc.Weixin.WxOpen.Middleware
true
@@ -82,7 +82,7 @@
-
+
diff --git a/src/Senparc.Weixin.MP/Senparc.WeixinTests/WeixinRegisterTests.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen.Tests/WeixinRegisterTests.cs
similarity index 98%
rename from src/Senparc.Weixin.MP/Senparc.WeixinTests/WeixinRegisterTests.cs
rename to src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen.Tests/WeixinRegisterTests.cs
index b74718614b..f63c14a1c6 100644
--- a/src/Senparc.Weixin.MP/Senparc.WeixinTests/WeixinRegisterTests.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen.Tests/WeixinRegisterTests.cs
@@ -14,7 +14,7 @@
using System.IO;
using System.Text;
-namespace Senparc.WeixinTests
+namespace Senparc.Weixin.WxOpen.Tests
{
[TestClass]
public class WeixinRegisterTests
@@ -132,6 +132,7 @@ public void TestRegisterMpAccount()
logs.Add("********************** End configuration the senparcSDK **********************");
File.AppendAllLines(logFile, logs, Encoding.UTF8);
+ Console.WriteLine(string.Join("\r\n",logs));
}
}
}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppApi.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppApi.cs
index 9ce1f494c6..1be97361fa 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppApi.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppApi.cs
@@ -302,14 +302,15 @@ public static WxJsonResult CheckSession(string accessTokenOrAppId, string openId
///
///
[ApiBind(NeuChar.PlatformType.WeChat_MiniProgram, "WxAppApi.AddNearbyPoi", true)]
- public static AddNearbyPoiJsonResult AddNearbyPoi(string accessTokenOrAppId, string pic_list, string service_infos, string store_name,string hour, string credential, string address, string company_name, string qualification_list="", string kf_info="", string poi_id="", int timeOut = Config.TIME_OUT)
+ public static AddNearbyPoiJsonResult AddNearbyPoi(string accessTokenOrAppId, string pic_list, string service_infos, string store_name, string hour, string credential, string address, string company_name, string qualification_list = "", string kf_info = "", string poi_id = "", int timeOut = Config.TIME_OUT)
{
return WxOpenApiHandlerWapper.TryCommonApi(accessToken =>
{
string urlFormat = Config.ApiMpHost + "/wxa/addnearbypoi?access_token={0}";
string url = string.Format(urlFormat, accessToken);
- var data = new {
+ var data = new
+ {
is_comm_nearby = "1", //必填,写死为"1"
pic_list = pic_list,
service_infos = service_infos,
@@ -620,7 +621,27 @@ public static WxJsonResult GetPaidUnionid(string accessTokenOrAppId, string open
}, accessTokenOrAppId);
}
+ ///
+ /// 风险用户扫描
+ /// 快速发现使用小程序的风险用户,提升小程序运营安全
+ /// 根据提交的用户信息数据获取用户的安全等级 risk_rank,无需用户授权。
+ /// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/safety-control-capability/getuserriskrank.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ [ApiBind(NeuChar.PlatformType.WeChat_MiniProgram, "WxAppApi.GetUserRiskRank", true)]
+ public static GetUserRiskRankResult GetUserRiskRank(string accessTokenOrAppId, GetUserRiskRankParam data, int timeOut = Config.TIME_OUT)
+ {
+ return WxOpenApiHandlerWapper.TryCommonApi(accessToken =>
+ {
+ string urlFormat = Config.ApiMpHost + "/wxa/getuserriskrank?access_token={0}";
+ var url = urlFormat.FormatWith(accessToken);
+ return CommonJsonSend.Send(accessToken, url, data, timeOut: timeOut);
+ }, accessTokenOrAppId);
+ }
#endregion
@@ -997,7 +1018,7 @@ public static async Task ImgSecCheckAsync(string accessTokenOrAppI
var url = urlFormat.FormatWith(accessToken);
var fileDic = new Dictionary();
fileDic["media"] = filePath;
- return await CO2NET.HttpUtility.Post.PostFileGetJsonAsync(CommonDI.CommonSP,url, fileDictionary: fileDic, timeOut: timeOut).ConfigureAwait(false);
+ return await CO2NET.HttpUtility.Post.PostFileGetJsonAsync(CommonDI.CommonSP, url, fileDictionary: fileDic, timeOut: timeOut).ConfigureAwait(false);
}, accessTokenOrAppId).ConfigureAwait(false);
}
@@ -1182,8 +1203,27 @@ public static async Task GetPaidUnionidAsync(string accessTokenOrA
}, accessTokenOrAppId).ConfigureAwait(false);
}
+ ///
+ /// 风险用户扫描
+ /// 快速发现使用小程序的风险用户,提升小程序运营安全
+ /// 根据提交的用户信息数据获取用户的安全等级 risk_rank,无需用户授权。
+ /// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/safety-control-capability/getuserriskrank.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ [ApiBind(NeuChar.PlatformType.WeChat_MiniProgram, "WxAppApi.GetUserRiskAsync", true)]
+ public static async Task GetUserRiskAsync(string accessTokenOrAppId, GetUserRiskRankParam data, int timeOut = Config.TIME_OUT)
+ {
+ return await WxOpenApiHandlerWapper.TryCommonApiAsync(async accessToken =>
+ {
+ string urlFormat = Config.ApiMpHost + "/wxa/getuserriskrank?access_token={0}";
+ var url = urlFormat.FormatWith(accessToken);
-
+ return await CommonJsonSend.SendAsync(accessToken, url, data, timeOut: timeOut);
+ }, accessTokenOrAppId).ConfigureAwait(false);
+ }
#endregion
}
}
\ No newline at end of file
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppJson/GetUserRiskRankParam.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppJson/GetUserRiskRankParam.cs
new file mode 100644
index 0000000000..896e072e17
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppJson/GetUserRiskRankParam.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Senparc.Weixin.WxOpen.AdvancedAPIs.WxApp.WxAppJson
+{
+ public class GetUserRiskRankParam
+ {
+ ///
+ /// 小程序appid(必填)
+ ///
+ public string appid { get; set; }
+ ///
+ /// 用户的openid(必填)
+ ///
+ public string openid { get; set; }
+ ///
+ /// 场景值,0:注册,1:营销作弊(必填)
+ ///
+ public int scene { get; set; }
+ ///
+ /// 用户手机号
+ ///
+ public string mobile_no { get; set; }
+ ///
+ /// 用户访问源ip(必填)
+ ///
+ public string client_ip { get; set; }
+ ///
+ /// 用户邮箱地址
+ ///
+ public string email_address { get; set; }
+ ///
+ /// 额外补充信息
+ ///
+ public string extended_info { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppJson/GetUserRiskRankResult.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppJson/GetUserRiskRankResult.cs
new file mode 100644
index 0000000000..d01bef6756
--- /dev/null
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/AdvancedAPIs/WxApp/WxAppJson/GetUserRiskRankResult.cs
@@ -0,0 +1,17 @@
+using Senparc.Weixin.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Senparc.Weixin.WxOpen.AdvancedAPIs.WxApp.WxAppJson
+{
+ public class GetUserRiskRankResult : WxJsonResult
+ {
+ ///
+ /// 用户风险等级
+ ///
+ public int risk_rank { get; set; }
+ }
+}
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Containers/AccessTokenContainer.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Containers/AccessTokenContainer.cs
index e1f5b7a28c..18b6813ebc 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Containers/AccessTokenContainer.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Containers/AccessTokenContainer.cs
@@ -1,8 +1,35 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+#region Apache License Version 2.0
+/*----------------------------------------------------------------
+
+Copyright 2020 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) 2020 Senparc
+
+ 文件名:AccessTokenContainer.cs
+ 文件功能描述:小程序的通用接口 AccessToken 容器,用于自动管理 AccessToken,如果过期会重新获取
+
+
+ 修改标识:gokeiyou - 20201230
+ 修改描述:新建 WxOpen 专属的 AccessTokenContainer
+
+----------------------------------------------------------------*/
+
using Senparc.CO2NET.Extensions;
using Senparc.Weixin.Containers;
using Senparc.Weixin.Entities;
@@ -10,10 +37,15 @@
using Senparc.Weixin.MP.CommonAPIs;
using Senparc.Weixin.MP.Entities;
using Senparc.Weixin.Utilities.WeixinUtility;
+using System;
+using System.Threading.Tasks;
namespace Senparc.Weixin.WxOpen.Containers
{
+ ///
+ /// 小程序 AccessToken 包
+ ///
public class AccessTokenBag : BaseContainerBag
{
public string WxOpenAppId { get; set; }
@@ -22,6 +54,9 @@ public class AccessTokenBag : BaseContainerBag
public AccessTokenResult AccessTokenResult { get; set; }
}
+ ///
+ /// 小程序的通用接口 AccessToken 容器,用于自动管理 AccessToken,如果过期会重新获取
+ ///
public class AccessTokenContainer : BaseContainer
{
const string LockResourceName = "WxOpen.AccessTokenContainer";
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Containers/SessionContainer.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Containers/SessionContainer.cs
index 2d7e4f6e3a..924db28316 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Containers/SessionContainer.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Containers/SessionContainer.cs
@@ -66,55 +66,20 @@ public class SessionBag : BaseContainerBag
/// Session的Key(3rd_session / sessionId)
///
public new string Key { get; set; }
- // {
- // get { return _key; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _key, value, "Key"); }
- //#else
- // set { this.SetContainerProperty(ref _key, value); }
- //#endif
- // }
-
///
/// OpenId
///
public string OpenId { get; set; }
- // {
- // get { return _openId; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _openId, value, "OpenId"); }
- //#else
- // set { this.SetContainerProperty(ref _openId, value); }
- //#endif
- // }
-
public string UnionId { get; set; }
///
/// SessionKey
///
public string SessionKey { get; set; }
- // {
- // get { return _sessionKey; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _sessionKey, value, "SessionKey"); }
- //#else
- // set { this.SetContainerProperty(ref _sessionKey, value); }
- //#endif
- // }
-
///
/// 过期时间
///
public DateTimeOffset ExpireTime { get; set; }
- // {
- // get { return _expireTime; }
- //#if NET35 || NET40
- // set { this.SetContainerProperty(ref _expireTime, value, "ExpireTime"); }
- //#else
- // set { this.SetContainerProperty(ref _expireTime, value); }
- //#endif
- // }
//private string _key;
//private string _openId;
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Register.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Register.cs
index aa1bc902cc..2edbf96117 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Register.cs
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Register.cs
@@ -32,6 +32,9 @@ and limitations under the License.
修改标识:Senparc - 20191003
修改描述:注册过程自动添加更多 SenparcSettingItem 信息
+
+ 修改标识:gokeiyou - 20201230
+ 修改描述:新建 WxOpen 专属的 AccessTokenContainer
----------------------------------------------------------------*/
diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.netcore3.csproj b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.netcore3.csproj
index 23f129f85f..666754ea68 100644
--- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.netcore3.csproj
+++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.netcore3.csproj
@@ -1,7 +1,7 @@
net45;netstandard2.0;netstandard2.1
- 3.8.601
+ 3.10.101
Senparc.Weixin.WxOpen
Senparc.Weixin.WxOpen
true
@@ -148,6 +148,7 @@
1、小程序 WxOpenMessageHandler 增加 OnImageRequestAsync 和 OnTextRequestAsync
2、调整 MessageHandler 异步方法执行代码
v3.8.512 添加解密到实例信息方法
+ v3.10.101 新增 WxOpen 专属 AccessTokenContainer,解决没有提供 name 参数的情况下,Register 过程和公众号注册信息发生冲突的问题
https://github.com/JeffreySu/WeiXinMPSDK
@@ -200,7 +201,7 @@
-
+
diff --git a/src/Senparc.Weixin/Senparc.Weixin/Containers/BaseContainerBag.cs b/src/Senparc.Weixin/Senparc.Weixin/Containers/BaseContainerBag.cs
index a7a8789f50..4145025506 100644
--- a/src/Senparc.Weixin/Senparc.Weixin/Containers/BaseContainerBag.cs
+++ b/src/Senparc.Weixin/Senparc.Weixin/Containers/BaseContainerBag.cs
@@ -98,28 +98,10 @@ public class BaseContainerBag : /*BindableBase, */IBaseContainerBag
/// 用于标记,方便后台管理
///
public string Name { get; set; }
-// {
-// get { return _name; }
-//#if NET35 || NET40
-// set { this.SetContainerProperty(ref _name, value, "Name"); }
-//#else
-// set { this.SetContainerProperty(ref _name, value); }
-//#endif
- //}
-
///
/// 通常为AppId
///
public string Key { get; set; }
-// {
-// get { return _key; }
-//#if NET35 || NET40
-// set { this.SetContainerProperty(ref _key, value, "Key"); }
-//#else
-// set { this.SetContainerProperty(ref _key, value); }
-//#endif
- //}
-
///
/// 缓存时间,不使用属性变化监听
///
diff --git a/src/Senparc.Weixin/Senparc.Weixin/Enums.cs b/src/Senparc.Weixin/Senparc.Weixin/Enums.cs
index 76fe6a3f04..2c658df69e 100644
--- a/src/Senparc.Weixin/Senparc.Weixin/Enums.cs
+++ b/src/Senparc.Weixin/Senparc.Weixin/Enums.cs
@@ -84,6 +84,9 @@ and limitations under the License.
修改标识:Senparc - 20200430
修改描述:v6.7.502 添加 40164 错误编码
+ 修改标识:Billzjh - 20201210
+ 修改描述:v6.8.101 完善 ReturnCode_Work 枚举类型
+
----------------------------------------------------------------*/
@@ -650,6 +653,8 @@ public enum ReturnCode_Work
不合法的文件大小 = 40006,
不合法的媒体文件id = 40007,
不合法的消息类型 = 40008,
+ 上传图片大小不是有效值 = 40009,
+ 上传视频大小不是有效值 = 40011,
不合法的corpid = 40013,
不合法的access_token = 40014,
不合法的菜单类型 = 40015,
@@ -707,10 +712,27 @@ public enum ReturnCode_Work
不合法的永久授权码 = 40084,
不合法的suiteticket = 40085,
不合法的第三方应用appid = 40086,
+ jobid不存在 = 40088,
+ 批量任务的结果已清理 = 40089,
导入文件存在不合法的内容 = 40092,
不合法的跳转target = 40093,
不合法的URL = 40094,
修改失败_并发冲突 = 40095,
+ 不合法的外部联系人userid = 40096,
+ 该成员尚未离职 = 40097,
+ 成员尚未实名认证 = 40098,
+ 外部联系人的数量已达上限 = 40099,
+ 此用户的外部联系人已经在转移流程中 = 40100,
+ 域名或IP不可与应用市场上架应用重复 = 40102,
+ 上传临时图片素材图片格式非法 = 40123,
+ 推广活动里的sn禁止绑定 = 40124,
+ 无效的openuserid参数 = 40125,
+ 企业标签个数达到上限最多为3000个 = 40126,
+ 不支持的urischema = 40127,
+ 客户转接过于频繁90天内只允许转接一次同一个客户最多只能转接两次 = 40128,
+ 当前客户正在转接中 = 40129,
+ 原跟进人与接手人一样不可继承 = 40130,
+ andover_userid并不是外部联系人的跟进人 = 40131,
请勿添加其他公众号的主页链接 = 40155,
缺少access_token参数 = 41001,
缺少corpid参数 = 41002,
@@ -735,8 +757,36 @@ public enum ReturnCode_Work
缺少suiteticket = 41023,
缺少suitesecret = 41024,
缺少永久授权码 = 41025,
+ 缺少description参数 = 41033,
缺少login_ticket = 41034,
缺少跳转target = 41035,
+ 不合法的企业对外简称 = 41036,
+ 缺少联系我type参数 = 41037,
+ 缺少联系我scene参数 = 41038,
+ 无效的联系我type参数 = 41039,
+ 无效的联系我scene参数 = 41040,
+ 联系我使用人数超过限制 = 41041,
+ 无效的联系我style参数 = 41042,
+ 缺少联系我config_id参数 = 41043,
+ 无效的联系我config_id参数 = 41044,
+ API添加联系我达到数量上限 = 41045,
+ 缺少企业群发消息id = 41046,
+ 无效的企业群发消息id = 41047,
+ 无可发送的客户 = 41048,
+ 缺少欢迎语code参数 = 41049,
+ 无效的欢迎语code = 41050,
+ 客户和服务人员已经开始聊天了 = 41051,
+ 无效的发送时间 = 41052,
+ 客户未同意聊天存档 = 41053,
+ 该用户尚未激活 = 41054,
+ 群欢迎语模板数量达到上限 = 41055,
+ 外部联系人id类型不正确 = 41056,
+ 企业或服务商未绑定微信开发者账号 = 41057,
+ 缺少moment_id参数 = 41059,
+ 不合法的moment_id参数 = 41060,
+ 不合法朋友圈发送成员userid = 41061,
+ 企业创建的朋友圈尚未被成员userid发表 = 41062,
+ 缺少菜单名 = 41102,
access_token过期 = 42001,
refresh_token过期 = 42002,
oauth_code过期 = 42003,
@@ -744,6 +794,17 @@ public enum ReturnCode_Work
预授权码失效 = 42007,
临时授权码失效 = 42008,
suitetoken失效 = 42009,
+ jsapi_ticket不可用 = 42012,
+ 小程序未登陆或登录态已经过期 = 42013,
+ 任务卡片消息的task_id不合法 = 42014,
+ 更新的消息的应用与发送消息的应用不匹配 = 42015,
+ 更新的task_id不存在 = 42016,
+ 按钮key值不存在 = 42017,
+ 按钮key值不合法 = 42018,
+ 缺少按钮key值不合法 = 42019,
+ 缺少按钮名称 = 42020,
+ device_access_token过期 = 42021,
+ code已经被使用过 = 42022,
需要GET请求 = 43001,
需要POST请求 = 43002,
需要HTTPS = 43003,
@@ -752,6 +813,7 @@ public enum ReturnCode_Work
需要订阅 = 43006,
需要授权 = 43007,
需要支付授权 = 43008,
+ 企业未验证主体 = 43009,
需要处于接收消息模式 = 43010,
需要企业授权 = 43011,
应用对成员不可见 = 43013,
@@ -781,9 +843,12 @@ public enum ReturnCode_Work
素材数量超过上限 = 45028,
media_id对该应用不可见 = 45029,
作者名字长度超过限制 = 45032,
+ 接口并发调用超过限制 = 45033,
+ url必须有协议头 = 45034,
不存在媒体数据 = 46001,
不存在的菜单版本 = 46002,
不存在的菜单数据 = 46003,
+ 菜单未设置 = 46003,
不存在的成员 = 46004,
解析JSON_XML内容错误 = 47001,
Api未授权 = 48001,
@@ -791,6 +856,8 @@ public enum ReturnCode_Work
suitetoken无效 = 48003,
授权关系无效 = 48004,
Api已废弃 = 48005,
+ 接口权限被收回 = 48006,
+ 群已经解散 = 49008,
redirect_uri未授权 = 50001,
成员不在权限范围 = 50002,
应用已停用 = 50003,
@@ -815,6 +882,7 @@ public enum ReturnCode_Work
不允许设置企业 = 60017,
不允许设置应用地理位置上报开关 = 60019,
访问ip不在白名单之中 = 60020,
+ userid不在应用可见范围内 = 60021,
已授权的应用不允许企业管理组调用接口修改菜单 = 60023,
主页型应用不支持的消息类型 = 60025,
不支持第三方修改主页型应用字段 = 60027,
@@ -849,20 +917,152 @@ public enum ReturnCode_Work
字段不合法_可能存在主键冲突或者格式错误 = 60128,
用户设置了拒绝邀请 = 60129,
不合法的职位长度 = 60131,
+ is_leader_in_dept和department的元素个数不一致 = 60132,
+ 记录不存在 = 60136,
+ 家长手机号重复 = 60137,
+ 不合法的模版ID = 60203,
+ 模版状态不可用 = 60204,
+ 模版关键词不匹配 = 60205,
+ 该种类型的消息只支持第三方独立应用使用 = 60206,
+ 第三方独立应用只允许发送模板消息 = 60207,
+ 第三方独立应用不支持指定all = 60208,
+ 学校已经迁移 = 65000,
+ 无效的关注模式 = 65001,
+ 导入家长信息数量过多 = 65002,
+ 学校尚未迁移 = 65003,
+ 组织架构不存在 = 65004,
+ 无效的同步模式 = 65005,
+ 无效的管理员类型 = 65006,
+ 无效的家校部门类型 = 65007,
+ 无效的入学年份 = 65008,
+ 无效的标准年级类型 = 65009,
+ 此userid并不是学生 = 65010,
+ 家长userid数量超过限制 = 65011,
+ 学生userid数量超过限制 = 65012,
+ 学生已有家长 = 65013,
+ 非学校企业 = 65014,
+ 父部门类型不匹配 = 65015,
+ 家长人数达到上限 = 65018,
+ 发票已被其他公众号锁定 = 72023,
+ 发票状态错误 = 72024,
+ 存在发票不属于该用户 = 72037,
可信域名不匹配_或者可信域名没有IPC备案_后续将不能在该域名下正常使用jssdk_ = 80001,
+ 部门下的结点数超过限制 = 81001,
+ 部门最多15层 = 81002,
邀请额度已用完 = 81003,
部门数量超过上限 = 81004,
+ 无权限操作标签 = 81011,
+ 缺失可见范围 = 81012,
+ UserID部门ID标签ID全部非法或无权限 = 81013,
+ 标签添加成员单次添加user或party过多 = 81014,
+ 邮箱域名需要跟企业邮箱域名一致 = 81015,
+ logined_userid字段缺失 = 81016,
+ items字段大小超过限制 = 81017,
+ 该服务商可获取名字数量配额不足 = 81018,
+ items数组成员缺少id字段 = 81019,
+ items数组成员缺少type字段 = 81020,
+ items数组成员的type字段不合法 = 81021,
发送消息或者邀请的参数全部为空或者全部不合法 = 82001,
不合法的PartyID列表长度 = 82002,
不合法的TagID列表长度 = 82003,
微信版本号过低 = 82004,
+ 成员票据过期 = 84014,
+ 成员票据无效 = 84015,
+ 缺少templateid参数 = 84019,
+ templateid不存在 = 84020,
+ 缺少register_code参数 = 84021,
+ 无效的register_code参数 = 84022,
+ 不允许调用设置通讯录同步完成接口 = 84023,
+ 无注册信息 = 84024,
+ 不符合的state参数 = 84025,
+ 缺少caller参数 = 84052,
+ 缺少callee参数 = 84053,
+ 缺少auth_corpid参数 = 84054,
+ 超过拨打公费电话频率 = 84055,
+ 被拨打用户安装应用时未授权拨打公费电话权限 = 84056,
+ 公费电话余额不足 = 84057,
+ caller呼叫号码不支持 = 84058,
+ 号码非法 = 84059,
+ callee呼叫号码不支持 = 84060,
+ 不存在外部联系人的关系 = 84061,
+ 未开启公费电话应用 = 84062,
+ caller不存在 = 84063,
+ callee不存在 = 84064,
+ caller跟callee电话号码一致 = 84065,
+ 服务商拨打次数超过限制 = 84066,
+ 管理员收到的服务商公费电话个数超过限制 = 84067,
+ 拨打方被限制拨打公费电话 = 84069,
+ 不支持的电话号码 = 84070,
+ 不合法的外部联系人授权码 = 84071,
+ 应用未配置客服 = 84072,
+ 客服userid不在应用配置的客服列表中 = 84073,
+ 没有外部联系人权限 = 84074,
+ 不合法或过期的authcode = 84075,
+ 缺失authcode = 84076,
+ 订单价格过高无法受理 = 84077,
+ 购买人数不正确 = 84078,
+ 价格策略不存在 = 84079,
+ 订单不存在 = 84080,
+ 存在未支付订单 = 84081,
+ 存在申请退款中的订单 = 84082,
+ 非服务人员 = 84083,
+ 非跟进用户 = 84084,
+ 应用已下架 = 84085,
+ 订单人数超过可购买最大人数 = 84086,
+ 打开订单支付前禁止关闭订单 = 84087,
+ 禁止关闭已支付的订单 = 84088,
+ 订单已支付 = 84089,
+ 缺失user_ticket = 84090,
+ 订单价格不可低于下限 = 84091,
+ 无法发起代下单操作 = 84092,
+ 代理关系已占用无法代下单 = 84093,
+ 该应用未配置代理分润规则请先联系应用服务商处理 = 84094,
+ 免费试用版无法扩容 = 84095,
+ 免费试用版无法续期 = 84096,
+ 当前企业有未处理订单 = 84097,
+ 固定总量无法扩容 = 84098,
+ 非购买状态无法扩容 = 84099,
+ 未购买过此应用无法续期 = 84100,
+ 企业已试用付费版本无法全新购买 = 84101,
+ 企业当前应用状态已过期无法扩容 = 84102,
+ 仅可修改未支付订单 = 84103,
+ 订单已支付无法修改 = 84104,
+ 订单已被取消无法修改 = 84105,
+ 企业含有该应用的待支付订单无法代下单 = 84106,
+ 企业含有该应用的退款中订单无法代下单 = 84107,
+ 企业含有该应用的待生效订单无法代下单 = 84108,
+ 订单定价不能未0 = 84109,
+ 新安装应用不在试用状态无法升级为付费版 = 84110,
+ 无足够可用优惠券 = 84111,
+ 无法关闭未支付订单 = 84112,
+ 无付费信息 = 84113,
+ 虚拟版本不支持下单 = 84114,
+ 虚拟版本不支持扩容 = 84115,
+ 虚拟版本不支持续期 = 84116,
+ 在虚拟正式版期内不能扩容 = 84117,
+ 虚拟正式版期内不能变更版本 = 84118,
+ 当前企业未报备无法进行代下单 = 84119,
+ 当前应用版本已删除 = 84120,
+ 应用版本已删除无法扩容 = 84121,
+ 应用版本已删除无法续期 = 84122,
+ 非虚拟版本无法升级 = 84123,
+ 非行业方案订单不能添加部分应用版本的订单 = 84124,
+ 购买人数不能少于最少购买人数 = 84125,
+ 购买人数不能多于最大购买人数 = 84126,
+ 无应用管理权限 = 84127,
+ 无该行业方案下全部应用的管理权限 = 84128,
+ 付费策略已被删除无法下单 = 84129,
+ 订单生效时间不合法 = 84130,
+ 文件转译解析错误 = 84200,
包含不合法的词语 = 85002,
+ 每企业每个月设置的可信域名不可超过20个 = 85004,
不合法的会话ID = 86001,
不存在的会话ID = 86003,
不合法的会话名 = 86004,
不合法的会话管理员 = 86005,
不合法的成员列表大小 = 86006,
不存在的成员_86007 = 86007,
+ 非法操作非自己创建的群 = 86008,
需要会话管理员权限 = 86101,
缺少会话ID = 86201,
缺少会话名 = 86202,
@@ -885,6 +1085,7 @@ public enum ReturnCode_Work
非法会话操作者 = 86220,
单聊模式下_发件人与收件人不能为同一人 = 86221,
不允许消息服务访问的API = 86222,
+ 不是受限群不允许使用该接口 = 86224,
不合法的消息类型_86304 = 86304,
客服服务未启用 = 86305,
缺少发送人 = 86306,
@@ -910,6 +1111,106 @@ public enum ReturnCode_Work
摇一摇周边ticket参数不合法 = 90003,
摇一摇周边ticket过期 = 90004,
未开启摇一摇周边服务 = 90005,
+
+ 非法的对外属性类型 = 90100,
+ 对外属性文本类型长度不合法 = 90101,
+ 对外属性网页类型标题长度不合法 = 90102,
+ 对外属性网页url不合法 = 90103,
+ 对外属性小程序类型标题长度不合法 = 90104,
+ 对外属性小程序类型pagepath不合法 = 90105,
+ 对外属性请求参数不合法 = 90106,
+ 缺少小程序appid参数 = 90200,
+ 小程序通知的content_item个数超过限制 = 90201,
+ 小程序通知中的key长度不合法 = 90202,
+ 小程序通知中的value长度不合法 = 90203,
+ 小程序通知中的page参数不合法 = 90204,
+ 小程序未关联到企业中 = 90206,
+ 不合法的小程序appid = 90207,
+ 小程序appid不匹配 = 90208,
+ orderid不合法 = 90300,
+ 付费应用已过期 = 90302,
+ 付费应用超过最大使用人数 = 90303,
+ 订单中心服务异常请稍后重试 = 90304,
+ 参数错误errmsg中有提示具体哪个参数有问题 = 90305,
+ 商户设置不合法详情请见errmsg = 90306,
+ 登录态过期 = 90307,
+ 在开启IP鉴权的前提下识别为无效的请求IP = 90308,
+ 订单已经存在请勿重复下单 = 90309,
+ 找不到订单 = 90310,
+ 关单失败 = 90311,
+ 退款请求失败, 详情请看errmsg = 90312,
+ 退款调用频率限制超过规定的阈值 = 90313,
+ 订单状态错误可能未支付或者当前状态操作受限 = 90314,
+ 退款请求失败主键冲突请核实退款refund_id是否已使用 = 90315,
+ 退款原因编号不对 = 90316,
+ 尚未注册成为供应商 = 90317,
+ 参数nonce_str为空或者重复判定为重放攻击 = 90318,
+ 时间戳为空或者与系统时间间隔太大 = 90319,
+ 订单token无效 = 90320,
+ 订单token已过有效时间 = 90321,
+ 旧套件_包含多个应用的套件_不支持支付系统 = 90322,
+ 单价超过限额 = 90323,
+ 商品数量超过限额 = 90324,
+ 预支单已经存在 = 90325,
+ 预支单单号非法 = 90326,
+ 该预支单已经结算下单 = 90327,
+ 结算下单失败详情请看errmsg = 90328,
+ 该订单号已经被预支单占用 = 90329,
+ 创建供应商失败 = 90330,
+ 更新供应商失败 = 90331,
+ 还没签署合同 = 90332,
+ 创建合同失败 = 90333,
+ 已经过了可退款期限 = 90338,
+ 供应商主体名包含非法字符 = 90339,
+ 创建客户失败可能信息真实性校验失败 = 90340,
+ 退款金额大于付款金额 = 90341,
+ 退款金额超过账户余额 = 90342,
+ 退款单号已经存在 = 90343,
+ 指定的付款渠道无效 = 90344,
+ 超过5w人民币不可指定微信支付渠道 = 90345,
+ 同一单的退款次数超过限制 = 90346,
+ 退款金额不可为0 = 90347,
+ 管理端没配置支付密钥 = 90348,
+ 记录数量太大 = 90349,
+ 银行信息真实性校验失败 = 90350,
+ 应用状态异常 = 90351,
+ 延迟试用期天数超过限制 = 90352,
+ 预支单列表不可为空 = 90353,
+ 预支单列表数量超过限制 = 90354,
+ 关联有退款预支单不可删除 = 90355,
+ 不能0金额下单 = 90356,
+ 代下单必须指定支付渠道 = 90357,
+ 预支单或代下单不支持部分退款 = 90358,
+ 预支单与下单者企业不匹配 = 90359,
+ 参数refunded_credit_orderid不合法 = 90381,
+ 必须指定组织者 = 90456,
+ 日历ID异常 = 90457,
+ 日历ID列表不能为空 = 90458,
+ 日历已删除 = 90459,
+ 日程已删除 = 90460,
+ 日程ID异常 = 90461,
+ 日程ID列表不能为空 = 90462,
+ 不能变更组织者 = 90463,
+ 参与者数量超过限制 = 90464,
+ 不支持的重复类型 = 90465,
+ 不能操作别的应用创建的日历日程 = 90466,
+ 星期参数异常 = 90467,
+ 不能变更组织者_ = 90468,
+ 每页大小超过限制 = 90469,
+ 页数异常 = 90470,
+ 提醒时间异常 = 90471,
+ 没有日历日程操作权限 = 90472,
+ 颜色参数异常 = 90473,
+ 组织者不能与参与者重叠 = 90474,
+ 不是组织者的日历 = 90475,
+ 不允许操作用户创建的日程 = 90479,
+ 群主并未离职 = 90500,
+ 该群不是客户群 = 90501,
+ 群主已经离职 = 90502,
+ 满人99个微信成员没办法踢要客户端确认 = 90503,
+ 群主没变 = 90504,
+ 离职群正在继承处理中 = 90507,
+ 离职群已经继承 = 90508,
卡券已被核销 = 91004,
无效的code = 91011,
缺少卡券详情 = 91014,
@@ -949,6 +1250,20 @@ public enum ReturnCode_Work
卡券提醒超过16个汉字 = 91053,
卡券描述超过1024个汉字 = 91054,
卡券副标题长度超过18个汉字 = 91055,
+ 成员不在应用可见范围之内 = 92000,
+ 应用没有敏感信息权限 = 92001,
+ 不允许跨企业调用 = 92002,
+ 机器人webhookurl不合法或者机器人已经被移除出群 = 93000,
+ 机器人被停用 = 93004,
+ 不在群里 = 93008,
+ 应用未开启工作台自定义模式 = 94000,
+ 不合法的type类型 = 94001,
+ 缺少keydata字段 = 94002,
+ keydata的items列表长度超出限制 = 94003,
+ 缺少list字段 = 94005,
+ list的items列表长度超出限制 = 94006,
+ 缺少webview字段 = 94007,
+ 应用未设置自定义工作台模版类型 = 94008,
应用id已存在 = 301001,
accesstoken不允许操作其它应用 = 301002,
不允许删除超级管理员 = 301004,
@@ -957,12 +1272,18 @@ public enum ReturnCode_Work
主页型应用不允许做此操作 = 301008,
应用发送消息没有接收主体 = 301009,
部门名已存在 = 301010,
+ 参数position不合法 = 301012,
座机不合法 = 301013,
英文名称不合法 = 301014,
+ 参数mediaid不合法 = 301015,
+ 上传语音文件不符合系统要求 = 301016,
+ 上传语音文件仅支持AMR格式 = 301017,
userid错误 = 301021,
获取打卡数据失败 = 301022,
useridlist非法或超过限额 = 301023,
获取打卡记录时间间隔超限 = 301024,
+ 审批开放接口参数错误 = 301025,
+ 不允许更新该用户的userid = 301036,
批量同步成员存在userid为空的用户 = 302001,
管理员userid不存在 = 302002,
存在重复的userid = 302003,
@@ -971,6 +1292,97 @@ public enum ReturnCode_Work
///
组织架构不合法 = 302004,
+ 批量导入系统失败请重新尝试导入 = 302005,
+ 批量导入任务的文件中partyid有重复 = 302006,
+ 批量导入任务的文件中同一个部门下有两个子部门名字一样 = 302007,
+ CorpId参数无效 = 2000002,
+ 不合法的sn = 600001,
+ 设备已注册 = 600002,
+ 不合法的硬件activecode = 600003,
+ 该硬件尚未授权任何企业 = 600004,
+ 硬件Secret无效 = 600005,
+ 缺少硬件sn = 600007,
+ 缺少nonce参数 = 600008,
+ 缺少timestamp参数 = 600009,
+ 缺少signature参数 = 600010,
+ 签名校验失败 = 600011,
+ 长连接已经注册过设备 = 600012,
+ 缺少activecode参数 = 600013,
+ 设备未网络注册 = 600014,
+ 缺少secret参数_ = 600015,
+ 设备未激活 = 600016,
+ 无效的起始结束时间 = 600018,
+ 设备未登录 = 600020,
+ 设备sn已存在 = 600021,
+ 时间戳已失效 = 600023,
+ 固件大小超过5M = 600024,
+ 固件名为空或者超过20字节 = 600025,
+ 固件信息不存在 = 600026,
+ 非法的固件参数 = 600027,
+ 固件版本已存在 = 600028,
+ 非法的固件版本 = 600029,
+ 缺少固件版本参数 = 600030,
+ 硬件固件不允许升级 = 600031,
+ 无法解析硬件二维码 = 600032,
+ 设备型号id冲突 = 600033,
+ 指纹数据大小超过限制 = 600034,
+ 人脸数据大小超过限制 = 600035,
+ 设备sn冲突 = 600036,
+ 缺失设备型号id = 600037,
+ 设备型号不存在 = 600038,
+ 不支持的设备类型 = 600039,
+ 打印任务id不存在 = 600040,
+ 无效的offset或limit参数值 = 600041,
+ 无效的设备型号id = 600042,
+ 门禁规则未设置 = 600043,
+ 门禁规则不合法 = 600044,
+ 设备已订阅企业信息 = 600045,
+ 操作id和用户userid不匹配 = 600046,
+ secretno的status非法 = 600047,
+ 无效的指纹算法 = 600048,
+ 无效的人脸识别算法 = 600049,
+ 无效的算法长度 = 600050,
+ 设备过期 = 600051,
+ 无效的文件分块 = 600052,
+ 该链接已经激活 = 600053,
+ 该链接已经订阅 = 600054,
+ 无效的用户类型 = 600055,
+ 无效的健康状态 = 600056,
+ 缺少体温参数 = 600057,
+ 永久二维码超过每个员工5000的限制 = 610001,
+ scene参数不合法 = 610003,
+ userid不在客户联系配置的使用范围内 = 610004,
+ 微盘不存在当前空间 = 640001,
+ 文件不存在 = 640002,
+ 文件已删除 = 640003,
+ 无权限访问 = 640004,
+ 成员不在空间内 = 640005,
+ 超出当前成员拥有的容量 = 640006,
+ 超出微盘的容量 = 640007,
+ 没有空间权限 = 640008,
+ 非法文件名 = 640009,
+ 超出空间的最大成员数 = 640010,
+ json格式不匹配 = 640011,
+ 非法的userid = 640012,
+ 非法的departmentid = 640013,
+ 空间没有有效的管理员 = 640014,
+ 不支持设置预览权限 = 640015,
+ 不支持设置文件水印 = 640016,
+ 微盘管理端未开通API权限 = 640017,
+ 微盘管理端未设置编辑权限 = 640018,
+ API调用次数超出限制 = 640019,
+ 非法的权限类型 = 640020,
+ 非法的fatherid = 640021,
+ 非法的文件内容的base64 = 640022,
+ 非法的权限范围 = 640023,
+ 非法的fileid = 640024,
+ 非法的space_name = 640025,
+ 非法的spaceid = 640026,
+ 参数错误 = 640027,
+ 空间设置了关闭成员邀请链接 = 640028,
+ 只支持下载普通文件不支持下载文件夹等其他非文件实体类型 = 640029,
+ 非法的output_file_format = 844001,
+
#pragma warning restore CS1591 // 缺少对公共可见类型或成员的 XML 注释
}
diff --git a/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.netcore3.csproj b/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.netcore3.csproj
index 74d8abf6cd..8c8d6cd49b 100644
--- a/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.netcore3.csproj
+++ b/src/Senparc.Weixin/Senparc.Weixin/Senparc.Weixin.netcore3.csproj
@@ -2,7 +2,7 @@
net45;netstandard2.0;netstandard2.1
$(Net35FrameworkPathOverride)
- 6.7.600
+ 6.8.101
Senparc.Weixin
Senparc.Weixin
true
@@ -332,14 +332,6 @@
prompt
MinimumRecommendedRules.ruleset
-
- ..\..\Senparc.Weixin.MP.BuildOutPut\
- ..\..\Senparc.Weixin.MP.BuildOutPut\net35\Senparc.Weixin.xml
-
-
- ..\..\Senparc.Weixin.MP.BuildOutPut\
- ..\..\Senparc.Weixin.MP.BuildOutPut\net40\Senparc.Weixin.xml
-
..\..\Senparc.Weixin.MP.BuildOutPut\
..\..\Senparc.Weixin.MP.BuildOutPut\net45\Senparc.Weixin.xml
@@ -363,31 +355,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+