Ir para conteúdo
  • Cadastre-se

dev botao

Boleto Bradesco Via WebService com Erro


Ver Solução Respondido por Victor H. Gonzales - Panda,

Recommended Posts

Postado (editado)

Baixei os Fontes atualizados e Inicie os Testes no Boleto Bradesco.
Segui conforme descrito no Tópico 

 

FACBrBoleto.Configuracoes.WebService.UseCertificateHTTP := False;
FACBrBoleto.Configuracoes.WebService.ArquivoKEY :='c:\pastaCertificado\Certificado.key';
FACBrBoleto.Configuracoes.WebService.ArquivoCRT :='c:\pastaCertificado\Certificado.crt';

No entanto, ocorre erro:

25/11/24 12:58:15:609 - Falha Envio: Error loading Private Key
Error: 151584876 - error:0909006C:PEM routines:get_name:no start line

Analisei os Fontes e Percebi que está sendo Removido o Certificado na procedure DefinirCertificado ao passar pela na Linha 149:
Em: TBoletoWSREST.DefinirCertificado

1º - Imagem antes de Passar 

 1-definir-certificado.webp.6938c745bd448400d057508794213913.webp

2º - Depois de Passar:

2-definir-certificado.webp.b888d948e752090a4fcb00848cd1fe62.webp

Então ocorre o erro mencionado:

3-erro-generateJWT.thumb.webp.15c7b753addb729bd18dfdb94c8a4197.webp

 

Fiz um Ajuste nos Fontes, Reinstalei a ACBr e consegui passar desse Erro, agora está caindo no Erro "500".

1º Na Leitura do Arquivo INI passei o Texto da .KEY para a Variável ChavePrivada.

4-ler-arq-ini-ChavePrivada.thumb.webp.a5806c6906fabb81d40f7d2a02607fbb.webp

2º - Comentei um Bloco de Definir Certificado

5-comentado-bloco-definir-certificado.thumb.webp.26cc3d34651c2e62e0088dbe3b4afb8e.webp

3º - O Erro mudou:

image.thumb.png.822e4af15a043cb6c7da7429d3087480.png

Segue o Log do Erro:
logBoleto.txt

Qualquer dúvida estou a disposição.

Desde já agradeço!

Editado por HelioNeto
Imagem desnecessária na Texto
  • Consultores
Postado

Boa tarde,

na conexão realmente não é passada o certificado digital, somente é gerado um "hash" para gerar o jwt.

você está informando o arquivo key e passando usecertificadohttp como false?

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
  Em 25/11/2024 at 17:35, Victor H. Gonzales - Panda disse:

Boa tarde,

na conexão realmente não é passada o certificado digital, somente é gerado um "hash" para gerar o jwt.

você está informando o arquivo key e passando usecertificadohttp como false?

Expandir  

Isso, estou passando direto no btnWSRegistrarClick.

(...)

begin
  Boleto := FACBrBoleto;

  Boleto.Configuracoes.WebService.UseCertificateHTTP := False;
  Boleto.Configuracoes.WebService.ArquivoKEY :='cert-gerencial-auto.key';
  Boleto.Configuracoes.WebService.ArquivoCRT :='cert-gerencial-auto.crt';

(...)

Mas também informei no AcbrBoletoDemo.ini

[WEBSERVICE]

(...)

ArquivoCRT=C:\svn\trunk2\Exemplos\ACBrBoleto\Delphi\cert-gerencial-auto.crt
ArquivoKEY=C:\svn\trunk2\Exemplos\ACBrBoleto\Delphi\cert-gerencial-auto.key
ArquivoPFX=C:\svn\trunk2\Exemplos\ACBrBoleto\Delphi\cert-gerencial-auto.pfx

(...)

 

  • Consultores
Postado

não informe o pfx... e no ini veja se o usehttpcertificado está 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"

Postado

- Apaguei meus arquivos alterados;
- Baixei os Fontes Novamente;

- Reinstalei a ACBr;
- Alterei o AcbrBoletoDemo.ini

-------------

[WEBSERVICE]

ArquivoCRT=cert-gerencial-auto.crt
ArquivoKEY=cert-gerencial-auto.key
ArquivoPFX=
Senha=
UseCertificateHTTP=0

-------------

Na Executar o Botão btnWSRegistrarClick

Passei novamente:

Boleto.Configuracoes.WebService.UseCertificateHTTP := False;
Boleto.Configuracoes.WebService.ArquivoKEY :='cert-gerencial-auto.key';
Boleto.Configuracoes.WebService.ArquivoCRT :='cert-gerencial-auto.crt';

 

