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
8 minutos atrás, 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?

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
3 minutos atrás, 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.

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"

Postado (editado)
Agora, Victor H. Gonzales - Panda disse:

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

no loadfile?

image.png.2fb6b9d7f4dbdc0577c7ca4191f2a469.png

Depois que passa pela ChavePrivada ele perde a referencia.

image.thumb.png.b375ea6282ba24fdd770dbcdb00e973d.png

Editado por HelioNeto
  • 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
2 minutos atrás, HelioNeto disse:

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

image.png.a393cd2fd9d08f2ccbd8a16efc76c303.png

Como eu faço para Atribuir atJWT?

 

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
25 minutos atrás, 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

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"

Postado
8 minutos atrás, Victor H. Gonzales - Panda disse:

não entra novamente na parte de certificados?

Não, o Loadfromfile  é no TOAuth.Create.
Ele é criado e antes de criar o Boleto Bradesco e só ali que muda o Type para atJWT
se depois que criar o Bradesco colocar para realizar o LoadFromFile acho que vai funcionar.

  • Consultores
Postado

ACBrBoletoW_Bradesco.pasACBrBoletoWS.Rest.OAuth.pas

 

faça os testes com esses 2 ajustes por favor

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
28 minutos atrás, Victor H. Gonzales - Panda 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

 

  • Consultores
Postado
2 minutos atrás, 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

 

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.pasACBrBoletoWS.Rest.OAuth.pas

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
10 horas atrás, 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);

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

8 horas atrás, 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. 

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

  • Consultores
Postado
59 minutos atrás, 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.

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"

Postado
Agora, Victor H. Gonzales - Panda disse:

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

 

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

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

1h a menos que Brasília.

  • Consultores
Postado
1 minuto atrás, HelioNeto disse:

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

1h a menos que Brasília.

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.

10 horas atrás, 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.

 

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
8 minutos atrás, 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....

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