HelioNeto Postado 25 Novembro Postado 25 Novembro (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 por HelioNeto Imagem desnecessária na Texto
Consultores Victor H. Gonzales - Panda Postado 25 Novembro Consultores Postado 25 Novembro 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 Autor Postado 25 Novembro 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 Victor H. Gonzales - Panda Postado 25 Novembro Consultores Postado 25 Novembro 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 Autor Postado 25 Novembro - 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 Consultores Postado 25 Novembro 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? 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 Autor Postado 25 Novembro (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? Depois que passa pela ChavePrivada ele perde a referencia. Editado 25 Novembro por HelioNeto
Consultores Victor H. Gonzales - Panda Postado 25 Novembro Consultores Postado 25 Novembro 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 Autor Postado 25 Novembro No Momento da Criação o Type está atNoAuth Como eu faço para Atribuir atJWT?
Consultores Victor H. Gonzales - Panda Postado 25 Novembro Consultores Postado 25 Novembro 2 minutos atrás, HelioNeto disse: No Momento da Criação o Type está atNoAuth Como eu faço para Atribuir atJWT? 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 Autor Postado 25 Novembro 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 Consultores Postado 25 Novembro 25 minutos atrás, 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 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 Autor Postado 25 Novembro 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 Victor H. Gonzales - Panda Postado 25 Novembro Consultores Postado 25 Novembro ACBrBoletoW_Bradesco.pasACBrBoletoWS.Rest.OAuth.pas 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 Autor Postado 25 Novembro 28 minutos atrás, 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 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 Consultores Postado 25 Novembro 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 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? 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 Autor Postado 25 Novembro Agora, Victor H. Gonzales - Panda disse: consegue me enviar o seu ini e o certificado? Sim, vou mandar no Discord.
Consultores Victor H. Gonzales - Panda Postado 25 Novembro Consultores Postado 25 Novembro 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 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 Postado 26 Novembro 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 Postado 26 Novembro 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.txt
HelioNeto Postado 26 Novembro Autor Postado 26 Novembro 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 Victor H. Gonzales - Panda Postado 26 Novembro Consultores Postado 26 Novembro 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.... 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 Autor Postado 26 Novembro 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 Victor H. Gonzales - Panda Postado 26 Novembro Consultores Postado 26 Novembro 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. 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.... 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 Autor Postado 26 Novembro 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?
Recommended Posts