Mas no TACBrJWTAuth.GenerateJWT a Variável FSecretKey está Vazia.

Quando executa LACBrOpenSSLUtils.LoadPrivateKeyFromString(FSecretKey);

Ocorre o Erro.

  • Consultores
Postado
  Em 25/11/2024 at 18:16, HelioNeto disse:

- Apaguei meus arquivos alterados;
- Baixei os Fontes Novamente;

- Reinstalei a ACBr;
- Alterei o AcbrBoletoDemo.ini

-------------

[WEBSERVICE]

ArquivoCRT=cert-gerencial-auto.crt
ArquivoKEY=cert-gerencial-auto.key
ArquivoPFX=
Senha=
UseCertificateHTTP=0

-------------

Na Executar o Botão btnWSRegistrarClick

Passei novamente:

Boleto.Configuracoes.WebService.UseCertificateHTTP := False;
Boleto.Configuracoes.WebService.ArquivoKEY :='cert-gerencial-auto.key';
Boleto.Configuracoes.WebService.ArquivoCRT :='cert-gerencial-auto.crt';

 

Mas no TACBrJWTAuth.GenerateJWT a Variável FSecretKey está Vazia.

Quando executa LACBrOpenSSLUtils.LoadPrivateKeyFromString(FSecretKey);

Ocorre o Erro.

Expandir  

mas no codigo fonte, na hora que ele vai fazer o load, está conseguindo está conseguindo encontrar esse arquivo ?

no loadfile?

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

essa linha do load que tem que entrar e dar sucesso

image.png

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
  Em 25/11/2024 at 18:59, HelioNeto disse:

No Momento da Criação o Type está atNoAuth

image.png.a393cd2fd9d08f2ccbd8a16efc76c303.png

Como eu faço para Atribuir atJWT?

 

Expandir  

a Classe do Bradesco que define isso

image.png

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

Até essa Linha: 288 está certo. atJWT

image.thumb.png.32ecefc31507c2a683e67536b6d5ec86.png

mas depois executa a LJWTAuth.GenerateJWT antes de ter entrado no LoadFromFile que você mencionou.

parece que a Criação do Boleto bradesco está posterior a criação do TOAuth

  • Consultores
Postado
  Em 25/11/2024 at 19:13, HelioNeto disse:

Até essa Linha: 288 está certo. atJWT

image.thumb.png.32ecefc31507c2a683e67536b6d5ec86.png

mas depois executa a LJWTAuth.GenerateJWT antes de ter entrado no LoadFromFile que você mencionou.

parece que a Criação do Boleto bradesco está posterior a criação do TOAuth

Expandir  

não entra novamente na parte de certificados?

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
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
  Em 25/11/2024 at 20:38, Victor H. Gonzales - Panda disse:
Expandir  

Fiz os Testes e agora não ocorreu mais o Erro de Chave, agora caiu no Erro 500.

Na Procedure TOAuth.ProcessarRespostaOAuth

image.thumb.png.8f0e5299891f50a69f6ed042c46d3f74.png

Segue o log.
25/11/24 17:04:32:126 - Comando Enviar: TOAuth
25/11/24 17:04:35:436 - URL: [POST] https://proxy.api.prebanco.com.br/auth/server/v1.1/token
25/11/24 17:06:11:807 - Erro: HTTP_Code=500 Erro=grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=ASSINATURA
25/11/24 17:06:13:767 - Falha Envio: Falha na Autenticação: HTTP_Code=500 Erro=grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=ASSINATURA

 

  • Consultores
Postado
  Em 25/11/2024 at 21:19, HelioNeto disse:

Fiz os Testes e agora não ocorreu mais o Erro de Chave, agora caiu no Erro 500.

Na Procedure TOAuth.ProcessarRespostaOAuth

image.thumb.png.8f0e5299891f50a69f6ed042c46d3f74.png

Segue o log.
25/11/24 17:04:32:126 - Comando Enviar: TOAuth
25/11/24 17:04:35:436 - URL: [POST] https://proxy.api.prebanco.com.br/auth/server/v1.1/token
25/11/24 17:06:11:807 - Erro: HTTP_Code=500 Erro=grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=ASSINATURA
25/11/24 17:06:13:767 - Falha Envio: Falha na Autenticação: HTTP_Code=500 Erro=grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=ASSINATURA

 

Expandir  

consegue me enviar o seu ini e o certificado?

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

