Exemplo n.º 1
0
        public async void SendTest()
        {
            var message = new ChuangLanSmsMessage()
            {
                Content      = "亲爱的会员,您在03月03日的测试店铺的服务项目已经预约成功,请关注【xxxxx】公众号,查看预约详情。",
                PhoneNumbers = new List <string>()
                {
                    ""
                }
            };

            var response = await _client.SendAsync(message);

            Assert.NotNull(response);
            Assert.True(response.Code == "0", JsonConvert.SerializeObject(response));
        }
Exemplo n.º 2
0
        public async Task <ResponseData> SendAsync(ChuangLanSmsMessage message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (_config.UseMarketingSms)
            {
                _chuangLanMarketingAccount.CheckParameters();
            }
            else
            {
                _chuangLanCodeAccount.CheckParameters();
            }

            message.CheckParameters();

            var bizParams = new SortedDictionary <string, string>()
            {
                {
                    "account",
                    _config.UseMarketingSms ? _chuangLanMarketingAccount.SmsUser : _chuangLanCodeAccount.SmsUser
                },
                {
                    "password",
                    _config.UseMarketingSms ? _chuangLanMarketingAccount.SmsKey : _chuangLanCodeAccount.SmsKey
                },
                {
                    "msg", message.Content
                },
                { "phone", message.GetPhoneString() },
            };

            if (message.SendTime.HasValue)
            {
                bizParams.Add("sendtime", message.SendTime.Value.ToString("yyyyMMddHHmm"));
            }

            if (message.Report.HasValue && message.Report.Value)
            {
                bizParams.Add("report", "true");
            }

            if (!string.IsNullOrWhiteSpace(message.Extend))
            {
                bizParams.Add("extend", message.Extend);
            }

            if (!string.IsNullOrWhiteSpace(message.Uid))
            {
                bizParams.Add("uid", message.Uid);
            }

            _proxy.ApiConfig.HttpHost = new Uri(_config.UseMarketingSms?_chuangLanMarketingAccount.ApiUrl:_chuangLanCodeAccount.ApiUrl);
            return(await _proxy.SendMessageAsync(bizParams)
                   .Retry(_config.RetryTimes)
                   .Handle().WhenCatch <Exception>(e =>
            {
                _exceptionHandler?.Invoke(e);
                return ReturnAsDefautlResponse();
            }));
        }