Ir para conteúdo
  • Cadastre-se

dev botao

Utilização da lib boleto


Ver Solução Respondido por José M. S. Junior,
  • Este tópico foi criado há 943 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Olá!
Estamos implementando o uso da Lib Boleto em nosso sistema. Utilizamos Delphi 3, motivo pelo qual não utilizamos os componentes.
Implementamos todos os métodos da DLL

Usamos assim para testar,

Boleto_Inicializar('', '');
Boleto_LimparLista;
Boleto_IncluirTitulos('_cedente_titulo.ini', 'I'); Esse está retornando -10
Boleto_Finalizar;

,mas estamos obtendo erro -10 na chamada do método Boleto_IncluirTitulos.

  • Moderadores
Postado

Boa tarde!!!
Se não deu erro em inicializar e no limparlista pode ser que tenha algum erro no arquivo _cedente_titulo.ini 

 

Obs: Movendo o tópico para área PRO.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

  • Consultores
Postado
Em 22/04/2022 at 11:43, Fernando_LBC disse:

Olá!
Estamos implementando o uso da Lib Boleto em nosso sistema. Utilizamos Delphi 3, motivo pelo qual não utilizamos os componentes.
Implementamos todos os métodos da DLL

Usamos assim para testar,

Boleto_Inicializar('', '');
Boleto_LimparLista;
Boleto_IncluirTitulos('_cedente_titulo.ini', 'I'); Esse está retornando -10
Boleto_Finalizar;

,mas estamos obtendo erro -10 na chamada do método Boleto_IncluirTitulos.

@Fernando_LBC
Veja documentação :
https://acbr.sourceforge.io/ACBrLib/Boleto_IncluirTitulos.html

-10 Indica que houve falha na execução do método.

Utilize o método Boleto_UltimoRetorno, para retornar descrição do erro:
https://acbr.sourceforge.io/ACBrLib/Boleto_UltimoRetorno.html

  • Membros Pro
Postado

Olá Consultores!
Tudo bem?

Meu nome é Channtropyque e trabalho com o Fernando, motivo pelo qual estou usando este usuário Fernando_LBC.

Estamos precisando de suporte para consumir os recursos da DLL de Boleto.

Passos que já foram executados:
- baixamos as DLLs do boleto; 
- baixamos as DLLs que foram indicadas no vídeo (libcrypto-1_1-x64, libexslt, libiconv, libssl-1_1-x64, libxml2, libxslt);
- criamos os arquivos .ini  com base nos exemplos da documentão (ACBrLib, cedente, cedente_titulo e titulo);  
- criamos as chamadas dos métodos da DLL em modo estático;
- criamos um projeto simples com um botão para testar o consumo dos métodos.
- testamos o método BOLETO_IncluirTitulos e obtivemos o erro -10. utilizamos os métodos nesta sequência: Boleto_Inicializar, BOLETO_LimparLista, BOLETO_IncluirTitulos e Boleto_Finalizar.

Todos as Dlls e arquivos .INI foram colocados no mesmo diretórios que o executável.

Durante a nova leitura da documentação encontrados novamente vários links quebrados.

  • Membros Pro
Postado
28 minutos atrás, antonio.carlos disse:

tudo bem... mas não conseguem fazer nenhum testes com programa exemplo ?
anexe o arquivo .ini e o log da acbrlib por gentileza.

O arquivo de cedente.ini foi copiado da documentação. Um detalhe interessante é que quando foi usado o método Boleto_Inicializar foi criado um arquivo "D", sem extensão. Então coloquei um .INI nele para ver os dados.

_cedente.ini D.ini

  • Moderadores
Postado

Se estiver utilizando Delphi será mais viável e rápido utilizar o próprios componente... A lib é mais viável no case de outras linguagens... Mas de qualquer forma se não está gerando o arquivo ACBrLib.ini na inicialização sigfica que está ocorrendo problema logo ao instanciar a lib. Precisa ser lido o código de retorno e ultimo_retorno de cada método enviado antes de enviar o proximo para identificar onde está ocorrendo o problema.

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

  • Moderadores
Postado
3 horas atrás, José M. S. Junior disse:

Se estiver utilizando Delphi será mais viável e rápido utilizar o próprios componente... A lib é mais viável no case de outras linguagens... Mas de qualquer forma se não está gerando o arquivo ACBrLib.ini na inicialização sigfica que está ocorrendo problema logo ao instanciar a lib. Precisa ser lido o código de retorno e ultimo_retorno de cada método enviado antes de enviar o proximo para identificar onde está ocorrendo o problema.

Delphi 3 não rola o ACBr via componente.

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Consultores
Postado
14 horas atrás, Fernando_LBC disse:

- baixamos as DLLs que foram indicadas no vídeo (libcrypto-1_1-x64, libexslt, libiconv, libssl-1_1-x64, libxml2, libxslt);

Bom dia,

O problema pode ser com as dlls.

Você está gerando uma aplicação x86, utilize todas as dlls x86 e não as x64.

As dlls devem seguir a sua aplicação e não o S.O. que você está usando.

  • Curtir 1
  • Membros Pro
Postado
2 horas atrás, Renato Rubinho disse:

Bom dia,

O problema pode ser com as dlls.

Você está gerando uma aplicação x86, utilize todas as dlls x86 e não as x64.

As dlls devem seguir a sua aplicação e não o S.O. que você está usando.

Olá!
Foi criado um aplicativo x64 com as Dll MT (ACBrBoleto64.dll).

  • Moderadores
Postado

Vamos por partes.... 

1- A ACBrLibBoleto.dll foi copiada para pasta do executável e está na mesma versão que está compilando sua aplicação (x86 ou x64)?

2- Se o passo 1 estiver ok ao chamar o metodo de inicializar da lib, automaticamente será criado o arquivo de configuração (ACBrLib.ini) no diretorio da lib, com todas as configurações default. Se não estiver gerando esse arquive existe problema nesse ponto, pode ser na chamada do método para instanciar ou a ACBrlibBoleto.dll está na versão errada.

obs: Se estiver utilizando a versão MultThread, precisa passar uma variável tipo THandle, como primeiro parametro para que a lib possa obter o ponteiro da instancia correta. ex:

var
  Handle: THandle;
begin
  Boleto_Inicializar(Handle, '','');
  Boleto_ConfigurarDados(Handle, '..\Cedente.ini');
  Boleto_IncluirTitulos(Handle, '..\Titulo.ini');
  Boleto_Imprimir(Handle, '');   
  Boleto_Finalizar(Handle));   

3- Se o passo 2 está ok, automaticamente será gerado um log de todos os métodos recebidos pela lib e retornados pela lib, nesse caso anexe esse log para que possamos analisar exatamente o erro.

  • Curtir 2
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
4 horas atrás, Juliomar Marchetti disse:

Pera tu falou em Delphi 3, agora me falou que fez uma aplicação x64, mas o Delphi 3 não deixa

Estava usando um projeto feito no Delphi 10.4 Update 2 para x64 apenas para teste.

Agora a tarde instalei o Delphi 3 e usei a DLL de 32 bits MT. A mesma foi obtida no seção de Download conf. imagem abaixo.

image.png.0b90081958b524b46d73256c15705c73.png

O Sr. José M. S. Junior orientou que fosse usado o código:

var
  Handle: THandle;
begin
  Boleto_Inicializar(Handle, '','');
  Boleto_ConfigurarDados(Handle, '..\Cedente.ini');
  Boleto_IncluirTitulos(Handle, '..\Titulo.ini');
  Boleto_Imprimir(Handle, '');   
  Boleto_Finalizar(Handle));   

Mas ocorreu um erro de compilação. Segue imagem com o erro.

Na declaração do Método function Boleto_Inicializar(const eArqConfig, eChaveCrypt: PChar): longint; External 'ACBrBoleto32.dll' não contém o referido parâmetro.


image.thumb.png.dd04e376b89704b71ba445cbb81eb99b.png

  • Moderadores
  • Solution
Postado
24 minutos atrás, Fernando_LBC disse:

Na declaração do Método function Boleto_Inicializar(const eArqConfig, eChaveCrypt: PChar): longint; External 'ACBrBoleto32.dll' não contém o referido parâmetro.

