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);
    欢迎评论留言交流
  • 相关阅读:
    随笔 JS 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里
    phpmyadmin查看创建表的SQL语句
    thinkphp 3.2响应头 x-powered-by 修改
    Centos 7.0查看硬盘使用情况 命令
    centos 7.0安装花生壳
    centos 7.0 菜鸟接触命令 记录
    centos 7.0 ssh 登陆
    Sphinx 2.2.6 window下安装全过程 未完 持续标记~~~~
    c#多线程编程实战(原书第二版)文摘
    分布式锁的几种实现方式(转)
  • 原文地址:https://www.cnblogs.com/netlws/p/14883893.html
Copyright © 2011-2022 走看看