Ir para conteúdo
  • Cadastre-se

Dúvidas sobre log de erro no registro de boleto do banco do Brasil via apio ou ws


Ver Solução Respondido por Victor H. Gonzales - Panda,
  • Este tópico foi criado há 1679 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros
Postado

Boa tarde, alguém saber qual as configurações que marco para que o log de erro seja salvo na pasta da minha aplicação ao tentar emitir boleto pelo banco do brasil via api ou ws! usando o ACBrBoletoDemo ele grava o log de erro na pasta mais na minha aplicação não grava. Então deve ser configuração.

  • Consultores
Postado

Boa tarde,

<ACBrBoleto>.Configuracaoes.Arquivos.LogRegistro := true;

<ACBrBoleto>.Configuracaoes.Arquivos.PathGravarRegistro := ExtractFilePath(ParamStr(0));

 

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Consultores
Postado
57 minutos atrás, JHONLENON disse:

Victor H. Gonzales - Panda mesmo fazendo essas configurações não salva o retorno do erro na pasta....o envio dá certo ai grava o envio e o retorno...mais quando dá erro grava do envio...o retorno que vem o erro não grava.

Se no demo funciona, olha como é o fluxo de escrita do arquivo de rejeição.

Provavelmente terá uma lista rejeição

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros
Postado

Victor H. Gonzales - Panda Talves eu não expliquei direito o que eu estava me referindo...no caso queria gerar esse txt igual o demo da ACBr gera....ficaria melhor pra mim saber quando dê algum erro...porque só estou conseguindo debugando.

 

Cod_Retorno=
Msg_Retorno=
Ori_Retorno=
HTTP_Result=400
JSON={"erros":[{"codigo":"4678420","versao":"1","mensagem":"Campo DV CNPJ pagador preenchido com dados inv\u00e1lidos.","ocorrencia":"CHOM00000061505941750101"}]}
[Rejeicao0]
Campo=
Codigo=4678420
Versao=1
Mensagem=Campo DV CNPJ pagador preenchido com dados inválidos.
Ocorrencia=CHOM00000061505941750101
Valor=
 

01.png

  • Consultores
  • Solution
Postado
1 hora atrás, JHONLENON disse:

Victor H. Gonzales - Panda Talves eu não expliquei direito o que eu estava me referindo...no caso queria gerar esse txt igual o demo da ACBr gera....ficaria melhor pra mim saber quando dê algum erro...porque só estou conseguindo debugando.

 

Cod_Retorno=
Msg_Retorno=
Ori_Retorno=
HTTP_Result=400
JSON={"erros":[{"codigo":"4678420","versao":"1","mensagem":"Campo DV CNPJ pagador preenchido com dados inv\u00e1lidos.","ocorrencia":"CHOM00000061505941750101"}]}
[Rejeicao0]
Campo=
Codigo=4678420
Versao=1
Mensagem=Campo DV CNPJ pagador preenchido com dados inválidos.
Ocorrencia=CHOM00000061505941750101
Valor=
 

01.png

Bom dia,

Segue a programação atual do programa exemplo, o botão de registro, no final dele tem a captura do retorno do registro e a persistência em arquivo texto para simples conferencia; veja como ele faz a leitura da lista de rejeições

{
--Utiliza WebService dos Bancos para realizar o Registro dos Boletos--
Até o momento disponível para Caixa Economica, Banco do Brasil e Itau
É necessario realizar a configuração previa para acesso ao WebService
No Object Inspector verifique as propriedades: CedenteWS e Configuracoes/WebService
Verifique no arquivo "configWebService.txt" quais as configurações necessárias para cada Banco
}
procedure TfrmDemo.btnRegistroClick(Sender: TObject);
var
  SLRemessa: TStringList;
  i, j: Integer;
