Ver Mensaje Individual
  #946  
Antiguo 07-07-2021
sEngine sEngine is offline
Miembro
 
Registrado: jul 2021
Posts: 53
Reputación: 3
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

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

Código:
  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
Responder Con Cita