예제 #1
0
        public async Task <LuosimaoSendResult> SendCodeAsync(LuosimaoSmsCode code)
        {
            if (code == null)
            {
                throw new ArgumentNullException(nameof(code));
            }
            if (string.IsNullOrWhiteSpace(_luosimaoAccount.Password))
            {
                throw new ArgumentNullException(nameof(_luosimaoAccount.Password));
            }
            if (string.IsNullOrWhiteSpace(_config.SignName))
            {
                throw new ArgumentNullException(nameof(_config.SignName));
            }

            code.CheckParameters();

            var auth = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes($"api:key-{_luosimaoAccount.Password}"));

            var bizParams = new Dictionary <string, string> {
                { "mobile", code.PhoneNumber }, { "message", $"{code.Content}{_config.SignName}" }
            };

            var content = new FormUrlEncodedContent(bizParams);

            return(await _proxy.SendAsync(auth, content)
                   .Retry(_config.RetryTimes)
                   .Handle().WhenCatch <Exception>(e =>
            {
                _exceptionHandler?.Invoke(e);
                return ReturnAsDefautlResponse();
            }));
        }
예제 #2
0
        public async void SendCodeTest()
        {
            var code = new LuosimaoSmsCode {
                PhoneNumber = "",
                Content     = "模板是12345"
            };

            var response = await _client.SendCodeAsync(code);

            Assert.True(response.Error == 0, JsonConvert.SerializeObject(response));
        }