consegue verificar juntamente ao suporte do banco? o IAT está sendo gerado conforme a regra do manual FUnixTime := DateTimeToUnix(Now);

25/11/24 20:47:32:154 - Falha Envio: Falha na Autentica  o: HTTP_Code=401 Erro={
    "code": "105",
    "message": "invalid issuance time (iat)",
    "details": null
}

 

{ "aud": "https://proxy.api.prebanco.com.br/auth/server/v1.1/token", "sub": "81693c72-XXXXXXXXXXXXXXX-f5eaade3fc99", "iat": 1732567433, "exp": 1732571033, "jti": 1732567433000, "ver": "1.1" }

o sub eu troquei o valor pelos XXXXXX

ACBrBoletoW_Bradesco.pasFetching info... ACBrBoletoWS.Rest.OAuth.pasFetching info...

segue as ultimas units que alterei tambem...

é o mesmo retorno obtido no postman

 

image.png

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

Olá Victor, Boa Noite

 

Estava acompanhando seus posts em conjunto com o @HelioNeto, onde fiz uns testes com essas ultimas units que você postou aqui. O Ws retornou com sucesso após uma pequena mudança que fiz, mesmo que ainda precise transformar numa solução definitiva. O erro apresentava devido o IAT estar sendo definido pela data atual. Porém nos testes que estava fazendo direto no Postman, só estava dando certo quando usava a data UTC. Assim, fiz essas 2 mudanças conforme figura abaixo o que resultou um retorno 200 do WS.

 

image.thumb.png.8cf6cb6954481cc3397f42569f5053dd.png

 

Grande abraço e parabéns pela iniciativa.

 

Postado
  Em 25/11/2024 at 23:56, Victor H. Gonzales - Panda disse:

consegue verificar juntamente ao suporte do banco? o IAT está sendo gerado conforme a regra do manual FUnixTime := DateTimeToUnix(Now);

Expandir  

Então, no Postman eu consegui Gerar o Token e Enviar o Boleto, retornando 400 bad request por enviar dados fictícios.

  Em 26/11/2024 at 01:49, hugoleite22 disse:

Ola , segue em anexo a unit alterada  onde acrescentei também uma função para retornar a data atual UTC. Testei aqui e o retorno foi positivo, conforme log também em anexo. 

Expandir  

Hugo, mais tarde eu vou testar sua Unit, agora estou ocupado em outra demanda.
Obrigado.

  • Consultores
Postado
  Em 26/11/2024 at 10:41, HelioNeto disse:

Então, no Postman eu consegui Gerar o Token e Enviar o Boleto, retornando 400 bad request por enviar dados fictícios.

Hugo, mais tarde eu vou testar sua Unit, agora estou ocupado em outra demanda.
Obrigado.

Expandir  

tu tá com fuso horário diferente de -0300 ?

 

porque estava ontem retornando erro de IAT, que é erro de horário.... 

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
  Em 26/11/2024 at 11:45, HelioNeto disse:

Sim, eu estou em Campo Grande/MS aqui é GMT-4.

1h a menos que Brasília.

Expandir  

pode ter sido isso o problema do IAT então... o cadastro no banco com fuso -4 e eu enviando -3;

testa depois com a classe.

  Em 26/11/2024 at 01:23, hugoleite22 disse:

Olá Victor, Boa Noite

 

Estava acompanhando seus posts em conjunto com o @HelioNeto, onde fiz uns testes com essas ultimas units que você postou aqui. O Ws retornou com sucesso após uma pequena mudança que fiz, mesmo que ainda precise transformar numa solução definitiva. O erro apresentava devido o IAT estar sendo definido pela data atual. Porém nos testes que estava fazendo direto no Postman, só estava dando certo quando usava a data UTC. Assim, fiz essas 2 mudanças conforme figura abaixo o que resultou um retorno 200 do WS.

 

image.thumb.png.8cf6cb6954481cc3397f42569f5053dd.png

 

Grande abraço e parabéns pela iniciativa.

 

Expandir  

Bom dia...

Obrigado pelos testes... vou ter que verificar então essa questão para pegar e transformar em UTC....

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
  Em 26/11/2024 at 11:47, Victor H. Gonzales - Panda disse:

pode ter sido isso o problema do IAT então... o cadastro no banco com fuso -4 e eu enviando -3;

testa depois com a classe.

Bom dia...

Obrigado pelos testes... vou ter que verificar então essa questão para pegar e transformar em UTC....

Expandir  

Victor, vou esperar você ajustar e depois eu faço o teste, pode ser?

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