De qual unit esta chamando esse método? Note que existem classe diferentes para declaração dos metodos ST e MT.

Nos fonte da lib temos um exemplo da classe Imports para uso da lib com Delphi ou Lazarus

ACBrLibBoletoStaticImportMT.pas em: http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Fontes/NFe/

  • 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

Olá!
Quais as Dlls que devem ser utilizadas em conjunto com a ACBrBoleto32.dll?

Na aplicação atual de x86 feita em Delphi 3, continua ocorrendo a criação de arquivos de configuração do tipo ACBrLib.ini.
Estes arquivos estão sendo criados com nomes como �g2����[��]����� e �i2����[��]�, por exemplo.

image.png.d4321d6235110faa7f9da4b86e1c8e12.png

  • Moderadores
Postado
17 horas atrás, Fernando_LBC disse:

stava usando um projeto feito no Delphi 10.4 Update 2 para x64 apenas para teste.

se tu usa esssa versão use o componente

agora se usa Delphi 3 sim a dll vai ter que usar

17 horas atrás, Fernando_LBC disse:

Agora a tarde instalei o Delphi 3 e usei a DLL de 32 bits MT. A mesma foi obtida no seção de Download conf. imagem abaixo.

porque tu instalou ou seu software é feito mesmo em delphi 3?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Postado
20 horas atrás, José M. S. Junior disse:

De qual unit esta chamando esse método? Note que existem classe diferentes para declaração dos metodos ST e MT.

Nos fonte da lib temos um exemplo da classe Imports para uso da lib com Delphi ou Lazarus

ACBrLibBoletoStaticImportMT.pas em: http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Fontes/NFe/

Olá!
Quais as Dlls que devem ser utilizadas em conjunto com a ACBrBoleto32.dll?

Na aplicação atual de x86 feita em Delphi 3, continua ocorrendo a criação de arquivos de configuração do tipo ACBrLib.ini.
Estes arquivos estão sendo criados com nomes como �g2����[��]����� e �i2����[��]�, por exemplo.

image.png.d4321d6235110faa7f9da4b86e1c8e12.png

  • Moderadores
Postado

O Boleto em si só depende da ACBrBoleto32.dll mesmo, as demais dlls da openssl são necessários apenas para integração de boleto via API, mas não vai interferir no funcionamento inicial.

Esse erro parece estar ligado a forma que está sendo instanciada a dll... Verifique tbm o tipo de convenção utilizada na sua aplicação STDCALL ou CDELC pois note que existem dlls especificas para cada tipo de uso.

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
2 minutos atrás, José M. S. Junior disse:

O Boleto em si só depende da ACBrBoleto32.dll mesmo, as demais dlls da openssl são necessários apenas para integração de boleto via API, mas não vai interferir no funcionamento inicial.

Esse erro parece estar ligado a forma que está sendo instanciada a dll... Verifique tbm o tipo de convenção utilizada na sua aplicação STDCALL ou CDELC pois note que existem dlls especificas para cada tipo de uso.

O tipo é StdCall.

Perguntei isso porque está ocorrendo um erro quando fecho a aplicação.

image.png.dce7f89d8a627978bfcf1d0edc7a042e.png

2 minutos atrás, Fernando_LBC disse:

O tipo é StdCall.

Perguntei isso porque está ocorrendo um erro quando fecho a aplicação.

image.png.dce7f89d8a627978bfcf1d0edc7a042e.png

Exemplo:
  function Boleto_Inicializar(var libHandle: THandle; const eArqConfig, eChaveCrypt: PChar): longint; External 'ACBrBoleto32.dll';
 

  • Membros Pro
Postado
1 hora atrás, Fernando_LBC disse:

O tipo é StdCall.

Perguntei isso porque está ocorrendo um erro quando fecho a aplicação.

image.png.dce7f89d8a627978bfcf1d0edc7a042e.png

Exemplo:
  function Boleto_Inicializar(var libHandle: THandle; const eArqConfig, eChaveCrypt: PChar): longint; External 'ACBrBoleto32.dll';
 

Resolvido.
Muito obrigado!

  • Curtir 1
  • Este tópico foi criado há 943 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.