Jump to content

dev botao

Como pegar a Conta no Retorno


Luiz Carlos de Lima
Go to solution Solved by José M. S. Junior,
  • Este tópico foi criado há 1253 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom dia,

Estou fazendo o retorno usando o exemplo do Demo conforme abaixo, mas não consigo achar a conta. Podem por favor verificar se este exemplo está correto e como pegar a Conta.

    with ACBrBoleto do
    begin

      if ListaRetornoWeb.Count > 0 then
      begin
        SLRemessa := TStringList.Create;
        try
          for i:= 0 to ListaRetornoWeb.Count -1 do
          begin

          DMREMov.CDSBaixaTitulo_NroBoleto.Params[1].AsString  := ACBrBoleto.ListaRetornoWeb[i].DadosRet.IDBoleto.NossoNum;
          DMREMov.CDSBaixaTitulo_NroBoleto.Params[2].AsString  := ACBrBoleto.ListaRetornoWeb[i].DadosRet.IDBoleto.Conta;
 

Grato,

Luiz Carlos

Link to comment
Share on other sites

  • Membros Pro

 Estou fazendo para o ITAU, mas está retornando esta Exception.    A variavel BancoRetorno  esta 341 mas Banco.Numero esta Zerado. Estou passando o caminho  ACBrBoleto.NomeArqRetorno  e chamando  ACBrBoleto.LerRetorno(); Precisa passar mais algum parametro?

  if ( IntToStrZero(Banco.Numero, 3) <> BancoRetorno )
        and ( IntToStrZero(Banco.NumeroCorrespondente, 3) <> BancoRetorno )  then
       if LeCedenteRetorno then
         Banco.TipoCobranca := GetTipoCobranca( StrToIntDef(BancoRetorno, 0))
       else
         raise Exception.Create( ACBrStr( 'Arquivo de retorno de banco diferente do Cedente'));

 

Link to comment
Share on other sites

  • Moderadores
  • Solution

O Registro On-line não utiliza o metodo LerRetorno, esse seria para leitura do arquivo .txt

O Registro de boletos por API dos Bancos funciona de forma Síncrona, ou seja, deve ser enviado um título por vez para ser registrado e você já vai obter uma resposta imediata se o registro foi realizado ou rejeitado. No retorno não são retornados todos os dados do título, você precisa controlar pelo NossoNumero ou pelo NumeroDocumento que é retornado. Mas em resumo para cada envio você já obtem o retorno para esse Título.

Note pelo exemplo, que após o Envio você já pode ler o retorno a partir de uma lista (ListaRetornoWeb). Cada banco retorna dados específicos conforme a sua documentação, não significa que todos os campos estarão preenchidos.

Para o Itaú é importante que os fontes e o Exemplo do Boleto estejam atualizados, pois houve atualização recente. O que precisa validar seria se houve rejeição ou foi Registrado, no caso do Registro realizado é retornado o código de Barras e Linha Digitável, os demais dados você já tem no momento em que gerou o título...

Espero ter esclarecido mais sobre o Registro On-Line.

  • Like 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro

Então estou fazendo de forma errada. O que precisa é de forma assincrona, ou seja, pego o arquivo TXT de retorno do banco para fazer a baixa no sistema dos Titulos baixados.

O ACBr tem algo desse tipo pronto? caso tenha tem um exemplo que eu possa seguir? Pois vou fazer para vários bancos.

Edited by Luiz Carlos de Lima
Link to comment
Share on other sites

  • Moderadores

Nesse caso é o processo tradicional do componente, no demo ACBrBoleto, tem um exemplo com botão LerRetorno. No componente ACBrBoleto tem as propriedades "DirArqRetorno" e "NomeArqRetorno" para informar o o arquivo .txt de retorno. Se estiver caindo na exception devido a divergencia nos dados do cedente. Desmarque a propriedade: "LeCedenteRetorno" no componente Boleto.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro

Bom dia José,

    ACBrBoleto.NomeArqRetorno := NomeArquivo;
    AcbrBoleto.DirArqRetorno      := NomeDiretorio;
    ACBrBoleto.LerRetorno();

    with ACBrBoleto do
    begin
      if ListaRetornoWeb.Count > 0 then > aqui encerra, ela esta vazia
      begin

Já debuguei o ACBrBoleto e esta carregando informações do arquivo enviado, mas a ListaRetornoWeb retorna vazia. Tem alguma idéia do que estou fazendo de errado?

 

Link to comment
Share on other sites

  • Moderadores

Bom dia, 

Você está confundindo o retorno WebService com o retorno de leitura do TXT. O retorno do .txt alimenta a própria lista de Títulos do Componente:  ListaDeBoletos[]

Veja na unit ACBrBoleto a função "GravarArqINI" essa função percorre a ListaDeBoletos gravando um .ini com a lista de retornos. Pode utilizar esse modelo para entender como obter os dados do Retorno a partir do Componente.

Obs: essa função é utilizada após o método LerRetorno

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.