Pessoal, estou tentando fazer uma requisição post para a api de BOLETOS do banco Itau. Eu consegui pegar a o accessToken utilizando o http, porém na hora de enviar o boleto, recebo a menagem de erro que enviei anexo deste post ("sslv3 alert handshake failure").
Vi em outro post, a recomendação de utilizar o Arat Synapse. Porém fiquei com dúvida de como enviar os certificados.
Aqui está o meu código:
http := TIdHTTP.Create(nil);
ssl := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
params := TStringList.Create;
jObject:= TJsonObject.Create(nil);
// ssl.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
ssl.SSLOptions.CertFile := 'caminho\ARQUIVO_CERTIFICADO.crt';
ssl.SSLOptions.KeyFile := 'caminho\ARQUIVO_CHAVE_PRIVADA.key';
ssl.SSLOptions.Mode := sslmClient;
// SSL.SSLOptions.Method := sslvTLSv1;
// SSL.SSLOptions.Mode := sslmUnassigned;
http.IOHandler := ssl;
http.Request.ContentType := 'application/json';
http.Request.CustomHeaders.AddValue('x-itau-apikey', 'client_key');
http.Request.CustomHeaders.Add('Authorization:Bearer ' + token);
response := http.Post(url, payStream);
O código comentado, foram opções que já usei.
Tentei utilizar também o TRequest.
client := TRESTClient.Create(nil);
certFile := TMemoryStream.Create;
certFile2 := TMemoryStream.Create;
try
client.BaseURL := 'url';
request := TRESTRequest.Create(nil);
certFile.LoadFromFile('caminho\ARQUIVO_CERTIFICADO.crt');
certFile2.LoadFromFile('caminho\ARQUIVO_CHAVE_PRIVADA.key');
try
request.Client := client;
request.Method := rmPOST;
request.AddParameter('x-itau-apikey', 'client_key', pkHTTPHEADER);
request.AddParameter('Content-Type', 'application/x-www-form-urlencoded', pkHTTPHEADER);
request.AddParameter('Authorization', 'Bearer ' +token, pkHTTPHEADER);
request.AddBody(certFile, TRESTContentType.ctAPPLICATION_OCTET_STREAM);
request.AddBody(certFile2, TRESTContentType.ctAPPLICATION_OCTET_STREAM);
request.AddBody(payload.text, TRESTContentType.ctAPPLICATION_JSON);
request.Execute;
response := request.Response;
Se puderem dar alguma dica do que posso fazer, ficaria muito grato.