using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using Learun.Util; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Quanjiang.DigitalScholl.SendSms.Banling.Sms; namespace Quanjiang.DigitalScholl.SendSms.Banling { /// /// 斑羚短信平台 /// public class BanLingSms : ISms { private static readonly string SdkAppId = ConfigManager.AppSettings["sdkappid"].Value; private static readonly string AppKey = ConfigManager.AppSettings["appkey"].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) = GetSmsTemplate(st, sendParams); try { var singleSender = new SmsSingleSender(SdkAppId, AppKey); var singleResult = await Task.FromResult(singleSender.SendWithParam("86", phoneNumber, templatecode, templateparam, "深圳国际公益学院", "", "")); result = singleResult.result==0 ? ("OK", randomNum, "", "") : (singleResult.result.ToString(), "", singleResult.errmsg, "Client"); } 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) = GetSmsTemplate(st, sendParams); try { var multiSender = new SmsMultiSender(SdkAppId, AppKey); var multiResult = await Task.FromResult(multiSender.SendWithParam("86", phoneNumbers, templatecode, templateparam, "深圳国际公益学院", "", "")); result = multiResult.result == 0 ? ("OK", randomNum, "", "") : (multiResult.result.ToString(), "", multiResult.errmsg, "Client"); } catch (Exception e) { result = ("", "", e.Message, e.GetType().ToString()); } return result; } /// /// 根据短信通知类型获取短信模板 /// /// /// /// private (string templateCode, List templateParam, string randomNum) GetSmsTemplate(SmsType st, List sendParams) { (string templateCode, List templateParam, string randomNum) result; var randomNum = CommonHelper.RandNum(6); switch (st) { case SmsType.Register: result = ("141577", new List() { randomNum, "5" }, randomNum); break; case SmsType.LoginBind: result = ("141578", new List() { randomNum, "5" }, randomNum); break; case SmsType.ForgetPassWord: result = ("141581", new List() { randomNum, "5" }, randomNum); break; case SmsType.LessionNotification: result = ("141583", sendParams, randomNum); break; case SmsType.LeaveNotification: result = ("141585", sendParams, randomNum); break; case SmsType.MakeUpMissedLessonsNotification: result = ("141588", sendParams, randomNum); break; case SmsType.ClassManagerLeaveNotification: result = ("156728", sendParams, randomNum); break; case SmsType.ClassManagerMakeUpMissedLessonsNotification: result = ("156729", sendParams, randomNum); break; default: throw new ArgumentOutOfRangeException(nameof(st), st, null); } return result; } } }