From 2a75aa6b6e23a2f86046a2da21eb9e97ec58bdc3 Mon Sep 17 00:00:00 2001
From: lijin <17408817@qq.com>
Date: 星期四, 20 十一月 2025 08:48:49 +0800
Subject: [PATCH] 发送订阅消息

---
 ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs |   40 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 39 insertions(+), 1 deletions(-)

diff --git a/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs b/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
index 44f09c0..3806ced 100644
--- a/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
+++ b/ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
@@ -1,6 +1,7 @@
 锘縰sing Aliyun.OSS;
-using Azure.Core;
+using Aop.Api.Domain;
 using ApiTools.Core.Utils.WxmpUtils;
+using Azure.Core;
 using Furion.FriendlyException;
 using Furion.HttpRemote;
 using Mapster;
@@ -124,5 +125,42 @@
             var result = AliyunOSSUtils.Upload(command.OssScene, stream, command.OssFileName);
             return result.Url;
         }
+
+        /// <summary>
+        /// 璇ユ帴鍙g敤浜庡彂閫佽闃呮秷鎭�
+        /// </summary>
+        /// <param name="command"></param>
+        /// <returns></returns>
+        public async Task<string> WxSend(SendRequest command)
+        {
+            var option = options.Value.Items.FirstOrDefault(it => it.Code == command.WxmpCode);
+            if (option == null || option.AppId.IsNull() || option.AppSecret.IsNull())
+                throw Oops.Oh(EnumErrorCodeType.s400, "鑾峰彇灏忕▼搴忕爜澶辫触锛岀己澶遍厤缃細WxmpOptions");
+            command.EnvVersion = option.EnvVersion;
+            var accessToken = await GetAccessToken(command.WxmpCode);
+            var request = command.Adapt<SendRequest>();
+            var jsonContent = JsonConvert.SerializeObject(request, new JsonSerializerSettings
+            {
+                NullValueHandling = NullValueHandling.Ignore
+            });
+            var response = await httpRemoteService.PostAsync("https://api.weixin.qq.com/cgi-bin/message/subscribe/send",
+                builder => builder
+                .WithQueryParameter("access_token", accessToken)
+                .SetJsonContent(jsonContent));
+            response.EnsureSuccessStatusCode();
+            if (response.Content.Headers.ContentType.ToString() == "application/json; charset=UTF-8")
+            {
+                var jsonResult = await response.Content.ReadAsStringAsync();
+                var callback = jsonResult.JsonTo<SendResponse>();
+                if (callback == null || callback.ErrorCode != 0)
+                    //throw Oops.Oh(EnumErrorCodeType.s510, $"鑾峰彇灏忕▼搴忕爜澶辫触锛歿callback.errmsg}锛岃鑱旂郴绠$悊鍛�");
+                return jsonResult;
+            }
+            //var stream = await response.Content.ReadAsStreamAsync();
+            //var result = AliyunOSSUtils.Upload(command, stream, command.OssFileName);
+            return "";
+        }
+
+
     }
 }

--
Gitblit v1.9.1