Jump to content
Notícias do ACBr

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png click.png click.png

Como pegar a Conta no Retorno


Go to solution Solved by José M. S. Junior,

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

  • Consultores

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.

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

  • Consultores
  • 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
Posted (edited)

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

  • Consultores

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

  • Consultores

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.