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);
    欢迎评论留言交流
  • 相关阅读:
    第一章 快速入门
    增量式PID控制算法
    第二章 变量和基本类型
    位置式PID和增量式PID区别?
    I2C
    Linux系统进程调用列表
    Linux下I/O模型
    Linux下多路复用接口
    新浪博客网页编辑器PHP版带有上传图片功能
    晕死!博客园把我搞晕了!
  • 原文地址:https://www.cnblogs.com/netlws/p/14883893.html
Copyright © 2011-2022 走看看