示例#1
0
        static void Main(string[] args)
        {
            var bradesco = new Bradesco(Configuration["urlHomologacao"], Configuration["certificadoArquivo"], Configuration["certificadoSenha"]);

            bradesco.Enviar(new Boleto
            {
                CPFCNPJBeneficiario     = "?",
                AgenciaBeneficiario     = "?",
                ContaBeneficiario       = "?",
                SequenciaContrato       = 123,
                NumeroTitulo            = 12324473,
                EmissaoTitulo           = new DateTime(2020, 03, 18),
                VencimentoTitulo        = new DateTime(2020, 03, 21),
                ValorNominal            = 32352m,
                ValorJuros              = 43.13m,
                CPFCNPJPagador          = "12345678901",
                NomePagador             = "Bilbo Baggins",
                UFPagador               = "SC",
                MunicipioPagador        = "The Shire",
                BairroPagador           = "The Shire",
                LogradouroPagador       = "Rua dos Bobos",
                NumeroLogradouroPagador = "0",
                CepPagador              = "55555333"
            });
        }
示例#2
0
        public static void Execute()
        {
            // Pagador
            IName     nameToPayer     = new NamePF("Nome", "Sobrenome");
            Address   addressToPayer  = new Address("Logradouro", "Número", "Bairro", "Cidade", "UF", "00.000-000", "Complemento se houver");
            IDocument documentToPayer = new DocumentPF("221.040.998-54");
            IPerson   payer           = new Person(nameToPayer, addressToPayer, documentToPayer, "*****@*****.**");

            // Recebedor
            IName     nameToReceiver     = new NamePJ("Razão social");
            Address   addressToReceiver  = new Address("Logradouro", "Número", "Bairro", "Cidade", "UF", "00.000-000", "Complemento se houver");
            IDocument documentToReceiver = new DocumentPJ("27.993.190/0001-41");
            IPerson   receiver           = new Person(nameToReceiver, addressToReceiver, documentToReceiver, "*****@*****.**");

            // Pagamento
            IAccountDataForBank accountData = new AccountDataForBank(0123, 45678, 9);                               // Agencia, conta e dígito respectivamente
            IPaymentData        paymentData = new PaymentData("Plano de saúde", 10000, DateTime.Now, DateTime.Now); // Descrição do pagamento, valor, data de emissão e data de vencimento respectivamente.

            Bradesco bradesco = new Bradesco(payer, receiver, accountData, paymentData)
                                .AddCertificate(@"C:\Users\Paulo\Documents\Projetos\ecnpj.pfx", "16062007")
                                .SetEndpoint(EEnvironment.Development)
                                .Prepare("09", "2", "3"); // Tipo de operação, string espécie título e IOF respectivamente

            string resultFromBradesco = bradesco.Execute();

            Console.WriteLine(bradesco.GetJsonData());
            File.WriteAllTextAsync(@"C:\Users\Paulo\Documents\Projetos\DadosParaOBradesco.json", bradesco.GetJsonData());
            File.WriteAllTextAsync(@"C:\Users\Paulo\Documents\Projetos\RetornoBradesco.xml", resultFromBradesco);
        }
