使用阿里云短信功能

使用前,需要在阿里云平台申请key,以及短信模板

    /// <summary>
    /// 短信发送类
    /// </summary>
    public class AliyunSmsSender
    {
        /// <summary>
        /// 短信的密钥KeyId
        /// </summary>
        private string accessKeyId = "***********";
        /// <summary>
        /// 短信的密钥KeySecret
        /// </summary>
        /// </summary>
        private string accessKeySecret = "***********";

        /// <summary>
        /// 签名
        /// </summary>
        private string SignName = "***********";
        /// <summary>
        /// 短信模板
        /// </summary>
        private string TemplateCode = "SMS_***********";


        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="accessKeyId">短信的密钥KeyId</param>
        /// <param name="accessKeySecret">短信的密钥KeySecret</param>
        /// <param name="SignName">签名</param>
        /// <param name="TemplateCode">短信模板</param>
        public AliyunSmsSender(string accessKeyId, string accessKeySecret, string SignName, string TemplateCode)
        {
            this.accessKeyId = accessKeyId;
            this.accessKeySecret = accessKeySecret;
            this.SignName = SignName;
            this.TemplateCode = TemplateCode;
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="accessKeyId">短信的密钥KeyId</param>
        /// <param name="accessKeySecret">短信的密钥KeySecret</param>
        public AliyunSmsSender(string accessKeyId, string accessKeySecret)
        {
            this.accessKeyId = accessKeyId;
            this.accessKeySecret = accessKeySecret;
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="accessKeyId">短信的密钥KeyId</param>
        /// <param name="accessKeySecret">短信的密钥KeySecret</param>
        /// <param name="SignName">签名</param>
        public AliyunSmsSender(string accessKeyId, string accessKeySecret, string SignName)
        {
            this.accessKeyId = accessKeyId;
            this.accessKeySecret = accessKeySecret;
            this.SignName = SignName;
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        public AliyunSmsSender()
        {

        }


        /// <summary>
        /// 发送短信
        /// </summary>
        public bool SendSMS<T>(Dictionary<string, T> Template)
        {
            bool retVlaue = true;
            try
            {
                List<string> signnamelist = new List<string>();
                for (int i = 0; i < Template.Count; i++)
                {
                    signnamelist.Add(SignName);
                }
                TemplateClass templateClass = new TemplateClass(
                    JsonConvert.SerializeObject(Template.Keys),
                    JsonConvert.SerializeObject(signnamelist),
                    TemplateCode,
                    JsonConvert.SerializeObject(Template.Values)
                    );
                //   SendSMS(templateClass);
            }
            catch (Exception ex)
            {
                retVlaue = false;
                Console.WriteLine(ex.Message);
            }
            return retVlaue;
        }

        /// <summary>
        /// 发送短信
        /// </summary>
        public bool SendSMS<T1, T2>(Dictionary<T1, T2> Template)
        {
            bool retVlaue = true;
            try
            {

                List<string> signnamelist = new List<string>();
                for (int i = 0; i < Template.Count; i++)
                {
                    signnamelist.Add(SignName);
                }
                TemplateClass templateClass = new TemplateClass(
                    JsonConvert.SerializeObject(Template.Keys),
                    JsonConvert.SerializeObject(signnamelist),
                    TemplateCode,
                    JsonConvert.SerializeObject(Template.Values)
                    );
                SendSMS(templateClass);
            }
            catch (Exception ex)
            {
                retVlaue = false;
                Console.WriteLine(ex.Message);
            }
            return retVlaue;
        }
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <returns></returns>
        public bool SendSMS(TemplateClass templateClass)
        {
            bool retVlaue = true;
            try
            {
                AlibabaCloud.SDK.Dysmsapi20170525.Client client = CreateClient(accessKeyId, accessKeySecret);
                AlibabaCloud.SDK.Dysmsapi20170525.Models.SendBatchSmsRequest sendBatchSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendBatchSmsRequest
                {
                    PhoneNumberJson = templateClass.PhoneNumberJson,
                    SignNameJson = templateClass.SignNameJson,
                    TemplateCode = templateClass.TemplateCode,
                    TemplateParamJson = templateClass.TemplateParamJson
                };
                // 复制代码运行请自行打印 API 的返回值
                client.SendBatchSms(sendBatchSmsRequest);

            }
            catch (Exception ex)
            {

                retVlaue = false;
                Console.WriteLine(ex.Message);
            }
            return retVlaue;
        }

        /**
      * 使用AK&SK初始化账号Client
      * @param accessKeyId
      * @param accessKeySecret
      * @return Client
      * @throws Exception
      */
        public static AlibabaCloud.SDK.Dysmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret)
        {
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
            {
                // 您的AccessKey ID
                AccessKeyId = accessKeyId,
                // 您的AccessKey Secret
                AccessKeySecret = accessKeySecret,
            };
            // 访问的域名
            config.Endpoint = "dysmsapi.aliyuncs.com";
            return new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);
        }

    }
    /// <summary>
    /// 发送短信基本信息
    /// </summary>
    public class TemplateClass
    {
        /// <summary>
        /// 作者:陈朋
        /// 创建时间:2022-02-25
        /// 构造函数
        /// </summary>
        public TemplateClass()
        {

        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="_PhoneNumberJson"></param>
        /// <param name="_SignNameJson"></param>
        /// <param name="_TemplateCode"></param>
        /// <param name="_TemplateParamJson"></param>
        public TemplateClass(string _PhoneNumberJson, string _SignNameJson, string _TemplateCode, string _TemplateParamJson)
        {
            this.PhoneNumberJson = _PhoneNumberJson;
            this.SignNameJson = _SignNameJson;
            this.TemplateCode = _TemplateCode;
            this.TemplateParamJson = _TemplateParamJson;
        }
        /// <summary>
        /// 电话
        /// </summary>
        public string PhoneNumberJson { get; set; }
        /// <summary>
        /// 签名
        /// </summary>
        public string SignNameJson { get; set; }
        /// <summary>
        /// 模板
        /// </summary>
        public string TemplateCode { get; set; }
        /// <summary>
        /// 参数
        /// </summary>
        public string TemplateParamJson { get; set; }


    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值