From 5b74c39a7b09506e110274b6fddf495b5308945f Mon Sep 17 00:00:00 2001
From: dyy <807692433@qq.com>
Date: Thu, 15 Dec 2022 09:09:28 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=A2=9E=E5=8A=A0=E3=80=91=E5=AF=B9?=
=?UTF-8?q?=E6=8E=A5=E4=B8=80=E4=BF=A1=E9=80=9A=E7=9F=AD=E4=BF=A1=E5=B9=B3?=
=?UTF-8?q?=E5=8F=B0=E6=96=B9=E6=B3=95=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../App.config | 4 +
.../Quanjiang.DigitalScholl.SendSms.csproj | 1 +
.../Yixintong/YixintongSms.cs | 141 ++++++++++++++++++
3 files changed, 146 insertions(+)
create mode 100644 Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Yixintong/YixintongSms.cs
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/App.config b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/App.config
index 5368cf971..f2de6874c 100644
--- a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/App.config
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/App.config
@@ -11,6 +11,10 @@
+
+
+
+
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Quanjiang.DigitalScholl.SendSms.csproj b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Quanjiang.DigitalScholl.SendSms.csproj
index 5b75ed56d..986b2242f 100644
--- a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Quanjiang.DigitalScholl.SendSms.csproj
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Quanjiang.DigitalScholl.SendSms.csproj
@@ -68,6 +68,7 @@
+
diff --git a/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Yixintong/YixintongSms.cs b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Yixintong/YixintongSms.cs
new file mode 100644
index 000000000..c6e11a722
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Yixintong/YixintongSms.cs
@@ -0,0 +1,141 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Learun.Util;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+
+namespace Quanjiang.DigitalScholl.SendSms
+{
+ ///
+ /// 一信通短信平台
+ ///
+ public class YixintongSms:ISms
+ {
+ private static readonly string SpCode = ConfigManager.AppSettings["SpCode"].Value;//企业编号
+ private static readonly string LoginName = ConfigManager.AppSettings["LoginName"].Value;//用户名
+ private static readonly string Password = ConfigManager.AppSettings["Password"].Value;//接口密钥
+
+ public async Task<(string code, string randomNum, string message, string errorType)> SendSmsToSingle(string phoneNumber, SmsType st, List sendParams = null)
+ {
+ (string code, string randomNum, string message, string errorType) result;
+ var (templatecode, templateparam, randomNum) = GetSmsTemplateBySmsType(st);
+ try
+ {
+ // 按照协议组织 post 请求包体
+ JObject data = new JObject();
+ data.Add("SpCode", SpCode);
+ data.Add("LoginName", LoginName);
+ data.Add("Password", Password);
+ data.Add("MessageContent", sendParams.FirstOrDefault());
+ data.Add("UserNumber", phoneNumber);
+ data.Add("templateId", templatecode);
+ data.Add("SerialNumber", DateTime.Now.ToString("yyyyMMddHHmmssffffff"));
+ data.Add("ScheduleTime", "");
+ data.Add("f", "1");
+ data.Add("signCode", "");
+
+ string pushresult = Learun.Util.HttpMethods.HttpPost("https://api.ums86.com:9600/sms/Api/Send.do", JsonConvert.SerializeObject(data));
+ var objresult = JsonConvert.DeserializeObject(pushresult);
+ result = objresult.result == 0 ? ("OK", randomNum, "", "") : (objresult.result.ToString(), "", objresult.description, objresult.faillist);
+
+ }
+ catch (Exception e)
+ {
+ result = ("", "", e.Message, e.GetType().ToString());
+ }
+ return result;
+ }
+
+ public async Task<(string code, string randomNum, string message, string errorType)> SendSmsToMulti(List phoneNumbers, SmsType st, List sendParams = null)
+ {
+ (string code, string randomNum, string message, string errorType) result;
+ var (templatecode, templateparam, randomNum) = GetSmsTemplateBySmsType(st);
+ try
+ {
+ // 按照协议组织 post 请求包体
+ JObject data = new JObject();
+ data.Add("SpCode", SpCode);
+ data.Add("LoginName", LoginName);
+ data.Add("Password", Password);
+ data.Add("MessageContent", sendParams.FirstOrDefault());
+ data.Add("UserNumber", string.Join(",", phoneNumbers.ToArray()));
+ data.Add("templateId", templatecode);
+ data.Add("SerialNumber", DateTime.Now.ToString("yyyyMMddHHmmssffffff"));
+ data.Add("ScheduleTime", "");
+ data.Add("f", "1");
+ data.Add("signCode", "");
+
+ string pushresult = Learun.Util.HttpMethods.HttpPost("https://api.ums86.com:9600/sms/Api/Send.do", JsonConvert.SerializeObject(data));
+ var objresult = JsonConvert.DeserializeObject(pushresult);
+ result = objresult.result == 0 ? ("OK", randomNum, "", "") : (objresult.result.ToString(), "", objresult.description, objresult.faillist);
+
+ }
+ catch (Exception e)
+ {
+ result = ("", "", e.Message, e.GetType().ToString());
+ }
+ return result;
+ }
+
+ ///
+ /// 根据短信通知类型获取短信模板
+ ///
+ ///
+ ///
+ private (string templateCode, string templateParam, string randomNum) GetSmsTemplateBySmsType(SmsType st)
+ {
+ (string templateCode, string templateParam,string randomNum) result;
+ var randomNum = CommonHelper.RandNum(6);
+ switch (st)
+ {
+ case SmsType.Register:
+ result = ("SMS_137485060", JsonConvert.SerializeObject(new { code = randomNum }), randomNum);
+ break;
+ case SmsType.LoginBind:
+ result = ("SMS_137485060", JsonConvert.SerializeObject(new { code = randomNum }), randomNum);
+ break;
+ case SmsType.ForgetPassWord:
+ result = ("SMS_137485060", JsonConvert.SerializeObject(new { code = randomNum }), randomNum);
+ break;
+ case SmsType.LessionNotification:
+ result = ("SMS_137485060", JsonConvert.SerializeObject(new { code = randomNum }), randomNum);
+ break;
+ case SmsType.LeaveNotification:
+ result = ("SMS_137485060", JsonConvert.SerializeObject(new { code = randomNum }), randomNum);
+ break;
+ case SmsType.MakeUpMissedLessonsNotification:
+ result = ("SMS_137485060", JsonConvert.SerializeObject(new { code = randomNum }), randomNum);
+ break;
+ default:
+ throw new ArgumentOutOfRangeException(nameof(st), st, null);
+ }
+ return result;
+ }
+
+ ///
+ /// 发送短信返回内容
+ ///
+ public class SmsResult {
+ ///
+ /// 错误代码(0:发送短信成功,0-34,)
+ ///
+ public int result { get; set; }
+ ///
+ /// 错误描述
+ ///
+ public string description { get; set; }
+ ///
+ /// 任务编号
+ ///
+ public string taskid { get; set; }
+ ///
+ /// 失败号码列表(可多个)
+ ///
+ public string faillist { get; set; }
+ }
+
+
+ }
+}