public JsonResult SendMessages(List <Message> toSend) { if (toSend == null) { return(Json(new SMSResponse() { Status = 404, Message = "Nema poruka za poslati!" })); } SMSResponse response = new SMSResponse(); Dictionary <Message, bool> sendStatus = new Dictionary <Message, bool>(); try { foreach (Message msg in toSend) { sendStatus.Add(msg, msg.SendMessage()); } BulkInsertStatus insStatus = this.msgRep.InsertMessage(toSend.Select(x => x.MapToMessageDB()).ToList()); BulkDeliveryStatus delivStatus = Message.DetermineMessageDeliveryStatus(sendStatus); response = Message.MessageToDeliver(delivStatus, insStatus); } catch (Exception ex) { ///TODO log exception return(Json(new SMSResponse(500, "Error in saving messages"))); } return(Json(response, JsonRequestBehavior.AllowGet)); }
/// <summary> /// <see cref="ISendShortMessageService.SendShortMessage"/> /// </summary> public SMSResponse SendShortMessage(ShortMessage shortmessage) { SMSResponse response = new SMSResponse(); //CCPRestSDK.CCPRestSDK api = new CCPRestSDK.CCPRestSDK(); ////ip格式如下,不带https:// //bool isInit = api.init(SMSAccountInfo.Instance.SendAdress, // SMSAccountInfo.Instance.CustomizedInfos[Constants.Port]); //api.setAccount(SMSAccountInfo.Instance.AccountSID, // SMSAccountInfo.Instance.AuthToken); //api.setAppId(SMSAccountInfo.Instance.CustomizedInfos[Constants.APPID]); //if (isInit) //{ // var paras = shortmessage.Parameters == null ? // new string[1] { shortmessage.Content } : shortmessage.Parameters; // Dictionary<string, object> retData = // api.SendTemplateSMS(shortmessage.ToPhoneNumber, // SMSAccountInfo.Instance.CustomizedInfos[Constants.TemplateId], paras); // if (string.Equals(retData[STatusCode].ToString(), "000000")) // { // response.statusCode = "200"; // } // else // { // response.statusCode = "403"; // } // response.ResponseData = getDictionaryData(retData); //} //else //{ // response.statusCode = "103"; // response.ResponseData = "初始化失败"; //} return response; }
private static async Task <string> SendSingleTextualSmsAsync(List <string> to) { Console.WriteLine("-------------------------------"); Console.WriteLine("Sending single textual message..."); SendSingleTextualSms smsClient = new SendSingleTextualSms(BASIC_AUTH_CONFIGURATION); SMSTextualRequest request = new SMSTextualRequest { From = FROM, To = to, Text = MESSAGE_TEXT }; SMSResponse smsResponse = await smsClient.ExecuteAsync(request); Console.WriteLine("Sending single textual message complete."); SMSResponseDetails sentMessageInfo = smsResponse.Messages[0]; Console.WriteLine("-------------------------------"); Console.WriteLine("Message ID: " + sentMessageInfo.MessageId); Console.WriteLine("Receiver: " + sentMessageInfo.To); Console.WriteLine("Message status: " + sentMessageInfo.Status.Name); Console.WriteLine("-------------------------------"); return(sentMessageInfo.MessageId); }
/// <summary> /// 发送单条短信 /// </summary> /// <param name="content">短信内容</param> /// <param name="mobile">目标手机号</param> /// <param name="rid">记录ID, 用于返回结果后的后续处理, 非必填</param> /// <param name="filter_nonnumber">是否过滤手机号中包含的非数字字符</param> /// <returns>发送结果</returns> public override SMSResponse send(string content, string mobile, string rid, bool filter_nonnumber) { if (service_key.isNull()) { return(SMSResponse.errorNotInitialized()); } if (content.isNull()) { return(SMSResponse.custom(9900, "传入内容不能为空")); } if (filter_nonnumber) { mobile = mobile.getOnlyNumber(); } if (!mobile.isPhoneNumber()) { return(SMSResponse.custom(9901, "手机号传入有误")); } var sb = new StringBuilder(); sb.Append("apikey="); sb.Append(service_key); sb.Append("&mobile="); sb.Append(mobile); sb.Append("&text="); sb.Append(HttpUtility.UrlEncode(string.Format("【{0}】{1}", sign, content))); if (!rid.isNull()) { sb.Append("&uid=" + rid); } var response = post(Urls.urlSMSSingle(), sb.ToString()); return(getResponse(response)); }
/// <summary> /// 发送语音验证码 /// </summary> /// <param name="auth_code">验证码, 一般为4~6位数字</param> /// <param name="mobile">目标手机号</param> /// <param name="rid">记录ID, 用于返回结果后的后续处理, 非必填</param> /// <param name="filter_nonnumber">是否过滤手机号中包含的非数字字符</param> /// <returns>发送结果</returns> public override SMSResponse sendVoiceAuth(string auth_code, string mobile, string rid, bool filter_nonnumber) { if (service_key.isNull()) { return(SMSResponse.errorNotInitialized()); } if (auth_code.isNull()) { return(SMSResponse.custom(9900, "传入内容不能为空")); } if (filter_nonnumber) { mobile = mobile.getOnlyNumber(); } if (!mobile.isPhoneNumber()) { return(SMSResponse.custom(9901, "手机号传入有误")); } var sb = new StringBuilder(); sb.Append("apikey="); sb.Append(service_key); sb.Append("&mobile="); sb.Append(mobile); sb.Append("&code="); sb.Append(auth_code); if (!rid.isNull()) { sb.Append("&uid=" + rid); } var response = post(Urls.urlAuthCodeVoice(), sb.ToString()); return(getResponse(response)); }
/// <summary> /// 发送单条模板短信 /// </summary> /// <param name="template_id">模板ID</param> /// <param name="pm">模板参数</param> /// <param name="mobile">目标手机号</param> /// <param name="rid">记录ID, 用于返回结果后的后续处理, 非必填</param> /// <param name="filter_nonnumber">是否过滤手机号中包含的非数字字符</param> /// <returns>发送结果</returns> public override SMSResponse sendTemplate(long template_id, Dictionary <string, string> pm, string mobile, string rid, bool filter_nonnumber) { if (service_key.isNull()) { return(SMSResponse.errorNotInitialized()); } if (filter_nonnumber) { mobile = mobile.getOnlyNumber(); } if (!mobile.isPhoneNumber()) { return(SMSResponse.custom(9901, "手机号传入有误")); } var sb = new StringBuilder(); sb.Append("apikey="); sb.Append(service_key); sb.Append("&mobile="); sb.Append(mobile); sb.Append("&tpl_id=" + template_id); sb.Append("&tpl_value=" + HttpUtility.UrlEncode(serializeTemplateParam(pm))); if (!rid.isNull()) { sb.Append("&uid=" + rid); } var response = post(Urls.urlSMSTemplateSingle(), sb.ToString()); return(getResponse(response)); }
/// <summary> /// 发送单条短信 /// </summary> /// <param name="content">短信内容</param> /// <param name="mobile">目标手机号</param> /// <param name="rid">记录ID, 用于返回结果后的后续处理, 非必填</param> /// <param name="filter_nonnumber">是否过滤手机号中包含的非数字字符</param> /// <returns>发送结果</returns> public override SMSResponse send(string content, string mobile, string rid, bool filter_nonnumber) { if (service_key.isNull()) { return(SMSResponse.errorNotInitialized()); } if (content.isNull()) { return(SMSResponse.custom(9900, "传入内容不能为空")); } if (filter_nonnumber) { mobile = mobile.getOnlyNumber(); } if (!mobile.isPhoneNumber()) { return(SMSResponse.custom(9901, "手机号传入有误")); } var send_content = new SMSSendContent(string.Format("【{0}】{1}", sign, content), mobile, service_key, service_secret); //var data = string.Format("UserId={0}&Text64={1}", rid, encodeContent(send_content)); var response = post(textContent(send_content), ""); //var response = post(Urls.urlSMSEncoded() + "?" + data, ""); return(getResponse(response)); }
public async Task <ActionResult <SMSResponse> > SendSingleMessage <T>(T rawRequest) { try { ValuesService valSvc = new ValuesService(); IDictionary <string, string> inputParms = valSvc.GetCollectionFromRaw(rawRequest.ToString().Split("\r\n"), ":"); string service = inputParms["Service"].ToString(); Compose(service); return(await MessageService.SendMessageAsync(inputParms)); } catch (Exception ex) { SMSResponse resp = new SMSResponse() { DiagnosticInformation = string.Empty, ErrorFlag = true, ErrorID = 1, ErrorMessage = ex.Message }; return(new ObjectResult(resp)); } finally { // get rid of the container when done --> tidy up, son //compContainer.Dispose(); GC.Collect(); } }
public static SMSResponse custom(int code, string msg) { var res = new SMSResponse(); res.code = code; res.msg = msg; return(res); }
/// <summary> /// 获取验证码 /// </summary> /// <param name="mobile"></param> /// <returns></returns> public JsonResult GetSMS(string mobile) { if (string.IsNullOrEmpty(mobile) || mobile.Trim().Length < 1) { return(RepReurnError("请输入手机号")); } System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"^1(3|5|7|8)\d{9}$"); if (!regex.IsMatch(mobile)) { return(RepReurnError("手机号错误")); } if (mobile.Trim().Length > 15) { return(RepReurnError("手机号输入错误")); } if (mobile.Trim() == "4654984351984156") { return(RepReurnError("兄弟请收手吧!这样不好.")); } string ip; if (!GetWebClientIp(out ip)) { return(RepReurnError("错误访问")); } MembershipBll bll = new MembershipBll(); SMSResponse rep = new SMSResponse(); int res = bll.GetSMS(mobile.Trim(), ip, ref rep); ILog log = LogManager.GetLogger(this.GetType()); log.Error(string.Format("[{0}-{1}]", rep.error, rep.msg)); if (res == 1) { return(RepReurnOK()); } else if (res == -1) { return(RepReurnError("这个手机号已经被注册")); } else if (res == -2) { return(RepReurnError("获取验证码次数太频繁,请于明日再进行")); } else if (res == -3) { return(RepReurnError("今日获取验证码次数太频繁,已被限制")); } else { return(RepReurnError("获取验证码时出现错误")); } }
private static async Task <string> AdvancedSmsAsync() { Console.WriteLine("-------------------------------"); Console.WriteLine("Sending fully featured textual message with India DLT regional options..."); SendMultipleTextualSmsAdvanced smsClient = new SendMultipleTextualSmsAdvanced(BASIC_AUTH_CONFIGURATION); Destination destination = new Destination { To = TO }; IndiaDltOptions indiaDlt = new IndiaDltOptions(); indiaDlt.ContentTemplateId = "some-content-template-id"; indiaDlt.PrincipalEntityId = "some-principal-entity-id"; RegionalOptions regionalOptions = new RegionalOptions(); regionalOptions.IndiaDlt = indiaDlt; Message message = new Message { From = FROM, Destinations = new List <Destination>(1) { destination }, Text = "Advanced message example with India DLT regional options", Regional = regionalOptions }; SMSAdvancedTextualRequest request = new SMSAdvancedTextualRequest { Messages = new List <Message>(1) { message } }; SMSResponse smsResponse = await smsClient.ExecuteAsync(request); Console.WriteLine("Sending fully featured textual message with India DLT regional options complete."); SMSResponseDetails sentMessageInfo = smsResponse.Messages[0]; Console.WriteLine("-------------------------------"); Console.WriteLine("Message ID: " + sentMessageInfo.MessageId); Console.WriteLine("Receiver: " + sentMessageInfo.To); Console.WriteLine("Message status: " + sentMessageInfo.Status.Name); Console.WriteLine("-------------------------------"); return(sentMessageInfo.MessageId); }
/// <summary> /// Validates the SMS Response, throws an exception if status is non-zero /// </summary> /// <param name="response"></param> /// <exception cref="SmsResponseException">thrown if status of SMS response is non-zero</exception> public static void ValidateSmsResponse(SMSResponse response) { if (response?.messages == null) { throw new SmsResponseException("Unexpected Response from SMS API"); } if (response?.messages[0].status != "0") { throw new SmsResponseException($"SMS Request Failed with status: {response.messages[0].status} and error message: {response.messages[0].error_text}"); } }
private static async Task <string> AdvancedSmsAsync() { Console.WriteLine("-------------------------------"); Console.WriteLine("Sending fully featured textual message with language..."); SendMultipleTextualSmsAdvanced smsClient = new SendMultipleTextualSmsAdvanced(BASIC_AUTH_CONFIGURATION); Destination destination = new Destination { To = TO }; Language language = new Language { LanguageCode = "TR", SingleShift = true, LockingShift = true }; Message message = new Message { From = FROM, Destinations = new List <Destination>(1) { destination }, Text = "Artık Ulusal Dil Tanımlayıcısı ile Türkçe karakterli smslerinizi rahatlıkla iletebilirsiniz.", Language = language, Transliteration = "TURKISH" }; SMSAdvancedTextualRequest request = new SMSAdvancedTextualRequest { Messages = new List <Message>(1) { message } }; SMSResponse smsResponse = await smsClient.ExecuteAsync(request); Console.WriteLine("Sending fully featured textual message with language complete."); SMSResponseDetails sentMessageInfo = smsResponse.Messages[0]; Console.WriteLine("-------------------------------"); Console.WriteLine("Message ID: " + sentMessageInfo.MessageId); Console.WriteLine("Receiver: " + sentMessageInfo.To); Console.WriteLine("Message status: " + sentMessageInfo.Status.Name); Console.WriteLine("-------------------------------"); return(sentMessageInfo.MessageId); }
public async Task <SMSResponse> MakeSMSRequestAsync( DateTime startTimeFilter = default(DateTime)) { var result = await new AndroidSMSAdapter() .GetAllSMS(startTimeFilter) .ConfigureAwait(false); var response = new SMSResponse(); response.AddRange(result); return(response); }
private static async Task <string> AdvancedSmsAsync() { Console.WriteLine("-------------------------------"); Console.WriteLine("Sending fully featured textual message with tracking..."); SendMultipleTextualSmsAdvanced smsClient = new SendMultipleTextualSmsAdvanced(BASIC_AUTH_CONFIGURATION); Destination destination = new Destination { To = TO }; Message message = new Message { From = FROM, Destinations = new List <Destination>(1) { destination }, Text = "Advanced message example with tracking" }; Tracking tracking = new Tracking { Track = "SMS" }; SMSAdvancedTextualRequest request = new SMSAdvancedTextualRequest { Messages = new List <Message>(1) { message }, Tracking = tracking }; SMSResponse smsResponse = await smsClient.ExecuteAsync(request); Console.WriteLine("Sending fully featured textual message with tracking complete."); SMSResponseDetails sentMessageInfo = smsResponse.Messages[0]; Console.WriteLine("-------------------------------"); Console.WriteLine("Message ID: " + sentMessageInfo.MessageId); Console.WriteLine("Receiver: " + sentMessageInfo.To); Console.WriteLine("Message status: " + sentMessageInfo.Status.Name); Console.WriteLine("-------------------------------"); return(sentMessageInfo.MessageId); }
public async Task <IActionResult> UnBindOTP(AccountRequestModel request) { return(NotFound()); SMSResponse response = new SMSResponse(); response = await acc.BindAccount(request, "UnBind"); if (response.phoneNumber == "") { return(NotFound(response)); } return(Ok(response)); }
/// <summary> /// 用户注册时,生成验证码 /// </summary> /// <param name="mobile"></param> /// <returns></returns> public int GetSMS(string mobile, string ip, ref SMSResponse rep) { using (var db = new BFdbContext()) { if (db.tblusers.Any(p => p.Mobile == mobile && p.Status == 0)) { return(-1); } DateTime dt = DateTime.Now.AddDays(-1); int cntt = db.tbluserstime.Count(p => p.RomateIp == ip && p.crtdate >= dt); if (cntt > 10) { return(-3); } int cnt = db.tbluserstime.Count(p => p.Mobile == mobile && p.crtdate >= dt); if (cnt > 10) { return(-2); } tblusers usr = new tblusers(); usr.Mobile = mobile; usr.Passwd = "-"; usr.mono = VerifyCode.Get6SzCode(); usr.Status = 4; usr.Playerid = 0; usr.userid = Guid.NewGuid().ToString(); usr.Isupt = "0"; usr.Type = "0"; int res = db.Insert <tblusers>(usr); tbluserstime tm = new tbluserstime(); tm.crtdate = DateTime.Now; tm.Mobile = mobile; tm.tid = Guid.NewGuid().ToString(); tm.RomateIp = ip; db.Insert <tbluserstime>(tm); if (res > 0) { rep = SMSHepler.SendRegSms(mobile, usr.mono); } return(res); } }
public void SendMessage(string type, string mobile, string verifyCode) { WebUtils webUtils = new WebUtils(); var dic = new Dictionary <string, string>(); dic["type"] = type; dic["mobile"] = mobile; dic["verifyCode"] = verifyCode; SMSResponse result = JsonConvert.DeserializeObject <SMSResponse>(webUtils.DoPost(SystemConfig.SmsServiceUrl, dic)); if (result.code != "0") { throw new BaseException(result.cause); } }
public async Task <IActionResult> VerifyOTP(SMSResponse request) { OTPResultModel response = new OTPResultModel(); dt = await acc.CheckOTP(request.phoneNumber, request.result); if (dt.Rows.Count == 0) { response.message = "mismatch"; return(NotFound(response)); } // await acc.DisableCurrentOTP(request.phoneNumber, request.OTP); response.message = "match"; return(Ok(response)); }
public IActionResult generateOTP([FromBody] GenerateOTP otp) { try { string OTPValue = Common.GenerateOTP(); SMSResponse results = new SMSResponse(); var message = ""; //otp.emailorPhone = "+14087224019"; string SaveOtpValue = Data.User.GenerateOTP(OTPValue, otp); if (SaveOtpValue == "Success") { results = SmsNotification.SendMessage(otp.phone, "Hi User, your OTP is " + OTPValue + " and it's expiry time is 15 minutes."); string status = results.messages[0].status.ToString(); if (status == "0") { message = "Message sent successfully."; } else { string err = results.messages[0].error_text.ToString(); message = err; } return(StatusCode((int)HttpStatusCode.OK, new { message })); } else { return(StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = SaveOtpValue })); } } catch (Exception e) { string SaveErrorLog = Data.Common.SaveErrorLog("generateOTP", e.Message.ToString()); return(StatusCode((int)HttpStatusCode.InternalServerError, new { ErrorMessage = e.Message.ToString() })); } }
private SMSResponse getResponse(JObject response_object) { try { var res = new SMSResponse(); try { res.code = Convert.ToInt32(response_object["code"]); } catch { return(SMSResponse.errorDataFormatError()); } try { res.msg = response_object["msg"].ToString(); } catch { } try { res.count = Convert.ToInt32(response_object["count"]); } catch { } try { res.fee = Convert.ToDouble(response_object["fee"]); } catch { } try { res.unit = response_object["unit"].ToString(); } catch { } try { res.mobile = response_object["mobile"].ToString(); } catch { } try { res.sid = response_object["sid"].ToString(); } catch { } return(res); } catch { } return(SMSResponse.errorDataFormatError()); }
private static async Task <string> AdvancedSmsAsync(string to) { Console.WriteLine("-------------------------------"); Console.WriteLine("Sending fully featured textual message..."); SendMultipleTextualSmsAdvanced smsClient = new SendMultipleTextualSmsAdvanced(BASIC_AUTH_CONFIGURATION); Destination destination = new Destination { To = to }; Message message = new Message { From = FROM, Destinations = new List <Destination>(1) { destination }, Text = "Congratulations, you've won a PassItOn :-)!" }; SMSAdvancedTextualRequest request = new SMSAdvancedTextualRequest { Messages = new List <Message>(1) { message } }; SMSResponse smsResponse = await smsClient.ExecuteAsync(request); Console.WriteLine("Sending fully featured textual message complete."); SMSResponseDetails sentMessageInfo = smsResponse.Messages[0]; Console.WriteLine("-------------------------------"); Console.WriteLine("Message ID: " + sentMessageInfo.MessageId); Console.WriteLine("Receiver: " + sentMessageInfo.To); Console.WriteLine("Message status: " + sentMessageInfo.Status.Name); Console.WriteLine("-------------------------------"); return(sentMessageInfo.MessageId); }
public Task <SMSResponse> SendMessageAsync(IDictionary <string, string> inputParms) { try { SMSResponse resp = new SMSResponse { DiagnosticInformation = "", ErrorMessage = "In Second Service", ErrorFlag = false, ErrorID = 0 }; var response = new TaskCompletionSource <SMSResponse>(); response.SetResult(resp); return(response.Task); } catch (Exception ex) { throw new Exception(ex.Message); } finally { Dispose(); } }
public async Task <IActionResult> Bind(AccountRequestModel request) { acc.REST_KeepLogRequest("", func.JsonSerialize(request)); try { SMSResponse response = new SMSResponse(); response = await acc.BindAccount(request); if (response.phoneNumber == "") { return(NotFound(response)); } return(Ok(response)); } catch (Exception e) { acc.REST_KeepLogRequest(e.Message, func.JsonSerialize(request)); return(BadRequest(e.Message)); } }
public TwiMLResult Respond(SmsRequest incomingMessage) { string message_var = incomingMessage.Body; if (message_var.Trim() == "") { var messagingResponse0 = new MessagingResponse(); messagingResponse0.Message("Invalid Request"); return(TwiML(messagingResponse0)); } var message = message_var.Trim().Split(' '); string code = ""; string damaged = ""; string caked = ""; string missing = ""; int damaged_int = 0; int caked_int = 0; int missing_int = 0; string complaints = ""; if (message.Length > 0) { code = message[0].Trim(); } var messagingResponse_en = new MessagingResponse(); if (code.ToUpper() == "ORDER") { if (message.Length < 2) { messagingResponse_en.Message("Please enter an Order Number for more information."); return(TwiML(messagingResponse_en)); } string sales_doc_number = message[1].Trim(); //GET Specific Order Information messagingResponse_en.Message("ORDER INFORMATION"); return(TwiML(messagingResponse_en)); } else if (code.ToUpper() == "ORDERS") { //GET LAst 5 Orders Information messagingResponse_en.Message("Last 5 Orders"); return(TwiML(messagingResponse_en)); } //CHECK for differenet codes for (int i = 1; i < message.Length; i++) { if (message[i].Trim() != "") { string token = message[i].Trim(); if (token.Substring(0, 1) == "d") { damaged = token.Substring(1, token.Length - 1); } else if (token.Substring(0, 1) == "c") { caked = token.Substring(1, token.Length - 1); } else if (token.Substring(0, 1) == "m") { missing = token.Substring(1, token.Length - 1); } } } complaints = message_var.Replace(code, ""); complaints = complaints.Replace("d" + damaged, ""); complaints = complaints.Replace("c" + caked, ""); complaints = complaints.Replace("m" + missing, ""); complaints = complaints.Trim(); Int32.TryParse(damaged, out damaged_int); Int32.TryParse(caked, out caked_int); Int32.TryParse(missing, out missing_int); using (var db = new ePOD_DBEntities1()) { baseSM previous_sms = db.baseSMS.Where(a => a.code_b == code && a.customer_no == incomingMessage.From).FirstOrDefault(); if (previous_sms == null) { var messagingResponse1 = new MessagingResponse(); messagingResponse1.Message("Invalid Code. Please enter the code that is displayed on the waybill."); return(TwiML(messagingResponse1)); } SMSResponse new_response = new SMSResponse() { caked = caked_int, code_b = code, missing = missing_int, damaged = damaged_int, complaints = complaints, created_on = DateTime.Now, sms_request_id = previous_sms.Id }; db.SMSResponses.Add(new_response); db.SaveChanges(); } var messagingResponse = new MessagingResponse(); messagingResponse.Message("Thank you for your response. We are happy to serve you."); return(TwiML(messagingResponse)); }
public async Task <ActionResult> Register(RegisterViewModel model) { //if (model.Aviso == false) //{ // ViewBag.showSuccessAlert = true; // ModelState.AddModelError("", "¡Oops! Aun no has aceptado el aviso de privacidad."); //} if (string.IsNullOrWhiteSpace(model.Email) && string.IsNullOrWhiteSpace(model.PhoneNumber) || string.IsNullOrEmpty(model.Password) && string.IsNullOrEmpty(model.ConfirmPassword)) { ModelState.AddModelError("", "¡Oops! Aun te queda información por capturar. Inténtalo de nuevo"); } else { // Validamos estructura del password ingresado. var mayus = model.Password.Any(c => char.IsUpper(c)); var min = model.Password.Any(c => char.IsLower(c)); var num = model.Password.Any(c => char.IsDigit(c)); var symbol = model.Password.Any(c => char.IsLetterOrDigit(c)); if (mayus == false || min == false || num == false || symbol == false) { ModelState.AddModelError("", "¡Oops! la contraseña no cumple con los requisitos: Necesitas una minúscula, una mayúscula y un número. Inténtalo de nuevo."); } if (ModelState.IsValid) { //var Correo = from[""]; //var correo = Convert.ToInt32(model.Email); if (string.IsNullOrWhiteSpace(model.Email)) // Válidación de usuario por # de telefono. { String NumberPhone = model.PhoneNumber.Substring(0, 10); String Voice = model.PhoneNumber.Substring(10); String ValidaVoz = ConfigurationManager.AppSettings["ClaveVoz"]; Voice.ToLower(); var userphone = new ApplicationUser { UserName = NumberPhone, PhoneNumber = NumberPhone }; userphone.PhoneNumberConfirmed = true; userphone.Email = userphone.PhoneNumber + "@p.com"; var resultphone = await UserManager.CreateAsync(userphone, model.Password); if (resultphone.Succeeded) { // Generar el token y enviarlo var code = await UserManager.GenerateChangePhoneNumberTokenAsync(userphone.Id, NumberPhone); var phone = userphone.PhoneNumber.ToString(); List <string> Destino = new List <string>(1) { ConfigurationManager.AppSettings["Lada"] + phone }; if (Voice == ValidaVoz) // Indicador de mensaje de voz al candidato. { string[] result = Regex.Split(code, ""); // Separamos los numeros del codigo obtenido para enviarlos al mensaje de voz. string Codigo = ""; for (int i = 0; i < result.Length; i++) { if (i > 0 && i < 7) { Codigo = Codigo + result[i] + " "; } } var client = new RestClient("https://api.infobip.com/tts/3/single"); var requestvoice = new RestRequest(Method.POST); requestvoice.AddHeader("accept", "application/json"); requestvoice.AddHeader("content-type", "application/json"); requestvoice.AddHeader("authorization", "Basic " + ConfigurationManager.AppSettings["InfobipToken"]); requestvoice.AddParameter("application/json", "{\n \"from\": \"523323053385\",\n \"to\": \"" + ConfigurationManager.AppSettings["Lada"] + phone + "\",\n \"text\": \"Tu código es: " + Codigo + " Tu código es: " + Codigo + "\",\n \"language\": \"" + ConfigurationManager.AppSettings["LanguajeCode"] + "\"\"speechRate\": 0.5,\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(requestvoice); } else { // Msj con SMS. BasicAuthConfiguration BASIC_AUTH_CONFIGURATION = new BasicAuthConfiguration(ConfigurationManager.AppSettings["BaseUrl"], ConfigurationManager.AppSettings["UserInfobip"], ConfigurationManager.AppSettings["PassInfobip"]); SendSingleTextualSms smsClient = new SendSingleTextualSms(BASIC_AUTH_CONFIGURATION); SMSTextualRequest request = new SMSTextualRequest { From = "Damsa", To = Destino, Text = ConfigurationManager.AppSettings["NameAppMsj"] + " te envia tu código de verificacion: " + code }; // Msj de voz. SMSResponse smsResponse = await smsClient.ExecuteAsync(request); // Manda el mensaje con código. SMSResponseDetails sentMessageInfo = smsResponse.Messages[0]; } return(RedirectToAction("ConfirmPhone", "Account", new { PhoneNumber = NumberPhone, idtf = userphone.Id })); //if (UserManager.SmsService != null) //{ // var message = new IdentityMessage // { // Destination = model.PhoneNumber, // Body = "Su código de seguridad es: " + code // }; // await UserManager.SmsService.SendAsync(message); //} //return RedirectToAction("VerifyPhone", "Account"); //return RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.PhoneNumber }); //return RedirectToAction("Confirm", "Account", new { Email = user.Email }); //return RedirectToAction("RegistrarNumero", "Account"); } } else // Validación de usuario por e-mail. { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; user.Email = model.Email; user.PhoneNumber = model.PhoneNumber; //user.EmailConfirmed = true; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { System.Net.Mail.MailMessage m = new System.Net.Mail.MailMessage( new System.Net.Mail.MailAddress("*****@*****.**", "DAMSA Registro"), new System.Net.Mail.MailAddress(user.Email)); m.Subject = "Confirmación Email"; //m.Body = string.Format("<BR/>Gracias por su registro, por favor haga clic en el siguiente enlace para completar su registro: <a href=\"{0}\" title=\"User Email Confirm\">{0}</a>", "http://sagainn.com.mx:" + puerto + "/DatosContacto/" + user.Id); m.Body = string.Format("Para {0}<BR/>Gracias por su registro, por favor haga clic en el siguiente enlace para completar su registro: <a href=\"{1}\" title=\"User Email Confirm\">{1}</a>", user.UserName, Url.Action("ConfirmEmail", "Account", new { Token = user.Id, Email = user.Email }, Request.Url.Scheme)); m.IsBodyHtml = true; System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(ConfigurationManager.AppSettings["SmtpDamsa"], Convert.ToInt16(ConfigurationManager.AppSettings["SMTPPort"])); smtp.EnableSsl = true; smtp.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["UserDamsa"], ConfigurationManager.AppSettings["PassDamsa"]); smtp.Send(m); return(RedirectToAction("Confirm", "Account", new { Email = user.Email })); } else { AddErrors(result); } } } } // If we got this far, something failed, redisplay form //return RedirectToAction("VerifyPhoneNumber2", "Account"); return(View(model)); //return RedirectToAction("AddPhoneNumber", "Account"); }
private void Main_Load(object sender, EventArgs e) { smsResponseDelegate = new SMSResponse(BindResponse); chkBrokenConDelegate = new CheckConnection(ConnectBrokenConnection); }
public IActionResult SmsOTP(string PhoneNumber) { try { string OTPValue = Common.GenerateOTP(); SMSResponse results = new SMSResponse(); //results = SmsNotification.SendMessage(PhoneNumber, "Hi User, your OTP is" + OTPValue + "and it's expiry time is 5 minutes.").ToString(); //// results = SmsNotification.SendMessage(userlogin.PhoneNumber, "Hi User, your OTP is" + OTPValue + "and it's expiry time is 5 minutes.").Status.ToString(); var SmsStatus = ""; //if (results == "RanToCompletion") //{ // string SaveOtpValue = Data.Common.SaveOTP("4560123045", OTPValue, "Phone"); // SmsStatus = "Message sent successfully."; //} //else //{ // SmsStatus = "Message not sent.."; //} PhoneNumber = "+14087224019"; string SaveOtpValue = Data.Common.SaveOTP(PhoneNumber, OTPValue, "Phone"); if (SaveOtpValue == "Success") { //SMSResponse results = SmsNotification.SendMessage(PhoneNumber, "Hi User, your OTP is " + OTPValue + " and it's expiry time is 5 minutes."); results = SmsNotification.SendMessage(PhoneNumber, "Hi User, your OTP is " + OTPValue + " and it's expiry time is 5 minutes."); string status = results.messages[0].status.ToString(); if (status == "0") { SmsStatus = "Message sent successfully."; } else { string err = results.messages[0].error_text.ToString(); SmsStatus = err; } // results = SmsNotification.SendMessage(PhoneNumber, "Hi User, your OTP is " + OTPValue + " and it's expiry time is 5 minutes."); //var res = new List<SMSResponseDetail>(); //res = results.messages; return(StatusCode((int)HttpStatusCode.OK, new { SmsStatus })); //results.messages, } else { return(StatusCode((int)HttpStatusCode.Forbidden, new { error = new { message = "Phone number not available" } })); } } catch (Exception e) { string SaveErrorLog = Data.Common.SaveErrorLog("SmsOTP", e.Message.ToString()); return(StatusCode((int)HttpStatusCode.InternalServerError, new { error = new { message = e.Message.ToString() } })); } }
public async override Task RunExampleAsync() { Console.WriteLine("-------------------------------"); Console.WriteLine("Sending scheduled fully featured textual message..."); SMSResponse smsResponse = await SendScheduledMessageAsync(); String bulkId = smsResponse.BulkId; SMSResponseDetails sentMessageInfo = smsResponse.Messages[0]; Console.WriteLine("Sending scheduled fully featured textual message complete."); Console.WriteLine("-------------------------------"); Console.WriteLine("Scheduled SMS"); Console.WriteLine("Message ID: " + sentMessageInfo.MessageId); Console.WriteLine("Bulk ID: " + bulkId); Console.WriteLine("Receiver: " + sentMessageInfo.To); Console.WriteLine("Message status: " + sentMessageInfo.Status.Name); Console.WriteLine("-------------------------------"); System.Threading.Thread.Sleep(1000); BulkResponse bulkResponse = await GetBulkAsync(bulkId); Console.WriteLine("Fetched scheduling date."); Console.WriteLine("Bulk ID: " + bulkResponse.BulkId); Console.WriteLine("SendAt: " + bulkResponse.SendAt); Console.WriteLine("-------------------------------"); RescheduleMessageAsync(bulkId); Console.WriteLine("Rescheduling message."); Console.WriteLine("-------------------------------"); System.Threading.Thread.Sleep(1000); bulkResponse = await GetBulkAsync(bulkId); Console.WriteLine("Fetched scheduling date after rescheduling."); Console.WriteLine("Bulk ID: " + bulkResponse.BulkId); Console.WriteLine("SendAt: " + bulkResponse.SendAt); Console.WriteLine("-------------------------------"); System.Threading.Thread.Sleep(1000); BulkStatusResponse statusResponse = await GetBulkStatusAsync(bulkId); Console.WriteLine("Fetched bulk status."); Console.WriteLine("Bulk status: " + statusResponse.Status); Console.WriteLine("-------------------------------"); if (statusResponse.Status == BulkStatus.PENDING) { Console.WriteLine("Fetched bulk is in PENDING status, attempting to cancel bulk."); Console.WriteLine("-------------------------------"); CancelBulkStatusAsync(bulkId); statusResponse = await GetBulkStatusAsync(bulkId); Console.WriteLine("Fetched bulk status after cancelation."); Console.WriteLine("Bulk status: " + statusResponse.Status); } else { Console.WriteLine("Fetched bulk is not in PENDING status, aborting update."); } Console.WriteLine("-------------------------------"); }
public int DichVu(DatabaseConstant.Action action, ref DICHVU objDichVu, ref List <ClientResponseDetail> listClientResponseDetail) { SMSServiceClient client = null; SMSRequest request = null; SMSResponse response = null; int iret = 1; try { // Kiểm tra kết nối, server, service trước khi request Common.Utilities.IsRequestAllow(ApplicationConstant.SystemService.SMSService.layGiaTri()); client = SMSServiceClient(ApplicationConstant.SystemService.SMSService); request = Common.Utilities.PrepareRequest(new SMSRequest()); response = new SMSResponse(); //Khởi tạo request request.Function = DatabaseConstant.Function.SMS_DANG_KY_DVU; request.Action = action; request.objDichVu = objDichVu; // make a call to service client here response = client.SMS(request); //Kiểm tra kết quả trả về Common.Utilities.ValidResponse(request, response); if (response == null) { iret = 0; } else { listClientResponseDetail = Common.Utilities.convertToClientResponseDetail(response); objDichVu = response.objDichVu; if (response.ResponseStatus.Equals(ApplicationConstant.ResponseStatus.THANH_CONG)) { iret = 1; } else { iret = 0; } } } catch (Exception ex) { iret = 0; LLogging.WriteLog(System.Reflection.MethodInfo.GetCurrentMethod().ToString(), LLogging.LogType.ERR, ex); throw ex; } finally { if (client.State == CommunicationState.Faulted) { client.Abort(); } else { client.Close(); } client = null; request = null; response = null; } return(iret); }
private SMSResponse getResponse(JObject response_object) { try { var res = new SMSResponse(); try { res.code = Convert.ToInt32(response_object["returnstatus"]); } catch { res.code = -1; } try { res.code = Convert.ToInt32(response_object["StatusCode"]); } catch { res.code = -1; } if (res.code == -1) { return(SMSResponse.errorDataFormatError()); } try { res.msg = response_object["message"].ToString(); } catch { } try { res.msg = response_object["Description"].ToString(); } catch { } try { res.count = Convert.ToInt32(response_object["successCounts"]); } catch { } try { res.count = Convert.ToInt32(response_object["SuccessCounts"]); } catch { } try { res.balance = Convert.ToDouble(response_object["remainpoint"]); } catch { } try { res.balance = Convert.ToDouble(response_object["Amount"]); } catch { } try { res.sid = response_object["taskID"].ToString(); } catch { } try { res.sid = response_object["MsgId"].ToString(); } catch { } return(res); } catch { } return(SMSResponse.errorDataFormatError()); }