想要使用阿里雲平台的短信服務,首先要注冊一個阿里雲賬號,由於發送短信消息需要用到短信簽名、短信模板ID(已添加並通過審核)
1、注冊阿里雲賬號(地址:https://www.aliyun.com/)
注冊賬號成功后,可以查看賬號的AccessKey(密鑰),概覽-->Accesskey
2、添加短信簽名和短信模板
登錄阿里雲賬號后,找到管理控制台,搜索短信服務,左邊菜單找到國內信息,添加簽名和模板
1)添加短信簽名
2)添加短信模板
3、短信服務相關引用dll
1)aliyun-net-sdk-core.dll(實現短信服務發送的dll)
2)Newtonsoft.Json.dll(實現方法的返回對象引用的dll)
4、編寫發送短信的源代碼
1)config添加如下配置
<!-- 阿里雲平台短信服務的授權ID、授權密鑰 --> <add key="aliyun.AccessKeyId" value="LTAI4GKbPJhAbs1b5wEFrY4CGb"/> <add key="aliyun.AccessKeySecret" value="2vGPH6ZFa2Gr4VBzcGv5356R6VZu1f1"/>
2) 添加SmsSendHeper 幫助類
/// <summary> /// 短信發送輔助類 /// </summary> public class SMSSendHelper { #region 阿里雲平台短信服務 //獲取配置文件的授權ID、授權密鑰 public static string aliAccessKeyId = ConfigurationManager.AppSettings["aliyun.AccessKeyId"]; public static string aliAccessKeySecret = ConfigurationManager.AppSettings["aliyun.AccessKeySecret"]; /// <summary> /// 發送手機短信驗證碼(阿里雲平台) /// </summary> /// <param name="mobile">接收手機</param> /// <param name="signName">短信簽名</param> /// <param name="tempCode">短信模板ID</param> /// <param name="mobileCode">短信驗證碼</param> /// <returns></returns> public static bool SendMobileMessageByAli(string mobile,string signName,string tempCode,string mobileCode) { //拼接讀短信目標變量值 "{\"code\":\"1234\"}" string tempParam = "{'code"+"':"+ mobileCode+"}"; //發送短信並返回結果 JObject result = SendMessageByAliSms(aliAccessKeyId, aliAccessKeySecret, mobile,signName,tempCode, tempParam); //返回代碼 if (result["Code"].ToString().ToLower() == "ok") { return true; } else { return false; } } /// <summary> /// 發送手機短信信息(通過阿里雲SDK) /// </summary> /// <param name="aliAccessKey">授權id(阿里雲賬號的AccessKeyId )</param> /// <param name="aliAccessSecret">授權密鑰(阿里雲賬號的AccessKeySecret)</param> /// <param name="phoneNumber">接收手機號(多個用逗號隔開)</param> /// <param name="signName">短信簽名</param> /// <param name="tempCode">短信模板ID</param> /// <param name="tempParam">短信模板變量</param> /// <returns></returns> public static JObject SendMessageByAliSms(string aliAccessKey, string aliAccessSecret,string phoneNumber, string signName, string tempCode, string tempParam) { //返回結果對象 JObject result = new JObject(); //接口文檔(里面有sdk):https://help.aliyun.com/product/44282.html?spm=5176.12226155.0.0.33ac1cbeMfrIwkhttps://home.firefoxchina.cn IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", aliAccessKey, aliAccessSecret); //cn-hangzhou: 默認節點 DefaultAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); request.Method = MethodType.POST; //請求方式 request.Domain = "dysmsapi.aliyuncs.com"; //請求域名 request.Version = "2017-05-25"; //請求版本 request.Action = "SendSms"; //請求操作 request.AddQueryParameters("PhoneNumbers", phoneNumber); request.AddQueryParameters("SignName", signName); request.AddQueryParameters("TemplateCode", tempCode); request.AddQueryParameters("TemplateParam", tempParam); try { //發送請求請返回響應 CommonResponse response = client.GetCommonResponse(request); //獲取返回的內容 string content = Encoding.Default.GetString(response.HttpResponse.Content); //序列化成對象(Code: 請求狀態碼,Message:狀態碼描述,BizId:發送回執ID, RequestId: 請求ID) result = (JObject)JsonConvert.DeserializeObject(content); } catch (ServerException e) { result.Add("Code","500"); result.Add("Message","短信服務異常:"+ e.Message); } catch (ClientException e) { result.Add("Code", "501"); result.Add("Message", "客戶端異常:"+ e.Message); } return result; } #endregion }
5、調用發送短信幫助類方法
//測試發送短信驗證碼(阿里雲) bool isSuccess = SMSSendHelper.SendMobileMessageByAli("13822074174", "珠海德加雲", "SMS_189485372","321234");
6、收到短信驗證碼
參考網站:
https://www.cnblogs.com/shanfeng1000/p/11751315.html
https://blog.csdn.net/weixin_44484756/article/details/106180736