From 32d421fb8bdd76f7613af548c9dfb184c4a64a23 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期一, 01 十二月 2025 13:14:02 +0800
Subject: [PATCH] feat:开发
---
ApiTools.Core/Models/WxmpUtils/Models/WxmpSubscribMessageNotifyRequestQuery.cs | 33 +++++++++++
ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs | 2
ApiTools.Core/Utils/WxmpUtils/WxmpOptions.cs | 18 ++++++
ApiTools.Web.Entry/appsettings.json | 7 ++
ApiTools.Web.Entry/Controllers/WxmpController.cs | 39 +++++++++++++
ApiTools.Core/ApiTools.Core.xml | 35 +++++++++++
ApiTools.Core/Models/WxmpUtils/Commands/WxmpSubscribMessageNotifyCommand.cs | 4 +
7 files changed, 136 insertions(+), 2 deletions(-)
diff --git a/ApiTools.Core/ApiTools.Core.xml b/ApiTools.Core/ApiTools.Core.xml
index 683f524..ffe0338 100644
--- a/ApiTools.Core/ApiTools.Core.xml
+++ b/ApiTools.Core/ApiTools.Core.xml
@@ -3323,6 +3323,26 @@
寰俊灏忕▼搴忚闃呮秷鎭�氱煡
</summary>
</member>
+ <member name="P:ApiTools.Core.WxmpSubscribMessageNotifyRequestQuery.Signature">
+ <summary>
+ 绛惧悕
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.WxmpSubscribMessageNotifyRequestQuery.Timestamp">
+ <summary>
+ 鏃堕棿鎴�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.WxmpSubscribMessageNotifyRequestQuery.Nonce">
+ <summary>
+ 闅忔満鏁�
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.WxmpSubscribMessageNotifyRequestQuery.Echostr">
+ <summary>
+ 闅忔満瀛楃涓�
+ </summary>
+ </member>
<member name="T:ApiTools.Core.GetWxmpSubscribMessageTemplatesQuery">
<summary>
鏌ヨ寰俊灏忕▼搴忚闃呮秷鎭ā鏉�
@@ -7140,6 +7160,21 @@
寰俊灏忕▼搴忛厤缃�
</summary>
</member>
+ <member name="P:ApiTools.Core.WxmpOptions.SubscribMessage">
+ <summary>
+ 璁㈤槄娑堟伅
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.WxmpOptionsSubscribMessage.Token">
+ <summary>
+ 浠ょ墝
+ </summary>
+ </member>
+ <member name="P:ApiTools.Core.WxmpOptionsSubscribMessage.EncodingAESKey">
+ <summary>
+ 娑堟伅鍔犲瘑瀵嗛挜
+ </summary>
+ </member>
<member name="P:ApiTools.Core.WxmpOptionsItem.Code">
<summary>
缂栧彿
diff --git a/ApiTools.Core/Models/WxmpUtils/Commands/WxmpSubscribMessageNotifyCommand.cs b/ApiTools.Core/Models/WxmpUtils/Commands/WxmpSubscribMessageNotifyCommand.cs
index 033e7d6..55575cc 100644
--- a/ApiTools.Core/Models/WxmpUtils/Commands/WxmpSubscribMessageNotifyCommand.cs
+++ b/ApiTools.Core/Models/WxmpUtils/Commands/WxmpSubscribMessageNotifyCommand.cs
@@ -10,9 +10,11 @@
/// <summary>
/// 寰俊灏忕▼搴忚闃呮秷鎭�氱煡
/// </summary>
- [Resource([EnumResourceController.CommonServerWxmpUtils], Method = EnumResourceMethod.Post)]
+ [Resource([EnumResourceController.CommonServerWxmpUtils], Method = EnumResourceMethod.Get)]
public class WxmpSubscribMessageNotifyCommand : IRequest<bool>
{
+
+
public string ToUserName { get; set; }
public string FromUserName { get; set; }
public DateTime CreateTime { get; set; }
diff --git a/ApiTools.Core/Models/WxmpUtils/Models/WxmpSubscribMessageNotifyRequestQuery.cs b/ApiTools.Core/Models/WxmpUtils/Models/WxmpSubscribMessageNotifyRequestQuery.cs
new file mode 100644
index 0000000..8f8bed4
--- /dev/null
+++ b/ApiTools.Core/Models/WxmpUtils/Models/WxmpSubscribMessageNotifyRequestQuery.cs
@@ -0,0 +1,33 @@
+锘縰sing Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ApiTools.Core
+{
+ public class WxmpSubscribMessageNotifyRequestQuery
+ {
+ /// <summary>
+ /// 绛惧悕
+ /// </summary>
+ [JsonProperty("signature")]
+ public string Signature { get; set; }
+ /// <summary>
+ /// 鏃堕棿鎴�
+ /// </summary>
+ [JsonProperty("timestamp")]
+ public string Timestamp { get; set; }
+ /// <summary>
+ /// 闅忔満鏁�
+ /// </summary>
+ [JsonProperty("nonce")]
+ public string Nonce { get; set; }
+ /// <summary>
+ /// 闅忔満瀛楃涓�
+ /// </summary>
+ [JsonProperty("echostr")]
+ public string Echostr { get; set; }
+ }
+}
diff --git a/ApiTools.Core/Utils/WxmpUtils/WxmpOptions.cs b/ApiTools.Core/Utils/WxmpUtils/WxmpOptions.cs
index ec1a277..6e5aaa5 100644
--- a/ApiTools.Core/Utils/WxmpUtils/WxmpOptions.cs
+++ b/ApiTools.Core/Utils/WxmpUtils/WxmpOptions.cs
@@ -18,6 +18,24 @@
}
public List<WxmpOptionsItem> Items { get; set; }
+
+ /// <summary>
+ /// 璁㈤槄娑堟伅
+ /// </summary>
+ public WxmpOptionsSubscribMessage SubscribMessage { get; set; }
+ }
+
+ public class WxmpOptionsSubscribMessage
+ {
+ /// <summary>
+ /// 浠ょ墝
+ /// </summary>
+ public string Token { get; set; }
+
+ /// <summary>
+ /// 娑堟伅鍔犲瘑瀵嗛挜
+ /// </summary>
+ public string EncodingAESKey { get; set; }
}
public class WxmpOptionsItem
diff --git a/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs b/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
index 39321b6..5dcf926 100644
--- a/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
+++ b/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
@@ -176,5 +176,7 @@
if (callback == null || callback.ErrorCode != 0)
throw Oops.Oh(EnumErrorCodeType.s510, $"鍙戦�佽闃呮秷鎭け璐ワ細{callback.ErrorMessage}锛岃鑱旂郴绠$悊鍛�");
}
+
+
}
}
diff --git a/ApiTools.Web.Entry/Controllers/WxmpController.cs b/ApiTools.Web.Entry/Controllers/WxmpController.cs
new file mode 100644
index 0000000..102d943
--- /dev/null
+++ b/ApiTools.Web.Entry/Controllers/WxmpController.cs
@@ -0,0 +1,39 @@
+锘縰sing ApiTools.Core;
+using Furion.DataEncryption;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Options;
+
+namespace ApiTools.Web.Entry.Controllers
+{
+ [Route("api/common/wxmp")]
+ public class WxmpController(
+ WxmpUtils utils,
+ IOptions<WxmpOptions> options
+ ) : ControllerBase
+ {
+ private readonly WxmpUtils utils = utils;
+ private readonly IOptions<WxmpOptions> options = options;
+
+ [HttpGet("subscribMessageNotify")]
+ public IActionResult SubscribMessageNotify([FromQuery] WxmpSubscribMessageNotifyRequestQuery request)
+ {
+ var @params = new[]
+ {
+ options.Value.SubscribMessage.Token,
+ request.Timestamp,
+ request.Nonce
+ }
+ .OrderBy(p => p)
+ .ToArray();
+ var text = string.Concat(@params);
+ if (SHA1Encryption.Compare(text, request.Signature, true))
+ {
+ return Content(request.Echostr);
+ }
+ else
+ {
+ return Unauthorized("楠岀澶辫触");
+ }
+ }
+ }
+}
diff --git a/ApiTools.Web.Entry/appsettings.json b/ApiTools.Web.Entry/appsettings.json
index bdb049d..812a8cd 100644
--- a/ApiTools.Web.Entry/appsettings.json
+++ b/ApiTools.Web.Entry/appsettings.json
@@ -58,7 +58,12 @@
"AppSecret": "9a132eda735bc925200b0e215cffe20a",
"EnvVersion": "trial"
}
- ]
+ ],
+ "SubscribMessage": {
+ "Url": "https://sms.81812333.com/api/common/wxmp/wxmpSubscribMessageNotify",
+ "Token": "8Uu6CZ9KM2CAr3Q3O0YdWUYPfcXFhgMK",
+ "EncodingAESKey": "tbBkUB7nCgZlfton3aKMlfzHSm7QdWgnpKFibl6sjn7"
+ },
},
"Task": {
"SettlementTime": "T0"
--
Gitblit v1.9.1