Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

  • Membros Pro
Postado

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.

 

 

  • Membros Pro
Postado

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?

  • Membros Pro
Postado
Em 21/03/2025 at 12:01, Rodrigo - Digibyte disse:

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?

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. 

×
×
  • 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...