.Net Core 阿里云短信服务Demo
生活随笔
收集整理的這篇文章主要介紹了
.Net Core 阿里云短信服务Demo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
話不多說直接Po 代碼? 官方demo及sdk?下載地址?:http://ytx-sdk.oss-cn-shanghai.aliyuncs.com/dysms_net.zip?spm=a2c4g.11186623.2.19.497f4175i94E9Y&file=dysms_net.zip
我是下的demo。自己試了下。小改了沒啥問題直接用了。幾乎和demo一樣。.就是sdk引用踩了點坑.看好了引用
唯一踩坑的點就是包要引用對。不然下面這部會報錯。沒實例化。
引用的。
以及我引用的是core2.0下面的sdk 。這2個不引用會報錯。不通的包里有相同的類型導致編譯不過去。
參數
private readonly string commonTemplate = "xxxx"; //通用短信模板idprivate readonly string messageSignature = "xxx"; //短信標識 titleprivate readonly string product = "Dysmsapi"; //云通信短信API產品名 (固定的)private readonly string domain = "dysmsapi.aliyuncs.com"; //域名 (固定的)private readonly string accessKeyId = "xxx";private readonly string accessKeySecret = "xxxx";單個短信發送代碼 :
/// <summary>/// 單個發送短息/// </summary>/// <param name="phone"></param>/// <param name="vcode"></param>/// <returns></returns>public (bool result, string msg, string code) sendSms(string phone, string vcode, int type){IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient = new DefaultAcsClient(profile);SendSmsRequest request = new SendSmsRequest();SendSmsResponse response = null;try{//必填:待發送手機號。支持以逗號分隔的形式進行批量調用,批量上限為1000個手機號碼,批量調用相對于單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式request.PhoneNumbers = phone; //必填:待發送手機號。可以,間隔發送多個request.SignName = messageSignature; //必填:短信簽名request.TemplateCode = type == 1 ? registerTemplate : type == 2 ? loginTemplate : commonTemplate; //必填:短信模板request.TemplateParam = new { code = vcode }.ToJson(); //模板的替換變量。根據模板。可以替換對應的字段。//request.OutId = "yourOutId"; //可選:outId為提供給業務方擴展字段,最終在短信回執消息中將此值帶回給調用者//請求失敗這里會拋ClientException異常response = acsClient.GetAcsResponse(request);if (response.Code.Equals("OK"))return (true, string.Empty, response.Code);elsereturn (false, response.Message, response.Code);}catch (ServerException e){//Console.WriteLine(e.ErrorCode);return (false, e.ErrorCode, response.Code);}catch (ClientException e){//Console.WriteLine(e.ErrorCode);return (false, e.ErrorCode, response.Code);}}給多個手機號發不同的短信? :
public SendBatchSmsResponse sendAnySms(List<string> codeList, List<string> phoneList){IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient = new DefaultAcsClient(profile);SendBatchSmsRequest request = new SendBatchSmsRequest();//request.Protocol = ProtocolType.HTTPS;//request.TimeoutInMilliSeconds = 1;SendBatchSmsResponse response = null;try{if (codeList.Count != phoneList.Count) return null;var vcode = "12345";var vcode2 = "54321";//必填:待發送手機號。支持JSON格式的批量調用,批量上限為100個手機號碼,批量調用相對于單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式request.PhoneNumberJson = "[\"112345698\",\"112345698\"]";//必填:短信簽名-支持不同的號碼發送不同的短信簽名request.SignNameJson = "[\"生物\",\"生物\"]";//必填:短信模板-可在短信控制臺中找到request.TemplateCode = commonTemplate;//必填:模板中的變量替換JSON串,如模板內容為"親愛的${name},您的驗證碼為${code}"時,此處的值為//友情提示:如果JSON中需要帶換行符,請參照標準的JSON協議對換行符的要求,比如短信內容中包含\r\n的情況在JSON中需要表示成\\r\\n,否則會導致JSON在服務端解析失敗request.TemplateParamJson = "[{\"code\":\"" + vcode + "\"},{\"code\":\"" + vcode2 + "\"}]";//可選-上行短信擴展碼(擴展碼字段控制在7位或以下,無特殊需求用戶請忽略此字段)//request.SmsUpExtendCodeJson = "[\"90997\",\"90998\"]";//請求失敗這里會拋ClientException異常response = acsClient.GetAcsResponse(request);}catch (ServerException e){//Console.Write(e.ErrorCode);return null;}catch (ClientException e){//Console.Write(e.ErrorCode);//Console.Write(e.Message);return null;}return response;}查詢某一天的發送短信情況
public (bool result, string msg, List<QuerySendDetails_SmsSendDetailDTO> info) querySendDetails(string phone, string date, int pageIndex = 1, int pageSize = 10, String bizId = ""){//初始化acsClient,暫不支持region化IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient = new DefaultAcsClient(profile);//組裝請求對象QuerySendDetailsRequest request = new QuerySendDetailsRequest();//必填-號碼request.PhoneNumber = phone;可選-流水號//request.BizId = bizId;//必填-發送日期 支持30天內記錄查詢,格式yyyyMMdd request.SendDate = DateTime.Now.ToString(date);//必填-頁大小request.PageSize = pageSize;//必填-當前頁碼從1開始計數request.CurrentPage = pageIndex;QuerySendDetailsResponse querySendDetailsResponse = null;try{querySendDetailsResponse = acsClient.GetAcsResponse(request);if (querySendDetailsResponse.Code.Equals("OK"))return (true, string.Empty, querySendDetailsResponse.SmsSendDetailDTOs);elsereturn (false, querySendDetailsResponse.Message, null);}catch (ServerException e){//Console.WriteLine(e.ErrorCode);return (false, e.ErrorCode, null);}catch (ClientException e){//Console.WriteLine(e.ErrorCode);return (false, e.ErrorCode, null);}}?
總結
以上是生活随笔為你收集整理的.Net Core 阿里云短信服务Demo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BootstrapBlazor实战 Me
- 下一篇: asp.net ajax控件工具集 Au