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; } + } + + + } +}