begin
  with dm.ACBrBoleto do
  begin
    //Função de Envio
    Configuracoes.WebService.Operacao := tpInclui;
    EnviarBoleto; // <<< retorna como false se o httpresult code for diferente de 200,201,202
    //Verifica Lista com os retornos

    if ListaRetornoWeb.Count > 0 then
    begin
      SLRemessa := TStringList.Create;
      try
        for i:= 0 to Pred(ListaRetornoWeb.Count) do
        begin
          //Ler todos os campos da classe Retorno

           SLRemessa.Add('Cod_Retorno='+ ListaRetornoWeb[i].CodRetorno + sLineBreak +
                         'Msg_Retorno='+ ListaRetornoWeb[i].MsgRetorno + sLineBreak +
                         'Ori_Retorno='+ ListaRetornoWeb[i].OriRetorno + sLineBreak +
                         'HTTP_Result='+ IntToStr(ListaRetornoWeb[i].HTTPResultCode) + sLineBreak +
                         'JSON='+ ListaRetornoWeb[i].JSON);
           for j:= 0 to Pred(ListaRetornoWeb[i].ListaRejeicao.Count) do
           begin
             SLRemessa.Add('[Rejeicao'+IntToStr(j)+']' + sLineBreak +
                           'Campo=' + ListaRetornoWeb[i].ListaRejeicao[j].Campo + sLineBreak +
                           'Codigo=' + ListaRetornoWeb[i].ListaRejeicao[j].Codigo + sLineBreak +
                           'Versao=' + ListaRetornoWeb[i].ListaRejeicao[j].Versao + sLineBreak +
                           'Mensagem=' + ListaRetornoWeb[i].ListaRejeicao[j].Mensagem + sLineBreak +
                           'Ocorrencia=' + ListaRetornoWeb[i].ListaRejeicao[j].Ocorrencia + sLineBreak +
                           'Valor='+ ListaRetornoWeb[i].ListaRejeicao[j].Valor + sLineBreak );
           end;

           SLRemessa.Add('HEADER' + sLineBreak +
                       'Versao='+ ListaRetornoWeb[i].Header.Versao + sLineBreak +
                       'Autenticacao=' + ListaRetornoWeb[i].Header.Autenticacao + sLineBreak +
                       'Usuario_Servico=' + ListaRetornoWeb[i].Header.Usuario_Servico + sLineBreak +
                       'Usuario=' + ListaRetornoWeb[i].Header.Usuario + sLineBreak +
                       'Operacao='  + TipoOperacaoToStr(ListaRetornoWeb[i].Header.Operacao) + sLineBreak +
                       'Indice=' + IntToStr(ListaRetornoWeb[i].Header.Indice) + sLineBreak +
                       'Sistema_Origem=' + ListaRetornoWeb[i].Header.Sistema_Origem + sLineBreak +
                       'Agencia=' + IntToStr(ListaRetornoWeb[i].Header.Agencia) + sLineBreak +
                       'ID_Origem=' + ListaRetornoWeb[i].Header.Id_Origem + sLineBreak +
                       'Data_Hora=' +FormatDateTime('dd/mm/yyyy hh:nn:ss',ListaRetornoWeb[i].Header.Data_Hora) + sLineBreak +
                       'ID_Processo=' + ListaRetornoWeb[i].Header.Id_Processo + sLineBreak +
                       'DADOS' + sLineBreak +
                       'Excessao=' +ListaRetornoWeb[i].DadosRet.Excecao + sLineBreak +
                       'CONTROLE_NEGOCIAL' + sLineBreak +
                       'Origem_Retorno=' + ListaRetornoWeb[i].DadosRet.ControleNegocial.OriRetorno + sLineBreak +
                       'NSU=' + ListaRetornoWeb[i].DadosRet.ControleNegocial.NSU + sLineBreak +
                       'Cod_Retorno=' + ListaRetornoWeb[i].DadosRet.ControleNegocial.CodRetorno + sLineBreak +
                       'Msg_Retorno=' + ListaRetornoWeb[i].DadosRet.ControleNegocial.Retorno + sLineBreak +
                       'COMPROVANTE' + sLineBreak +
                       'Data=' +  FormatDateTime('dd/mm/yyyy', ListaRetornoWeb[i].DadosRet.Comprovante.Data) + sLineBreak +
                       'Hora=' +  ListaRetornoWeb[i].DadosRet.Comprovante.Hora + sLineBreak +
                       'ID_BOLETO' + sLineBreak +
                       'Codigo_Barras=' + ListaRetornoWeb[i].DadosRet.IDBoleto.CodBarras + sLineBreak +
                       'Linha_Digitavel=' + ListaRetornoWeb[i].DadosRet.IDBoleto.LinhaDig + sLineBreak +
                       'Nosso_Numero=' + ListaRetornoWeb[i].DadosRet.IDBoleto.NossoNum + sLineBreak +
                       'URL=' + ListaRetornoWeb[i].DadosRet.IDBoleto.URL + sLineBreak +
                       'CONSULTA_BOLETO' + sLineBreak +
                       'Numero_Documento=' + ListaRetornoWeb[i].DadosRet.TituloRet.NumeroDocumento + sLineBreak +
                       'Data_Vencimento=' + FormatDateTime('dd/mm/yyyy',ListaRetornoWeb[i].DadosRet.TituloRet.Vencimento) + sLineBreak +
                       'Valor=' + CurrToStr(ListaRetornoWeb[i].DadosRet.TituloRet.ValorDocumento) + sLineBreak
                        );
          if NaoEstaVazio(ListaRetornoWeb[i].DadosRet.TituloRet.CodBarras) then
          begin
           SLRemessa.Add('TITULO_RETORNO' + sLineBreak  +
            'vencimento_titulo='+FormatDateTime('dd/mm/yyyy',ListaRetornoWeb[i].DadosRet.TituloRet.Vencimento)+ sLineBreak +
            'tipo_carteira_titulo='+ListaRetornoWeb[i].DadosRet.TituloRet.Carteira+ sLineBreak +
            'nosso_numero='+ListaRetornoWeb[i].DadosRet.TituloRet.NossoNumero+ sLineBreak +
            'seu_numero='+ListaRetornoWeb[i].DadosRet.TituloRet.SeuNumero+ sLineBreak +
            'especie='+ListaRetornoWeb[i].DadosRet.TituloRet.EspecieDoc+ sLineBreak +
            'codigo_barras='+ListaRetornoWeb[i].DadosRet.TituloRet.CodBarras+ sLineBreak +
            'numero_linha_digitavel='+ListaRetornoWeb[i].DadosRet.TituloRet.LinhaDig+ sLineBreak +
            'local_pagamento='+ListaRetornoWeb[i].DadosRet.TituloRet.Mensagem.Text+ sLineBreak +
            'data_processamento='+FormatDateTime('dd/mm/yyyy',ListaRetornoWeb[i].DadosRet.TituloRet.DataProcessamento)+ sLineBreak +
            'data_emissao='+FormatDateTime('dd/mm/yyyy',ListaRetornoWeb[i].DadosRet.TituloRet.DataDocumento)+ sLineBreak +
            'uso_banco='+ListaRetornoWeb[i].DadosRet.TituloRet.UsoBanco+ sLineBreak +
            'valor_titulo='+CurrToStr(ListaRetornoWeb[i].DadosRet.TituloRet.ValorDocumento)+ sLineBreak +
            'valor_desconto='+CurrToStr(ListaRetornoWeb[i].DadosRet.TituloRet.ValorDesconto)+ sLineBreak +
            'valor_outra_deducao='+CurrToStr(ListaRetornoWeb[i].DadosRet.TituloRet.ValorDespesaCobranca)+ sLineBreak +
            'valor_juro_multa='+CurrToStr(ListaRetornoWeb[i].DadosRet.TituloRet.ValorMoraJuros)+ sLineBreak +
            'valor_outro_acrescimo='+CurrToStr(ListaRetornoWeb[i].DadosRet.TituloRet.ValorOutrosCreditos)+ sLineBreak +
            'valor_total_cobrado='+CurrToStr(ListaRetornoWeb[i].DadosRet.TituloRet.ValorPago) + sLineBreak +
            'texto_informacao_cliente_beneficiario=' +ListaRetornoWeb[i].DadosRet.TituloRet.Informativo.Text  );

          end;
        end;

        SLRemessa.SaveToFile( PathWithDelim(ExtractFilePath(Application.ExeName))+'RetornoRegistro.txt' );
      finally
        SLRemessa.Free;
      end;
      ShowMessage('Retorno Envio gerado em: '+ PathWithDelim(ExtractFilePath(Application.ExeName))+'RetornoRegistro.txt' );

    end;

  end;

end;

 

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Este tópico foi criado há 1679 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...
The popup will be closed in 10 segundos...