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á 1299 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

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

  • Moderadores
Postado

Bom dia Luiz

Qual banco está integrando? Pois cada banco tem campos específicos de retorno, Pode ver se essa informação esta sendo retornada na resposta da API do Banco.

Consultor SAC ACBr

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

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

  • Membros Pro
Postado

 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'));

 

  • Moderadores
  • Solution
Postado

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.

  • Membros Pro
Postado (editado)

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
  • Moderadores
Postado

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.

  • Membros Pro
Postado

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?

 

  • Moderadores
Postado

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.

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