C#使用阿里雲平台模擬發送短信消息(驗證碼)


想要使用阿里雲平台的短信服務,首先要注冊一個阿里雲賬號,由於發送短信消息需要用到短信簽名、短信模板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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM