Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

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"

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á 1075 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.