View Single Post
  #946  
Old 07/07/2021
sEngine sEngine is offline
Miembro
 
Join Date: Jul 2021
Posts: 79
Rep Power: 6
sEngine Va por buen camino
Buenas soy nueva por aqui, buscando como pelearme con ticketbai llegué a este foro.

Estaba teniendo problemas con el envío desde delphi, ya que en mi version no tengo "TNetHTTPClient" por lo que he estado investigando con el Idhttp (que habia leido que no se podia) y he conseguido que se envie con su certificado.
Os dejo el codigo que me ha funcionado por si a alguien más le puede ser útil.

De primeras hay que crear un componente TIdSSLIOHandlerSocketOpenSSL y otro TIdhttp en el formulario.

En el TIdSSLIOHandlerSocketOpenSSL hay que añadirle al evento OnGetPassword lo siguiente

Code:
procedure TFMain.LHandlerGetPassword(var Password: string);
begin
  Password := 'IZProd2021';
 end;
Y luego ya el codigo del envio

Code:
  RequestBody := TFileStream.Create('tempBAi_firmado.xml', fmOpenRead);

  LHandler.SSLOptions.SSLVersions := [sslvTLSv1_2];
  LHandler.SSLOptions.CertFile := 'sello_entidad_act.p12';
  LHandler.SSLOptions.KeyFile := 'sello_entidad_act.p12';
  LHandler.ongetpassword := LHandlerGetPassword;
  idhttp_fac := TIdhttp.Create();
  idhttp_fac.IOHandler:=LHandler;
  idhttp_fac.Request.ContentType := 'application/xml';

   Respuesta := idhttp_fac.Post('h t t p s://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta',RequestBody);
Espero que os sea util
Reply With Quote