Ir para conteúdo
  • Cadastre-se

dev botao

Como pegar a Conta no Retorno


Ver Solução Respondido por José M. S. Junior,
  • Este tópico foi criado há 1056 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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.

  • Curtir 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 para o comentário
Compartilhar em outros 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.

Editado por Luiz Carlos de Lima
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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