示例#3
0
文件: Boleto.cs 项目: mbdavid/NBoleto
        public static Boleto Gerar(int codBanco, Cedente cedente, string nossoNumero, DateTime dtVencto, decimal vrBoleto)
        {
            Boleto b = null;

            switch (codBanco)
            {
            case 1: b = new BancoBrasil(); break;

            case 104: b = new Caixa(); break;

            case 41: b = new Banrisul(); break;

            case 237: b = new Bradesco(); break;

            case 341: b = new Itau(); break;

            case 33: b = new Santander(); break;

            case 399: b = new HSBC(); break;

            default: throw new NotImplementedException("Código de banco não implementado");
            }

            b.ValidaDados(cedente, nossoNumero);
            b.NossoNumero  = b.FormataNossoNumero(nossoNumero, cedente, dtVencto);
            b.AgCodCedente = b.FormataAgCodCedente(cedente);

            var barras   = b.GerarCodigoBarras(cedente, nossoNumero, dtVencto, vrBoleto);
            var linhadig = b.GerarLinhaDigitavel(barras);

            b.CodigoBarras   = barras.ToString();
            b.LinhaDigitavel = linhadig.ToString();

            b.Cedente           = cedente.Nome + " (CNPJ: " + Helper.FormatCpfCnpj(cedente.CNPJ) + ")";
            b.Carteira          = cedente.Carteira;
            b.NumeroDocumento   = nossoNumero;
            b.DataProcessamento = DateTime.Now.ToString(DATE_FORMAT);
            b.DataDocumento     = DateTime.Now.ToString(DATE_FORMAT);
            b.LocalPagamento    = "QUALQUER AGÊNCIA BANCÁRIA ATÉ A DATA DO VENCIMENTO";
            b.DataVencimento    = dtVencto.ToString(DATE_FORMAT);
            b.ValorDocumento    = vrBoleto.ToString(MONEY_FORMAT);
            b.Instrucoes        = "ATENÇÃO SENHOR CAIXA: NÃO RECEBER APÓS VENCIMENTO";

#if !DEBUG
            // Quando release, gera o Base64 do logotipo e codigo de barras
            b.Logotipo     = Helper.Logotipo(b.Banco.Substring(0, 3));
            b.CodigoBarras = Helper.CodigoBarras(b.CodigoBarras);
#endif

            return(b);
        }
示例#4
0
    private static void LogIn(IWebDriver driver, List <Conta> contas)
    {
        driver.Url = "https://banco.bradesco/html/classic/index.shtm";
        UI.WaitPageLoad(driver);

        // ------------------------------------------------------------------------------------------------------------------------------
        // Tela: Home
        // ------------------------------------------------------------------------------------------------------------------------------

        var conta     = contas[0]; // Utiliza a primeira, pois trata-se da mesma conta, com poupança e corrente na lista
        var s_agencia = conta.agencia.Replace(".", "").Split(Convert.ToChar("-"))[0];
        var arr_conta = conta.conta.Replace(".", "").Split(Convert.ToChar("-"));
        var s_conta   = arr_conta[0];
        var s_digito  = arr_conta[1];

        UI.WaitForDisplayed(driver, By.Id("AGN"));
        UI.SetTextBoxValue(driver, By.Id("AGN"), s_agencia);
        UI.SetTextBoxValue(driver, By.Id("CTA"), s_conta);
        UI.SetTextBoxValue(driver, By.Id("DIGCTA"), s_digito);
        UI.Click(driver, By.ClassName("btn-ok"));
        UI.Wait(1);

        // Tela: Aparece às vezes, "Acesso não autorizado. Já existe um acesso em andamento para esta conta."
        if (UI.IsDisplayed(driver, By.Id("modalLogin")))
        {
            UI.Click(driver, By.Id("cancelarAcessoModalForm:_id178"));
            UI.WaitPageLoad(driver);
            Bradesco.LogIn(driver, contas);
        }

        // ------------------------------------------------------------------------------------------------------------------------------
        // Tela: Senha e Token
        // ------------------------------------------------------------------------------------------------------------------------------

        // Neste ponto aguarda digitar o Token
        UI.WaitForClickable(driver, By.Id("ul_teclado_virtual"), 300); // 5 minutos para digitar o token

        var teclado = UI.WaitForDisplayed(driver, By.Id("ul_teclado_virtual"));

        foreach (char c in conta.senha)
        {
            UI.Click(driver, teclado.FindElement(By.LinkText(c.ToString())));
        }

        UI.Wait(2);
        UI.Click(driver, By.XPath("//*[@id=\"loginbotoes:botaoAvancar\"]"));
        UI.WaitPageLoad(driver);
        UI.Wait(3);
    }
