コード例 #1
0
        /// <summary>
        /// Consulta o CNPJ especifico.
        /// </summary>
        /// <param name="cnpj">O CNPJ.</param>
        /// <param name="captcha">O captcha.</param>
        /// <returns>Dados da empresa.</returns>
        public ACBrEmpresa Consulta(string cnpj, string captcha = "")
        {
            Guard.Against <ACBrException>(cnpj.IsEmpty(), "Necessário informar o CNPJ.");
            Guard.Against <ACBrException>(!cnpj.IsCNPJ(), "CNPJ inválido.");

            if (captcha.IsEmpty() && OnGetCaptcha != null)
            {
                var e = new CaptchaEventArgs();
                OnGetCaptcha.Raise(this, e);

                captcha = e.Captcha;
            }

            Guard.Against <ACBrException>(captcha.IsEmpty(), "Necessário digitar o captcha.");

            var request = GetClient(urlBaseReceitaFederal + paginaValidacao);

            var postData = new Dictionary <string, string>
            {
                { "origem", "comprovante" },
                { "cnpj", cnpj.OnlyNumbers() },
                { "txtTexto_captcha_serpro_gov_br", captcha },
                { "submit1", "Consultar" },
                { "search_type", "cnpj" }
            };

            var retorno = request.SendPost(postData);

            Guard.Against <ACBrCaptchaException>(retorno.Contains("Imagem com os caracteres anti robô"), "Catpcha errado.");
            Guard.Against <ACBrException>(retorno.Contains("Erro na Consulta"), "Erro na Consulta.");
            Guard.Against <ACBrException>(retorno.Contains("Verifique se o mesmo foi digitado corretamente"), $"Não existe no Cadastro de Pessoas Jurídicas o número de CNPJ informado.{Environment.NewLine}Verifique se o mesmo foi digitado corretamente.");
            Guard.Against <ACBrException>(retorno.Contains("a. No momento não podemos atender a sua solicitação. Por favor tente mais tarde."), "Erro no site da receita federal. Tente mais tarde.");

            return(ProcessResponse(retorno));
        }
コード例 #2
0
        /// <summary>
        /// Consultas the specified CNPJ.
        /// </summary>
        /// <param name="uf"></param>
        /// <param name="cnpj">The CNPJ.</param>
        /// <param name="ie">The ie.</param>
        /// <param name="captcha">The captcha.</param>
        /// <returns>ACBrEmpresa.</returns>
        public ACBrEmpresa Consulta(ConsultaUF uf, string cnpj = "", string ie = "", string captcha = "")
        {
            Guard.Against <ACBrException>(ie.IsEmpty() && cnpj.IsEmpty(), "É necessário informar o CNPJ ou o Número da Inscrição Estadual.");

            var consultaSintegra = GetConsulta(uf);

            if (captcha.IsEmpty() && OnGetCaptcha != null && consultaSintegra.HasCaptcha)
            {
                var e = new CaptchaEventArgs();
                OnGetCaptcha.Raise(this, e);

                captcha = e.Captcha;
            }

            Guard.Against <ACBrCaptchaException>(captcha.IsEmpty() && consultaSintegra.HasCaptcha, "O captcha não pode ser vazio.");
            return(consultaSintegra.Consulta(cnpj, ie, captcha));
        }
コード例 #3
0
        /// <summary>
        /// Consulta o CPF especifico.
        /// </summary>
        /// <param name="cpf">O CPF.</param>
        /// <param name="dataNascimento">A Data de Nascimento.</param>
        /// <param name="captcha">O captcha.</param>
        /// <returns>Dados da pessoa.</returns>
        public ACBrPessoa Consulta(string cpf, DateTime dataNascimento, string captcha = "")
        {
            Guard.Against <ACBrException>(cpf.IsEmpty(), "Necessário informar o CPF.");
            Guard.Against <ACBrException>(dataNascimento == DateTime.MinValue, "Necessário informar a data de nascimento.");
            Guard.Against <ACBrException>(!cpf.IsCPF(), "CPF inválido.");

            if (captcha.IsEmpty() && OnGetCaptcha != null)
            {
                var e = new CaptchaEventArgs();
                OnGetCaptcha.Raise(this, e);

                captcha = e.Captcha;
            }

            Guard.Against <ACBrException>(captcha.IsEmpty(), "Necessário digitar o captcha.");

            var request = GetClient(urlBaseReceitaFederal + paginaValidacao);

            request.KeepAlive = false;

            var postData = new Dictionary <string, string>();

            postData.Add("TxtCPF", cpf.FormataCPF());
            postData.Add("txtDataNascimento", dataNascimento.ToShortDateString());
            postData.Add("txtToken_captcha_serpro_gov_br", "");
            postData.Add("txtTexto_captcha_serpro_gov_br", captcha);
            postData.Add("Enviar", "Consultar");

            var retorno = request.SendPost(postData, Encoding.UTF8);

            Guard.Against <ACBrCaptchaException>(retorno.Contains("Os caracteres da imagem não foram preenchidos corretamente."), "Os caracteres da imagem não foram preenchidos corretamente.");
            Guard.Against <ACBrException>(retorno.Contains("O número do CPF não é válido."), "EO número do CPF não é válido. Verifique se o mesmo foi digitado corretamente.");
            Guard.Against <ACBrException>(retorno.Contains("Não existe no Cadastro de Pessoas Jurídicas o número de CPF informado."), $"Não existe no Cadastro de Pessoas Jurídicas o número de CPF informado.{Environment.NewLine}Verifique se o mesmo foi digitado corretamente.");
            Guard.Against <ACBrException>(retorno.Contains("a. No momento não podemos atender a sua solicitação. Por favor tente mais tarde."), "Erro no site da receita federal. Tente mais tarde.");

            return(new ACBrPessoa(retorno));
        }