Esempio n. 1
0
        public Msg91ApiResponse SendOtpSms(Msg91SmsOtpRequest smsRequest)
        {
            Msg91ApiResponse msg91ApiResponse = new Msg91ApiResponse()
            {
                StatusCode = 200
            };
            string url = _msg91ServiceConfiguration.SendOtpApiUrl + Msg91Constant.SEND_OTP_SMS_URL;

            Dictionary <string, string> requestHeader = new Dictionary <string, string>();

            requestHeader.Add("Content-Type", "application/x-www-form-urlencoded");

            Dictionary <string, string> queryParameter = new Dictionary <string, string>();

            queryParameter.Add("authkey", _msg91ServiceConfiguration.AuthKey);
            queryParameter.Add("sender", _msg91ServiceConfiguration.SenderId);
            queryParameter.Add("mobile", smsRequest.mobile.ToString());
            queryParameter.Add("otp", smsRequest.otp.ToString());

            if (!string.IsNullOrWhiteSpace(smsRequest.email))
            {
                queryParameter.Add("email", smsRequest.email);
            }
            if (smsRequest.otp_expiry > 0)
            {
                queryParameter.Add("otp_expiry", smsRequest.otp_expiry.ToString());
            }
            if (smsRequest.otp_length > 0)
            {
                queryParameter.Add("otp_length", smsRequest.otp_length.ToString());
            }
            if (!string.IsNullOrWhiteSpace(smsRequest.template_id))
            {
                queryParameter.Add("template_id", smsRequest.template_id);
            }

            BaseHttpWebResponse httpWebResponse = _httpWebRequestHandler.Post(url, null, requestHeader, queryParameter);

            if (httpWebResponse != null)
            {
                msg91ApiResponse.StatusCode      = httpWebResponse.StatusCode;
                msg91ApiResponse.MessageResponse = StringUtility.ConvertJsonToObject <BaseResponse>(httpWebResponse.Response);
            }
            else
            {
                msg91ApiResponse.StatusCode = 400;
            }
            return(msg91ApiResponse);
        }
        public SmsApiResponse SendOtpSms(SmsOtpRequest smsRequest)
        {
            SmsApiResponse smsApiResponse = new SmsApiResponse()
            {
                StatusCode = 200
            };

            if (smsRequest != null)
            {
                if (string.IsNullOrWhiteSpace(smsRequest.Mobile))
                {
                    smsApiResponse.StatusCode = 400;
                    smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, nameof(smsRequest.Mobile) + " is required.", nameof(smsRequest.Mobile));
                    return(smsApiResponse);
                }

                if (!Regex.IsMatch(smsRequest.Mobile, RegexPattern.mobile_number_validation_Patterns.GetCombinedPattern()))
                {
                    smsApiResponse.StatusCode = 400;
                    smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, nameof(smsRequest.Mobile) + " should be valid. Format -: xxxxxxxxxx ", nameof(smsRequest.Mobile));
                    return(smsApiResponse);
                }

                if (smsRequest.CountryCode <= 0)
                {
                    smsApiResponse.StatusCode = 400;
                    smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, nameof(smsRequest.CountryCode) + " is required.", nameof(smsRequest.CountryCode));
                    return(smsApiResponse);
                }

                Msg91SmsOtpRequest smsOtpRequest = new Msg91SmsOtpRequest()
                {
                    mobile      = string.Format("{0}{1}", smsRequest.CountryCode, smsRequest.Mobile),
                    template_id = string.IsNullOrWhiteSpace(smsRequest.MessageTemplate) ? "5dc5a276d6fc0553643c78b4" : smsRequest.MessageTemplate,
                    otp         = 12345
                };

                Msg91ApiResponse msg91ApiResponse = _msg91.SendOtpSms(smsOtpRequest);
                if (msg91ApiResponse.StatusCode == 200)
                {
                    BaseResponse baseResponse = msg91ApiResponse.MessageResponse;
                    if (string.Equals(baseResponse.Type, "error", StringComparison.OrdinalIgnoreCase))
                    {
                        smsApiResponse.StatusCode = 400;
                        smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, baseResponse.Message);
                    }
                    else
                    {
                        smsApiResponse.StatusCode = 200;
                        smsApiResponse.Response   = new SmsResponse()
                        {
                            Message = baseResponse.Message, RequestId = baseResponse.RequestId, Type = baseResponse.Type
                        };
                    }
                }
                else
                {
                    smsApiResponse.StatusCode = 400;
                    smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, "otp not verified");
                }
            }
            else
            {
                smsApiResponse.StatusCode = 400;
                smsApiResponse.ErrorList  = new List <SmsApiValidationResponse>()
                {
                    new SmsApiValidationResponse()
                    {
                        Code      = 1001,
                        FieldName = nameof(smsRequest),
                        Message   = "Request Data is Invlid."
                    }
                };
            }
            return(smsApiResponse);
        }