示例#5
0
        /// <summary>
        /// Get the right instance of a Health Card Reader Classe
        /// </summary>
        /// <param name="ocrJsonData">JSON data from the OCR proccess</param>
        /// <param name="acceptedHealthCareProviders">Accepted Health Care Providers</param>
        /// <returns>"HealthCardReader" object instance</returns>
        public HealthCardReader GetHealthCardInstance(string ocrJsonData, List <string> acceptedHealthCareProviders)
        {
            //Validations
            if (string.IsNullOrWhiteSpace(ocrJsonData))
            {
                return(null);                                        //Can not proceed with empty OCR result
            }
            if (acceptedHealthCareProviders.Count <= 0)
            {
                return(null);                                        //Whether there is no accepted health care providers, no reason to proceed also.
            }
            var readerInstance          = default(HealthCardReader);
            var foundHealthCareProvider = string.Empty;

            for (int i = 0; i < acceptedHealthCareProviders.Count; i++)
            {
                if (string.IsNullOrWhiteSpace(acceptedHealthCareProviders[i]))
                {
                    continue; //arrHealthProviders can not have a null position. Goes to next item.
                }
                if (ocrJsonData.ToLowerInvariant().Contains(acceptedHealthCareProviders[i]))
                {
                    foundHealthCareProvider = acceptedHealthCareProviders[i]; //Health care provider found!
                }
            }

            switch (foundHealthCareProvider.ToLowerInvariant())
            {
            case "bradesco":
                readerInstance = new Bradesco(ocrJsonData);
                break;

            case "sulamerica":
            case "sulamérica":
            case "sul américa":
            case "sul america":
                readerInstance = new SulAmerica(ocrJsonData);
                break;

            default:
                return(null);
            }

            return(readerInstance);
        }
示例#6
0
    public static List <Extrato> Sync(List <Conta> contas)
    {
        var        extratos  = new List <Extrato>();
        IWebDriver driver    = null;
        var        cultureBR = new CultureInfo("pt-BR");

        return(extratos);

        try
        {
            contas = (from a in contas where a.classe.ToUpper() == "BRADESCO" select a).ToList();
            if (contas.Count == 0)
            {
                return(extratos);                   // lista vazia
            }
            UI.StartChrome(ref driver, 3);

            Bradesco.LogIn(driver, contas);

            // Conta corrente
            var cc_ultimos = Bradesco.ReadExtrato(driver, contas, cultureBR, TipoConta.Conta_Corrente, TipoLink.Ultimos_Lancamentos);
            var cc_range   = Bradesco.ReadExtrato(driver, contas, cultureBR, TipoConta.Conta_Corrente, TipoLink.Por_Periodo);

            // Poupança
            var poup_ultimos = Bradesco.ReadExtrato(driver, contas, cultureBR, TipoConta.Poupanca, TipoLink.Ultimos_Lancamentos);
            var poup_range   = Bradesco.ReadExtrato(driver, contas, cultureBR, TipoConta.Poupanca, TipoLink.Por_Periodo);

            Bradesco.LogOff(driver);

            if (cc_ultimos.Count > 0 && cc_range.Count > 0)
            {
                cc_ultimos[cc_ultimos.Count - 1].saldo = cc_range[cc_range.Count - 1].saldo;
            }
            if (poup_ultimos.Count > 0 && poup_range.Count > 0)
            {
                poup_ultimos[poup_ultimos.Count - 1].saldo = poup_range[poup_range.Count - 1].saldo;
            }

            extratos.AddRange(cc_ultimos);
            extratos.AddRange(cc_range);
            extratos.AddRange(poup_ultimos);
            extratos.AddRange(poup_range);
        }
        catch (Exception ex)
        {
            UI.SaveHtmlAndPrint(driver, "Bradesco", ex);
            throw ex;
        }
        finally
        {
            if (driver != null)
            {
                try { driver.Close(); } catch { }
                driver.Quit();
                driver.Dispose();
                driver = null;
            }
        }

        // Retorna os registros
        return(extratos);
    }