Ir para conteúdo
  • Cadastre-se

Rodrigo - Digibyte

Membros Pro
  • Total de ítens

    354
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Rodrigo - Digibyte postou

  1. Bom dia, creio o método LerRetornoStream teria que ser modificado para ter o mesmo comportamento de LerRetorno na lib, semelhante ao método TACBrBoleto.LerRetorno que pode ler um arquivo ou stream e produz o mesmo resultado.
  2. Certo, então eu teria que decodificar o retorno. E depois como popular a classe, existe algum método do ACBR pra isso? Entendi que não é assim mas LerRetorno e LerRetornoStream não deveriam teoricamente dar o mesmo resultado (abstrair) visto que apenas estou mudando a forma de ler o CNAB?
  3. Estava tentando começar a usar a leitura de retorno em stream, usando a demo, e não consegui fazer funcionar. O método boleto.LerRetornoStream apenas retorna uma string codificada, sem preencher as propriedades do boleto. Abaixo como é chamado na demonstração C#: using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read)) { using (StreamReader reader = new StreamReader(fileStream)) { string retString = reader.ReadToEnd(); byte[] retByte = Encoding.UTF8.GetBytes(retString); var retBase64 = System.Convert.ToBase64String(retByte); var ret = boleto.LerRetornoStream(retBase64); rtbRespostas.AppendLine(ret); } } Olhando o código da LIB, pelo que pude ententer, foi criado o método TACBrLibBoleto.LerRetornoStream que parece substituir dois métodos usados para ler o arquivo diretamente: TACBrLibBoleto.LerRetorno e TACBrLibBoleto.ObterRetorno. Porém note que o retorno de LerRetornoStream é diferente, por exemplo não está implementado o código abaixo que existe em ObterRetorno: RespRetorno := TRetornoBoleto.Create(Config.TipoResposta, Config.CodResposta); try RespRetorno.Processar(BoletoDM.ACBrBoleto1); Resposta := RespRetorno.Gerar; Finally RespRetorno.Free; end; MoverStringParaPChar(Resposta, sResposta, esTamanho); Result := SetRetorno(ErrOK, Resposta); Enfim, não entendi muito bem o LerRetornoStream, me parece estar errado se comparar com LerRetorno.
  4. Bom dia, estou exatamente com o mesmo erro, qual seria a solução?
  5. Suporte da CAIXA é praticamente inexistente, tentei de tudo, pode encerrar.
  6. Pra dar um retorno e finalizar o caso de não sair a mensagem no boleto: Envio via CNAB240: não aparece de forma alguma, deve ser algum problema no sistema da CEF Envio via API: as mensagens aparecem normalmente
  7. Chegou a alterar o txt manualmente pra ver se a mensagem no boleto da caixa aparecia? Eu alterei de acordo com o manual, usando várias opções, e não deu certo.
  8. Bom dia, vamos lá: Utilizo o ACBRLib para gerar o arquivo de remessa 240. Ele gera as mensagens no segmento S. Me refiro as mensagens livres do usuário, ex. "referente mês 08/2024". Não uso o PDF do Boleto gerado pelo ACBR. Quando consulto o boleto pra ver se o mesmo foi registrado corretamente (na consulta uso WS) ele retorna um link pra acesso direto ao boleto na caixa, e é nesse boleto que não aparecem as mensagens. Não tenho dúvida que na impressão pelo próprio ACBR apareceria. Olhando o manual existem algumas configurações referente a impressão das mensagens (ex: frente, verso, ficha de compensação, recibo..). Fiz alterações manuais no TXT, enviei pro banco e nada de aparecer. Então a questão é, se alguém passou por essa situação de usar o boleto disponibilizado pelo banco e conseguir fazer aparecer a mensagem. Talvez se registrar o boleto via API funcione ... Uso o boleto pelo site da caixa porque fica mais fácil de distribuir (só mando o link) e fica bem bonito, no padrão deles. O suporte da caixa pra ser uma piada tem que melhorar muito.
  9. Boa tarde. Estou enviando o CNAB240 caixa e quando o cliente consulta o boleto no site da caixa ou aplicação eCobrança não sai nenhuma mensagem. Segundo o manual existem algumas possibilidades de enviar (frente, verso, ambos, registro R, registro S). Já usei a forma original do ACBR, já alterei manualmente o arquivo e enviei mas sem sucesso, não sai nada impresso. Alguém que imprima o boleto pela CAIXA está conseguindo enviar mensagem no corpo do boleto?
  10. A biblioteca até inicializava, o erro era ao executar a consulta, inclusive derrubava o server. Bom, depois de "alguma" luta (não respondi antes pq não conseguia gerar), para conseguir gerar o log no linux pela lib, enfim conseguimos e finalmente pudemos verificar o erro. Basicamente era: 31/07/24 12:19:28:172 - Comando Enviar: TBoletoW_Caixa 31/07/24 12:19:28:195 - Envelope Enviar: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><consultacobrancabancaria:SERVICO_ENTRADA xmlns:consultacobrancabancaria="http://caixa.gov.br/sibar/consulta_cobranca_bancaria/boleto" xmlns:sib="http://caixa.gov.br/sibar"><sib:HEADER>...> 31/07/24 12:19:28:272 - Retorno Envio: TBoletoW_Caixa 31/07/24 12:19:28:281 - C�digo do Envio: 0 31/07/24 12:19:28:283 - Retorno Envio: Result= 31/07/24 12:19:28:292 - Falha Envio: Erro Interno: -2 Erro HTTP: 500 URL: https://barramento.caixa.gov.br/sibar/ConsultaCobrancaBancaria/Boleto error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small O que seria o "dh key too small"? Basicamente o OPENSSL do azure só aceita uma determinada configuração de segurança superior ao que a CAIXA trabalha. https://updown.io/faq/what-does-the-dh-key-too-small-ssl-error-means Como resolver? Alterando o script de inicialização do App Service para mudar o openssl.cnf em /etc/ssl para compatibilizar tudo, trocando SECLEVEL de 2 para 1. https://stackoverflow.com/questions/61518238/azure-linux-web-app-change-openssl-default-security-level https://stackoverflow.com/questions/65912915/node-docker-routinestls-process-ske-dhedh-key-too-small Finalmente resolvido, agradeço a todos.
  11. Olá. Podem me dizer o que poderia ser o erro CheckResult = -2 na libBoleto, ao tentar fazer uma consulta de boleto via ws ?
  12. Exato. Imagine o processo em um aplicativo web: o front envia o arquivo (stream) para o back, via API, e poderia carregar ele diretamente no ACBR. Da forma como está hoje eu teria que salvar, ler o arquivo e depois apagar. Além disso, como eu iria indicar o diretório, pois na verdade seria um endereço web. A alguns meses foi exposto na LIB, a meu pedido, esse método para gerar a remessa em stream e está funcionando perfeito. Agora falta pegar o retorno.
  13. Boa tarde. Pelo que vi, apesar de ter no componente, não está implementada na Lib a leitura do retorno em stream. Seria possível essa implementação? Também fiquei na dúvida da diferença entre lerRetorno e obterRetorno https://acbr.sourceforge.io/ACBrLib/Boleto_LerRetorno.html
  14. Linhas adicionadas no script personalizado do azure pra resolver o problema da impressão:
  15. Apenas pra avisar que funcionou, ainda não sei o que foi exatamente mas assim que isolar e decobrir posto aqui.
  16. Então, essa de instalar as fontes foi também algumas das sugestões que encontrei na web. Depois de várias questões e estudo consegui instalar, alterei também questões relativas a resolução e DPi da parte gráfica virtual. E o resultado foi que NÃO resolveu, continua cortando. Em muitos fóruns, stackoverflow, etc fala que mesmo sendo a mesma fonte o linux renderiza um pouco diferente. Inclusive mac <> windows <> linux. Quando eu comparo o PDF gerado no linux e no windows a fonte é praticamente idêntica, o que observei é uma mudança no espaçamento entre letras, em todos os textos. E a linha digitável, por ser grande, estoura o espaço. No acrobat reader dá pra ver as fontes usadas no PDF e está sendo usado Arial, não houve substituição da fonte. Não vejo mais ou não sei como resolver usando apenas configurações no ambiente. Pra mim tem três possibilidades: O "ACBR" inserir uma compilação condicional na LIB, ajustando alinha digitável para Linux Alguma propriedade no relatório que ajuste o tamanho automaticamente do campo ? Eu alterar e compilar por aqui ,essa realmente não gostaria ...
  17. Boa tarde, segue o modelo de como está saindo o boleto, com a linha digitada muito grande. Este erro acontece quando gero na nuvem Azure, ambiente Linux. Rodando localmente em uma máquina Windows o código sai perfeito. Alguma sugestão? 41812024741846.pdf
  18. Pra registrar, funcionou, o problema era uma acentuação na pasta. Mudando o nome funcionou.
  19. Bom dia. Estamos testando localmente, pra ficar mais fácil, porém não está saindo a logo. Existe algum outro detalhe a verificar? Algo que possa nos dizer se está realmente buscando a logo na pasta correta?
  20. Não usamos o arquivo ini, é feito da forma abaixo:
  21. Qual classe do C# informa o diretório da logo do banco para gerar boleto? Não estou conseguindo fazer aparecer a logo. Uso a LIB Boleto com C#.
  22. Eu acho que é um ambiente mais controlável mas tem a curva de aprendizado do Docker e sua distribuição. A parte de fazer a lib funcionar vai ser exatamente igual, vai precisar dos mesmos arquivos e dependências. O que me fez pensar no Docker foi a possibilidade ou não de instalar as dependências no Azure mas como isso foi resolvido não houve necessidade. De qualquer forma vou estudar e testar com o Docker, vai que uma hora precisa.
  23. Com Linux especificamente faz muito tempo que não mexo, até porque o app service abstrai isso. Mas tive que relembrar algumas coisas do meu cursinho da conectiva... Com o Azure em si já faz uns 4 anos, estamos migrando os sistemas para Web.
  24. Desafio: executar a lib ACBrBoleto diretamente em um APP SERVICE LINUX no Azure, sem uso do Docker Backend em C#/.NET 6 Os comandos são executas via SSH em Development Tools/SSH A execução do start do app service pode ser acompanhada em Log Stream Comandos úteis: Verifica se o arquivo existe e em qual pasta está. No caso eu fiz o deploy para a pasta raiz da aplicação (usando Azure Devops). find / -name libacbrboleto64.so 2>/dev/null Lista as dependências da biblioteca e confirma se a lib pode ser "lida" ldd libacbrboleto64.so O arquivo de inicialização padrão /startup.sh deverá ser copiado para a pasta /home a fim de ser personalizado Copia o arquivo de inicialização do app service para a pasta /home. Qualquer arquivo fora de /home é apagado quando o serviço é reiniciado. cp /opt/startup/startup.sh /home Uma vez copiado o arquivo deverá ser editado (usar o VIM) e antes da execução da aplicação acrescer as linhas abaixo: echo *** Atualiza a lista de pacotes apt-get update echo *** Instala as dependências faltantes da lib ACBrBoleto (listadas no comando ldd libacbrboleto64.so) apt-get install -y libgdk-pixbuf2.0-0 libgtk2.0-0 libpango1.0-0 libatk1.0-0 libcairo2 libpangocairo-1.0-0 echo *** Instala emulador de interface gráfica. A lib precisa pra funcionar. apt-get install -y xvfb echo *** Remove lista de pacotes (opcional) rm -rf /var/lib/apt/lists/* echo *** Cria uma screen virtual identificada pelo nº 1 Xvfb :1 -screen 0 1024x768x24 & No app service em Settings/Enviroments variables inserir name e value: DISPLAY :1 Por último, em Settings/Configuration/Startup Command inserir /home/startup.sh Alguma coisa deu errado? basta remover o comando no Startup Command que será usado o arquivo de inicialização padrão (/opt/startup/startup.sh) Depois de alguns dias de dor de cabeça tudo testado e funcionando !!!!!!!!!!
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.