.net core webapi 使用短息模板dome

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41600552/article/details/83588959
短息模板引用的dll

        const String product = "Dysmsapi";
        //产品域名,开发者无需替换
        const String domain = "dysmsapi.aliyuncs.com";

        // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
        const String accessKeyId = "LTAIF7R4BvL9hVV0";
        const String accessKeySecret = "uAWf4dIXny3sRZ923zzqWYTHX0icII";

  下面是方法

       /// <summary>
        /// 短息接口
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="factory"></param>
        /// <param name="user"></param>
        /// <returns></returns>

        [HttpPost("api/SendSMSController/sendsms")]
        
        public SendSmsResponse SendSms(string mobile, string factory, string user)
        {
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);
            SendSmsRequest request = new SendSmsRequest();
            SendSmsResponse response = new SendSmsResponse ();

            //生成 验证码
            Random rd = new Random();
            int num = rd.Next(100000, 1000000);
            try
            {

                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = mobile;   //手机号
                //必填:短信签名-可在短信控制台中找到
                request.SignName = "短息名称自定义";
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = "提供的I模板D";

                //${factory}的${user},电话${mobile},正在操作物权转移一批车辆给您,验证码是${code},请收到验证码后与${factory}相关人员核实!
                //${factory}的${user}正在操作转移一批车辆给您,提醒码是${text},请与相关人员核实!

               //通过模板设置参数

              var msg = new
                {
                    factory = factory,
                    user = user,
                    mobile = mobile,
                    text = num
                };
                var jsdata = JsonConvert.SerializeObject(msg);

                CaptchaBll.Add(num.ToString(), mobile,20);//存入数据库验证码表

扫描二维码关注公众号,回复: 3865768 查看本文章

                request.TemplateParam = jsdata;
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = "yourOutId";
                //请求失败这里会抛ClientException异常
                response = acsClient.GetAcsResponse(request);

            }
            catch (ServerException e)
            {
                Console.WriteLine(e.ErrorCode);
            }
            catch (ClientException e)
            {
                Console.WriteLine(e.ErrorCode);
            }
           
            return response;

        }
 

猜你喜欢

转载自blog.csdn.net/weixin_41600552/article/details/83588959