HelioNeto Postado Segunda as 17:30 Postado Segunda as 17:30 (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 Segunda as 17:35 por HelioNeto Imagem desnecessária na Texto
Consultores Victor H. Gonzales - Panda Postado Segunda as 17:35 Consultores Postado Segunda as 17:35 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 Segunda as 17:54 Autor Postado Segunda as 17:54 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 Segunda as 17:55 Consultores Postado Segunda as 17:55 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 Segunda as 18:16 Autor Postado Segunda as 18:16 - 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 Segunda as 18:19 Consultores Postado Segunda as 18:19 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 Segunda as 18:25 Autor Postado Segunda as 18:25 (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 Segunda as 18:27 por HelioNeto
Consultores Victor H. Gonzales - Panda Postado Segunda as 18:33 Consultores Postado Segunda as 18:33 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 Segunda as 18:59 Autor Postado Segunda as 18:59 No Momento da Criação o Type está atNoAuth Como eu faço para Atribuir atJWT?
Consultores Victor H. Gonzales - Panda Postado Segunda as 19:02 Consultores Postado Segunda as 19:02 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 Segunda as 19:13 Autor Postado Segunda as 19:13 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 Segunda as 19:39 Consultores Postado Segunda as 19:39 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 Segunda as 19:54 Autor Postado Segunda as 19:54 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 Segunda as 20:38 Consultores Postado Segunda as 20:38 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 Segunda as 21:19 Autor Postado Segunda as 21:19 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 Segunda as 21:22 Consultores Postado Segunda as 21:22 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 Segunda as 21:25 Autor Postado Segunda as 21:25 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 Segunda as 23:56 Consultores Postado Segunda as 23:56 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 Terça as 01:23 Postado Terça as 01:23 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 Terça as 01:49 Postado Terça as 01:49 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 Terça as 10:41 Autor Postado Terça as 10:41 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 Terça as 11:42 Consultores Postado Terça as 11:42 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 Terça as 11:45 Autor Postado Terça as 11:45 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 Terça as 11:47 Consultores Postado Terça as 11:47 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 Terça as 12:05 Autor Postado Terça as 12:05 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
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora