HelioNeto Postado 25 Novembro, 2024 Postado 25 Novembro, 2024 (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 2º - Depois de Passar: Então ocorre o erro mencionado: 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. 2º - Comentei um Bloco de Definir Certificado 3º - O Erro mudou: Segue o Log do Erro: - logBoleto.txt Qualquer dúvida estou a disposição. Desde já agradeço! Editado 25 Novembro, 2024 por HelioNeto Imagem desnecessária na Texto
Consultores Victor H. Gonzales - Panda Postado 25 Novembro, 2024 Consultores Postado 25 Novembro, 2024 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? Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 25 Novembro, 2024 Autor Postado 25 Novembro, 2024 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 Victor H. Gonzales - Panda Postado 25 Novembro, 2024 Consultores Postado 25 Novembro, 2024 não informe o pfx... e no ini veja se o usehttpcertificado está 0 Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 25 Novembro, 2024 Autor Postado 25 Novembro, 2024 - 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 Victor H. Gonzales - Panda Postado 25 Novembro, 2024 Consultores Postado 25 Novembro, 2024 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? Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 25 Novembro, 2024 Autor Postado 25 Novembro, 2024 (editado) Em 25/11/2024 at 18:19, 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? Expandir Depois que passa pela ChavePrivada ele perde a referencia. Editado 25 Novembro, 2024 por HelioNeto
Consultores Victor H. Gonzales - Panda Postado 25 Novembro, 2024 Consultores Postado 25 Novembro, 2024 essa linha do load que tem que entrar e dar sucesso Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 25 Novembro, 2024 Autor Postado 25 Novembro, 2024 No Momento da Criação o Type está atNoAuth Como eu faço para Atribuir atJWT?
Consultores Victor H. Gonzales - Panda Postado 25 Novembro, 2024 Consultores Postado 25 Novembro, 2024 Em 25/11/2024 at 18:59, HelioNeto disse: No Momento da Criação o Type está atNoAuth Como eu faço para Atribuir atJWT? Expandir a Classe do Bradesco que define isso Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 25 Novembro, 2024 Autor Postado 25 Novembro, 2024 Até essa Linha: 288 está certo. atJWT 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 Victor H. Gonzales - Panda Postado 25 Novembro, 2024 Consultores Postado 25 Novembro, 2024 Em 25/11/2024 at 19:13, HelioNeto disse: Até essa Linha: 288 está certo. atJWT 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? Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 25 Novembro, 2024 Autor Postado 25 Novembro, 2024 Em 25/11/2024 at 19:39, Victor H. Gonzales - Panda disse: não entra novamente na parte de certificados? Expandir 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 Victor H. Gonzales - Panda Postado 25 Novembro, 2024 Consultores Postado 25 Novembro, 2024 ACBrBoletoW_Bradesco.pasFetching info... ACBrBoletoWS.Rest.OAuth.pasFetching info... faça os testes com esses 2 ajustes por favor Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 25 Novembro, 2024 Autor Postado 25 Novembro, 2024 Em 25/11/2024 at 20:38, Victor H. Gonzales - Panda disse: ACBrBoletoW_Bradesco.pas 30.49 kB · 0 downloads ACBrBoletoWS.Rest.OAuth.pas 16.62 kB · 0 downloads faça os testes com esses 2 ajustes por favor Expandir Fiz os Testes e agora não ocorreu mais o Erro de Chave, agora caiu no Erro 500. Na Procedure : TOAuth.ProcessarRespostaOAuth 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 Victor H. Gonzales - Panda Postado 25 Novembro, 2024 Consultores Postado 25 Novembro, 2024 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 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? Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 25 Novembro, 2024 Autor Postado 25 Novembro, 2024 Em 25/11/2024 at 21:22, Victor H. Gonzales - Panda disse: consegue me enviar o seu ini e o certificado? Expandir Sim, vou mandar no Discord.
Consultores Victor H. Gonzales - Panda Postado 25 Novembro, 2024 Consultores Postado 25 Novembro, 2024 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 Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
hugoleite22 Postado 26 Novembro, 2024 Postado 26 Novembro, 2024 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. Grande abraço e parabéns pela iniciativa.
hugoleite22 Postado 26 Novembro, 2024 Postado 26 Novembro, 2024 Ola @Victor H. Gonzales - Panda, segue em anexo a unit alterada ACBrBoletoW_Bradesco.pas , 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. logWS.txtFetching info...
HelioNeto Postado 26 Novembro, 2024 Autor Postado 26 Novembro, 2024 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 Victor H. Gonzales - Panda Postado 26 Novembro, 2024 Consultores Postado 26 Novembro, 2024 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.... Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 26 Novembro, 2024 Autor Postado 26 Novembro, 2024 Em 26/11/2024 at 11:42, 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.... Expandir Sim, eu estou em Campo Grande/MS aqui é GMT-4. 1h a menos que Brasília.
Consultores Victor H. Gonzales - Panda Postado 26 Novembro, 2024 Consultores Postado 26 Novembro, 2024 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. 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.... Victor H Gonzales - Pandaaa Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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"
HelioNeto Postado 26 Novembro, 2024 Autor Postado 26 Novembro, 2024 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?
Recommended Posts