Ejemplo n.º 1
0
        public string Request(string endpoint, string json, Config config, bool isApiKeyRequired, RequestOptions requestOptions = null)
        {
            string responseText = null;

            _environment = config.Environment;
            var httpWebRequest = GetHttpWebRequest(endpoint, config, isApiKeyRequired, requestOptions);

            if (config.HttpRequestTimeout > 0)
            {
                httpWebRequest.Timeout = config.HttpRequestTimeout;
            }
            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                streamWriter.Write(json);
                streamWriter.Flush();
                streamWriter.Close();
            }
            try
            {
                using (var response = (HttpWebResponse)httpWebRequest.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream(), _encoding))
                    {
                        responseText = reader.ReadToEnd();
                    }
                }
            }
            catch (WebException e)
            {
                HandleWebException(e);
            }
            return(responseText);
        }
        public static bool ValidateCertificate(string certificateSubject, Model.Enum.Environment environment)
        {
            var environmentName = environment.ToString().ToLower();
            var regexPatternTerminalSpecificCert = _terminalApiCnRegex.Replace(_environmentWildcard, environmentName);
            var regexPatternLegacyCert           = _terminalApiLegacy.Replace(_environmentWildcard, environmentName);
            var subject = certificateSubject.Split(',')
                          .Select(x => x.Split('='))
                          .ToDictionary(x => x[0].Trim(' '), x => x[1]);

            if (subject.ContainsKey("CN"))
            {
                string commonNameValue = subject["CN"];
                if (Regex.Match(commonNameValue, regexPatternTerminalSpecificCert).Success || string.Equals(commonNameValue, regexPatternLegacyCert))
                {
                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 3
0
        public string Request(string endpoint, string json, Config config, bool isApiKeyRequired, RequestOptions requestOptions = null)
        {
            string responseText = null;

            _environment = config.Environment;
            var httpWebRequest = GetHttpWebRequest(endpoint, config, isApiKeyRequired, requestOptions);

            if (config.HttpRequestTimeout > 0)
            {
                httpWebRequest.Timeout = config.HttpRequestTimeout;
            }
            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                streamWriter.Write(json);
                streamWriter.Flush();
                streamWriter.Close();
            }
            try
            {
                using (var response = (HttpWebResponse)httpWebRequest.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream(), _encoding))
                    {
                        responseText = reader.ReadToEnd();
                    }
                }
            }
            catch (WebException e)
            {
                if (e.Response == null)
                {
                    throw new HttpClientException((int)HttpStatusCode.RequestTimeout, "HTTP Exception timeout", null, "No response", e);
                }
                var response = (HttpWebResponse)e.Response;
                using (var sr = new StreamReader(response.GetResponseStream()))
                {
                    responseText = sr.ReadToEnd();
                }
                throw new HttpClientException((int)response.StatusCode, "HTTP Exception", response.Headers, responseText);
            }
            return(responseText);
        }
Ejemplo n.º 4
0
        public static bool ValidateCertificate(string certificateCommonName, Model.Enum.Environment environment)
        {
            var enviromentName = environment.ToString().ToLower();
            var patternRegex   = "(?:^|,\\s?)(?:(?<name>[A-Z]+)=(?<val>\"(?:[^\"]|\"\")+\"|[^,]+))+";
            var regex          = new Regex(patternRegex);
            var groupsName     = regex.GetGroupNames();
            var matches        = regex.Matches(certificateCommonName);

            foreach (Match match in matches)
            {
                string groupName = match.Groups["name"].Value;
                if ("CN".Equals(groupName))
                {
                    var commonNameValue = match.Groups["val"].Value;
                    var regexPattern    = _terminalApiCnRegex.Replace(_enviromentWildcard, environment.ToString().ToLower());
                    var legacyCert      = _terminalApiLegacy.Replace(_enviromentWildcard, environment.ToString().ToLower());
                    if (Regex.Match(commonNameValue, regexPattern).Success || string.Equals(commonNameValue, legacyCert))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
 public TerminalCNValidationParameters(string commonName, Adyen.Model.Enum.Environment environment, bool testSuccess)
 {
     CommonName  = commonName;
     TestSuccess = testSuccess;
     Environment = environment;
 }