From c3425b00fe4f1c2783536b30b216860a21d151dd Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期二, 18 二月 2025 08:10:12 +0800
Subject: [PATCH] 企业微信

---
 Wms/Utility/Tools/WeComTools.cs |  165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 165 insertions(+), 0 deletions(-)

diff --git a/Wms/Utility/Tools/WeComTools.cs b/Wms/Utility/Tools/WeComTools.cs
new file mode 100644
index 0000000..42b707d
--- /dev/null
+++ b/Wms/Utility/Tools/WeComTools.cs
@@ -0,0 +1,165 @@
+锘縰sing Newtonsoft.Json;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using Talk.Extensions;
+
+namespace Utility.Tools
+{
+    /// <summary>
+    /// 浼佷笟寰俊
+    /// </summary>
+    public class WeComTools
+    {
+        private static string access_token = "";
+        public WeComTools()
+        {
+            access_token = GetToken();
+        }
+
+        public string GetToken()
+        {
+            Dictionary<string, string> dic = new Dictionary<string, string>();
+            dic.Add("corpid", WeComConfig.corpid);
+            dic.Add("corpsecret", WeComConfig.corpsecret);
+            var response = HttpHelper.DoGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken", dic);
+            var modResponse = JsonConvert.DeserializeObject<TokenResponse>(response);
+            if (modResponse.errcode == 0)
+            {
+                return modResponse.access_token;
+            }
+            else
+            {
+                throw Oops.Bah(modResponse.errmsg);
+            }
+        }
+        public bool SendNewsMessage(string title, string content, string touser = "@all")
+        {
+            MessageRequest request = new MessageRequest()
+            {
+                touser = touser,
+                agentid = WeComConfig.agentid,
+                msgtype = "mpnews",
+                mpnews = new Mpnews()
+                {
+                    articles = new List<ArticlesItem>()
+                    {
+                        new ArticlesItem()
+                        {
+                            title = title,
+                            thumb_media_id = WeComConfig.thumb_media_id,
+                            content = content
+                        }
+                    }
+                }
+            };
+            var response = HttpHelper.DoPost("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+ access_token, JsonConvert.SerializeObject(request), "WeCom", "WMS");
+            var modResponse = JsonConvert.DeserializeObject<TokenResponse>(response);
+            if (modResponse.errcode == 0)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+        public bool SendTextMessage(string content, string touser = "@all")
+        {
+            MessageRequest request = new MessageRequest()
+            {
+                touser = touser,
+                agentid = WeComConfig.agentid,
+                msgtype = "text",
+                text = new Text() { content = content }
+            };
+            var response = HttpHelper.DoPost("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+ access_token, JsonConvert.SerializeObject(request), "WeCom", "WMS");
+            var modResponse = JsonConvert.DeserializeObject<TokenResponse>(response);
+            if (modResponse.errcode == 0)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+    }
+
+    public class WeComConfig
+    {
+        public static string corpid { get; set; }
+        public static int agentid { get; set; }
+        public static string corpsecret { get; set; }
+        public static string thumb_media_id { get; set; }
+    }
+    public class TokenResponse
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public int errcode { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public string errmsg { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public string access_token { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public int expires_in { get; set; }
+    }
+
+    public class ArticlesItem
+    {
+        /// <summary>
+        /// 鏍囬
+        /// </summary>
+        public string title { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public string thumb_media_id { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public string content { get; set; }
+    }
+
+    public class Mpnews
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public List<ArticlesItem> articles { get; set; }
+    }
+    public class Text
+    {
+        public string content { get; set; }
+    }
+    public class MessageRequest
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public string touser { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public string msgtype { get; set; } = "mpnews";
+        /// <summary>
+        /// 
+        /// </summary>
+        public int agentid { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public Mpnews mpnews { get; set; }
+        public Text text { get; set; }
+    }
+
+}

--
Gitblit v1.8.0