Ver Mensaje Individual
  #12  
Antiguo 21-10-2021
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 129
Reputación: 19
APO Va por buen camino
Cita:
Empezado por APO Ver Mensaje
Hola a todos, soy otra "víctima" del TicketBAI que estoy empezando a encontrarme con los primeros problemas. Ante todo, agradeceros a todos por las aportaciones en este foro ya que son de muchísima ayuda

El primer problema que me encuentro es cómo cargar los certificados en la constante ACertificateList de la función NetHTTPClient1NeedClientCertificate. He leído en algún post anterior que lo hace el procedimiento DoGetClientCertificates, pero ¿cómo lo hago para llamar a este procedimiento? Perdonar mi ignorancia, pero es que estoy muy verde en todo este asunto. El error que me da al enviar el XML es "Empty certificate list", supongo porque tengo que cargar el certificado primero.
Código Delphi [-]
procedure TfrmEnvelm.NetHTTPClient1NeedClientCertificate(const Sender: TObject; const ARequest: TURLRequest; const ACertificateList: TCertificateList; var AnIndex: Integer);
var
  i: Integer;
begin
  for i := 0 to ACertificateList.Count - 1 do
  begin

    if SameText(ACertificateList[i].Subject, mi_certificado.Caption) then
    begin
      AnIndex := i;
      break;
    end;
  end;
end;
Muchas gracias!!!

Hola de nuevo, releyendo y releyendo de nuevo todos los posts, he visto que el problema de que no cargue el certificado al enviar el XML a hacienda está en que hay que indicarle el protocolo de seguridad TLS12.
Código Delphi [-]
NetHTTPClient1.SecureProtocols := [THTTPSecureProtocol.TLS12];
Si no se especifica, no pasa por el evento NetHTTPClient1NeedClientCertificate, que es donde se carga el certificado. El problema es que la propiedad SecureProtocols no está en la versión Delphi XE8 que es la que utilizo. Actualizar Delphi a una versión posterior, por ahora no es una opción que pueda hacer. ¿Alguna sugerencia? ¿Cómo podría solucionarlo?

Muchas gracias!
Responder Con Cita