Пример #1
0
        public async void SendCodeTest()
        {
            var code = new WeimiSmsCode {
                PhoneNumbers = new List <string> {
                    ""
                },
                TemplateId = ""
            };

            code.TemplateParams.Add(1, "311920");

            var response = await _client.SendCodeAsync(code);

            Assert.NotNull(response);
            Assert.True(response.IsSuccess(), $"{JsonConvert.SerializeObject(response)},{_messageIfError}");
        }
Пример #2
0
        public async Task <WeimiSmsResult> SendCodeAsync(WeimiSmsCode code)
        {
            if (code == null)
            {
                throw new ArgumentNullException(nameof(code));
            }
            if (string.IsNullOrWhiteSpace(_weimiSmsAccount.Uid))
            {
                throw new ArgumentNullException(nameof(_weimiSmsAccount.Uid));
            }
            if (string.IsNullOrWhiteSpace(_weimiSmsAccount.Pas))
            {
                throw new ArgumentNullException(nameof(_weimiSmsAccount.Pas));
            }

            code.CheckParameters();

            var bizParams = new Dictionary <string, string>(code.GetTemplateParams())
            {
                { "uid", _weimiSmsAccount.Uid },
                { "pas", _weimiSmsAccount.Pas },
                { "mob", code.GetPhoneString() },
                { "cid", code.TemplateId },
                { "type", "json" }
            };

            if (!string.IsNullOrWhiteSpace(code.Timing))
            {
                bizParams.Add("timing", code.Timing);
            }

            var content = new FormUrlEncodedContent(bizParams);

            return(await _proxy.SendMessageAsync(content)
                   .Retry(_config.RetryTimes)
                   .Handle().WhenCatch <Exception>(e =>
            {
                _exceptionHandler?.Invoke(e);
                return ReturnAsDefaultResponse();
            }));
        }