Ejemplo n.º 1
0
        /// <summary>
        /// 批量发送消息模板
        /// </summary>
        /// <param name="input">模板消息</param>
        /// <returns></returns>
        public Task <SmsResult> SendBatchTemplateMessageAsync(SendBatchTemplateMessageInput input)
        {
            var client    = new AliyunSmsClient();
            var acsClient = client.AcsClient;
            var request   = new SendBatchSmsRequest();
            var result    = new SmsResult();

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumberJson = JsonConvert.SerializeObject(input.SendTemplateMessageInputs.Select(a => a.PhoneNumber).ToList());
                //必填:短信签名-可在短信控制台中找到
                request.SignNameJson = JsonConvert.SerializeObject(input.SendTemplateMessageInputs.Select(a => a.PhoneNumber).ToList());
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = input.TemplateCode;
                //可选:模板中的变量替换JSON串
                if (input.HaveParm)
                {
                    request.TemplateParamJson = JsonConvert.SerializeObject(input.SendTemplateMessageInputs.Select(a => a.ToString()).ToList());
                }

                //请求失败这里会抛ClientException异常
                var sendSmsResponse = acsClient.GetAcsResponse(request);
                //发送成功判断
                if ("OK".Equals(sendSmsResponse.Code, StringComparison.CurrentCultureIgnoreCase))
                {
                    result.Success = true;
                }
                else
                {
                    result.Success      = false;
                    result.ErrorMessage = sendSmsResponse.Message;
                }
            }
            catch (ClientException e)
            {
                AliyunSmsHelper.LoggerAction("Error", e.ToString());
                result.Success      = false;
                result.ErrorMessage = e.ErrorMessage;
            }
            catch (Exception e)
            {
                AliyunSmsHelper.LoggerAction("Error", e.ToString());
                result.Success      = false;
                result.ErrorMessage = e.Message;
            }
            return(Task.FromResult(result));
        }
 /// <summary>
 /// 批量发送消息模板
 /// </summary>
 /// <param name="phone"></param>
 /// <param name="message"></param>
 /// <returns></returns>
 public async Task <SmsResult> SendBatchTemplateMessageAsync(SendBatchTemplateMessageInput input)
 {
     return(await SmsService.SendBatchTemplateMessageAsync(input));
 }