zoukankan      html  css  js  c++  java
  • .Net对接阿里云短信平台

    一、在对接阿里云短信平台之前需完成阿里云短信平台短信签名和短信模板的配置,在此不做过多说明,建议采用企业账号的身份申请短信签名和短信模板更容易审核通过一些
           阿里云短信平台地址 https://www.aliyun.com/product/sms?spm=5176.19720258.J_2686872250.7.7b812c4aBro5hF

    二、完成以上配置之后在项目Nuget包中安装:AlibabaCloud.SDK.Dysmsapi20170525

    三、主体代码

            public void SendSms(string PhoneNumbers)
            {
                var verifyCode = GetVerifyCode();
                JObject jObject = new JObject();
                jObject.Add("code", verifyCode);
                AlibabaCloud.SDK.Dysmsapi20170525.Client client = CreateClient("accessKeyId", "accessKeySecret");
                AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest
                {
                    PhoneNumbers = PhoneNumbers,
                    SignName = "SignName",
                    TemplateCode = "TemplateCode",
                    TemplateParam = jObject.ToString()
                };
                SendSmsResponse sendSmsResponse = client.SendSms(sendSmsRequest);
                if (sendSmsResponse.Body.Code == "OK" && sendSmsResponse.Body.Message == "OK")
                {
                    textEdit1.Text = sendSmsResponse.Body.BizId;
                    SetCacheTimeSpan(sendSmsResponse.Body.BizId, verifyCode, 20);
                }
                else if("isv.BUSINESS_LIMIT_CONTROL".Equals(sendSmsResponse.Body.Code))
                {
                    throw new Exception("获取验证码过于频繁");
                }
            }
    
    
            public static AlibabaCloud.SDK.Dysmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret)
            {
                AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
                {
                    AccessKeyId = accessKeyId,
                    AccessKeySecret = accessKeySecret,
                };
                config.Endpoint = "dysmsapi.aliyuncs.com";
                return new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);
            }
    
    
            /// <summary>
            /// 生成6位数随机验证码
            /// </summary>
            /// <returns></returns>
            private static int GetVerifyCode()
            {
                Random random = new Random();
                return random.Next(100000, 999999);
            }
    
            /// <summary>
            /// 设置缓存相对过期时间
            /// </summary>
            /// <param name="cacheKey">key</param>
            /// <param name="objValue">缓存对象</param>
            /// <param name="timeSpan">过期时间(秒)</param>
            public static void SetCacheTimeSpan(string cacheKey, object objValue, long timeSpan)
            {
                System.Web.Caching.Cache objCache = HttpRuntime.Cache;
                objCache.Insert(cacheKey, objValue, null, DateTime.MaxValue, TimeSpan.FromSeconds(timeSpan));
            }
    
    
            /// <summary>
            /// 获取Cache的value
            /// </summary>
            /// <param name="cacheKey"></param>
            /// <returns></returns>
            public object GetCacheValue(string cacheKey)
            {
                System.Web.Caching.Cache objCache = HttpRuntime.Cache;
                return objCache.Get(cacheKey);
            }

    四、调用

                SendSms(PhoneNumbers);
    欢迎评论留言交流
  • 相关阅读:
    powerdesigner得使用放法
    sql sever连接名忘记了该怎么办
    算法第四版 1.2.10
    算法第四版 1.2.8
    算法第四版 1.2.6
    算法第四版 1.2.2
    二分查找递归实现
    关于斐波那契数列和递归
    编写一段代码,打印一个M行N列的二维数组转置。(交换行和列)
    基础实验2-2.1 整数的分类处理 (20分)
  • 原文地址:https://www.cnblogs.com/netlws/p/14883893.html
Copyright © 2011-2022 走看看