Cita:
Empezado por APO
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!