Exemplo n.º 1
0
        public Task <SendResult> SendTemplateMessageAsync(TemplateMessage message)
        {
            //没有模板数据也允许发送
            //if (message.Data == null || message.Data.Count == 0)
            //{
            //    throw new ArgumentNullException("message.Data");
            //}

            if (string.IsNullOrEmpty(message.SignName))
            {
                throw new ArgumentNullException("message.SignName");
            }

            var req = new AlibabaAliqinFcSmsNumSendRequest
            {
                Extend          = message.ExtendParam,
                SmsType         = "normal",
                SmsFreeSignName = message.SignName,
                SmsParam        = message.Data == null ? null : SmsHelper.GetSmsParam(message.Data),
                RecNum          = message.Destination,
                SmsTemplateCode = message.TemplateCode,
            };
            var rsp    = _client.Execute(req);
            var result = new SendResult();

            if (rsp.Result != null && rsp.Result.Success)
            {
                result.Success = true;
                Logger.LogFormat(LoggerLevels.Debug, "短信发送成功!Data:{0}", message);
            }
            else
            {
                result.Success      = false;
                result.ErrorMessage = String.Format("ErrCode:{0};ErrMsg:{1};SubErrCode:{2};SubErrMsg:{3};Data:{4}", rsp.ErrCode, rsp.ErrMsg, rsp.SubErrCode, rsp.SubErrMsg, message);
                Logger.Log(LoggerLevels.Error, result.ErrorMessage);
            }
            return(Task.FromResult(result));
        }