Code Monkey home page Code Monkey logo

Comments (11)

carloscds avatar carloscds commented on August 27, 2024 1

@stupied4ever Ideal você dar uma olhada no manual da cobranca do banco, o convênio é usado na linha digitavel do boleto, em alguns bancos.

from boletonet.

stupied4ever avatar stupied4ever commented on August 27, 2024 1

Acho que encontrei.
No meu caso o problema era a agencia do cedente sendo enviada sem zeros a esquerda.
A mudança abaixo resolveu meu problema:

# Antes
var cedente = new Cedente(
                cnpj,
                {razaoSocial} CNPJ - {cnpj.FormataCnpj()}",
                agencia.ToString(),
                conta.PadLeft(5, '0')
            );
            
# Depois
var cedente = new Cedente(
              cnpj,
              {razaoSocial} CNPJ - {cnpj.FormataCnpj()}",
              agencia.ToString().PadLeft(4, '0'),
              conta.PadLeft(5, '0')
          );

from boletonet.

natancd avatar natancd commented on August 27, 2024 1

Somente para complementar: o meu problema era a chamada da função Valida duas vezes e faltava validar as linhas digitáveis, acabei criando uma função para fazer isso.

Em resumo, meu código ficou basicamente assim:

BoletoBancario boletoBancario = new BoletoBancario();
boletoBancario.CodigoBanco = codigoBanco;
boletoBancario.Boleto = boletoNet;
boletoBancario.Boleto.Valida();
boletoBancario.Boleto.CodigoBarra.Codigo = codigoBarras;
string linhaDigitavelFormatada = ConverterLinhaDigitavel(codigoBanco, linhaDigitavel (campo de retorno do banco);
boletoBancario.Boleto.CodigoBarra.LinhaDigitavel = linhaDigitavelFormatada;

boletoBancario.MontaHtmlEmbedded();
byte[] pdfBytes = boletoBancario.MontaBytesPDF();
string base64String = Convert.ToBase64String(pdfBytes);

 public static string ConverterLinhaDigitavel(int bankNumber, string input)
        {
            string firstPart;
            string secondPart;
            string thirdPart;
            string fourthPart;
            string fifthPart;
            switch (bankNumber)
            {
                case 1:
                    firstPart = input.Substring(0, 5) + "." + input.Substring(5, 5);
                    secondPart = input.Substring(10, 5) + "." + input.Substring(15, 6);
                    thirdPart = input.Substring(21, 5) + "." + input.Substring(26, 9);
                    fourthPart = input.Substring(35, 1);
                    fifthPart = input.Substring(36);
                    break;
                default:
                    firstPart = input.Substring(0, 5) + "." + input.Substring(5, 5);
                    secondPart = input.Substring(10, 5) + "." + input.Substring(15, 6);
                    thirdPart = input.Substring(21, 5) + "." + input.Substring(26, 9);
                    fourthPart = input.Substring(35, 1);
                    fifthPart = input.Substring(36);
                    break;
            }

            return $"{firstPart} {secondPart} {thirdPart} {fourthPart} {fifthPart}";
        }
        #endregion
    }

from boletonet.

carloscds avatar carloscds commented on August 27, 2024

@natancd Isto normalmente é erro no codigo do convênio, confirme com o banco.

from boletonet.

natancd avatar natancd commented on August 27, 2024

confirmei com o cliente e o boleto de fato foi gerado corretamente, tanto é que ele conseguiu pegar o PDF direto pelo site do BB

from boletonet.

carloscds avatar carloscds commented on August 27, 2024

@natancd O boleto foi gerado pelo BoletoNet ? Comop fez o registro ?

from boletonet.

natancd avatar natancd commented on August 27, 2024

Na verdade o boleto foi gerado via RestSharp, utilizando os dados que o BB disponibiliza na API deles. Porém, não entendo até o momento o motivo deles não gerarem o boleto em PDF. Nas pequisas de como gerar PDF de boletos, achei o BoletoNet.

Com o retorno positivo da API do BB (ou seja, o boleto foi de fato gerado), eu tenho uma função que irá gerar o PDF desses dados utilizando BoletoNet.

Este é o único trecho do código onde utilizo esta biblioteca:
image

Os dados estão hardcoded/com variáveis alteradas (pois é parte de um código de uma empresa), mas eles vem de variáveis utilizadas tanto para enviar à API do BB como alguns de retorno da API, como por exemplo o "Seu Número" e o "Nosso Número".

Tenho, ainda, acesso a esses dados, também salvo em banco de dados local (dados fictícios, retorno da API de homologação do BB):
image

from boletonet.

carloscds avatar carloscds commented on August 27, 2024

@natancd Se você passar os mesmos dados, ele gera a mesma linha, aqui na empresa tambem usamos o BB e imprimimos pelo BoletoNet.

from boletonet.

stupied4ever avatar stupied4ever commented on August 27, 2024

Estou tendo "o mesmo problema", mas com o banco Itaú.
Gerando o boleto com o boleto.net, recebo o digito verificador 6 (e não é reconhecido como um boleto válido), porem, quando gerado pelo Itaú o digito é 3 (e é reconhecido como válido nos aplicativos de banco).

@carloscds Fiquei na duvida o que seria o

codigo do convênio,

@natancd vc conseguiu identificar qual era o problema?

from boletonet.

carloscds avatar carloscds commented on August 27, 2024

Estou tendo "o mesmo problema", mas com o banco Itaú. Gerando o boleto com o boleto.net, recebo o digito verificador 6 (e não é reconhecido como um boleto válido), porem, quando gerado pelo Itaú o digito é 3 (e é reconhecido como válido nos aplicativos de banco).

@carloscds Fiquei na duvida o que seria o

codigo do convênio,

@natancd vc conseguiu identificar qual era o problema?

O convenio é tipo um cadastro da empresa no banco, ideal é verificar com o gerente da conta no banco.

from boletonet.

stupied4ever avatar stupied4ever commented on August 27, 2024

O convenio é tipo um cadastro da empresa no banco, ideal é verificar com o gerente da conta no banco.

Entendi, mas ainda não entendi como ele interfere na geração do boleto, qual parâmetro do Boleto.Net representa o convênio (se é que existe um)?

from boletonet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.