Browse Source

【增加】对接一信通短信平台方法;

娄底高职分支
dyy 2 years ago
parent
commit
5b74c39a7b
3 changed files with 146 additions and 0 deletions
  1. +4
    -0
      Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/App.config
  2. +1
    -0
      Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Quanjiang.DigitalScholl.SendSms.csproj
  3. +141
    -0
      Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Yixintong/YixintongSms.cs

+ 4
- 0
Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/App.config View File

@@ -11,6 +11,10 @@
<!--斑羚短信平台--> <!--斑羚短信平台-->
<add key="sdkappid" value="140009369387"/> <add key="sdkappid" value="140009369387"/>
<add key="appkey" value="4d2743a4233e5d8625eefa31f876721b"/> <add key="appkey" value="4d2743a4233e5d8625eefa31f876721b"/>
<!--一信通短信平台-->
<add key="SpCode" value="219988"/>
<add key="LoginName" value="zx_ygj"/>
<add key="Password" value="KObe24@$"/>
<add key="ClientSettingsProvider.ServiceUri" value=""/> <add key="ClientSettingsProvider.ServiceUri" value=""/>
</appSettings> </appSettings>
<startup> <startup>


+ 1
- 0
Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Quanjiang.DigitalScholl.SendSms.csproj View File

@@ -68,6 +68,7 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Yixintong\YixintongSms.cs" />
<Compile Include="Banling\BanLingSms.cs" /> <Compile Include="Banling\BanLingSms.cs" />
<Compile Include="Banling\SmsSender.cs" /> <Compile Include="Banling\SmsSender.cs" />
<Compile Include="ISms.cs" /> <Compile Include="ISms.cs" />


+ 141
- 0
Learun.Framework.Ultimate V7/Quanjiang.DigitalScholl.SendSms/Yixintong/YixintongSms.cs View File

@@ -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
{
/// <summary>
/// 一信通短信平台
/// </summary>
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<string> 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<SmsResult>(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<string> phoneNumbers, SmsType st, List<string> 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<SmsResult>(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;
}

/// <summary>
/// 根据短信通知类型获取短信模板
/// </summary>
/// <param name="st"></param>
/// <returns></returns>
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;
}

/// <summary>
/// 发送短信返回内容
/// </summary>
public class SmsResult {
/// <summary>
/// 错误代码(0:发送短信成功,0-34,)
/// </summary>
public int result { get; set; }
/// <summary>
/// 错误描述
/// </summary>
public string description { get; set; }
/// <summary>
/// 任务编号
/// </summary>
public string taskid { get; set; }
/// <summary>
/// 失败号码列表(可多个)
/// </summary>
public string faillist { get; set; }
}


}
}

Loading…
Cancel
Save