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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...