Hola para hacer la asignacion hago lo siguiente.
Tengo un objeto HttpPRIO que se le asigna el numero de serie del certificado.
Código Delphi
[-] Objeto.HTTPWebNode.ClientCertificate.SerialNum := BuscarCertificado;
Código Delphi
[-]
function BUSCAR_CERTIFICADO(Nombre_Certificado: String): string;
var
hStore: HCERTSTORE;
PrevContext, CurContext: PCERT_CONTEXT;
cbSize: DWORD;
sNombre: String;
begin
Result := '';
hStore := CertOpenSystemStore(0, PChar('MY'));
if hStore <> nil then begin
PrevContext := nil;
CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
while CurContext <> nil do begin
sNombre := '';
cbSize := CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, nil, 0);
if cbSize > 0 then begin
SetLength(sNombre, cbSize-1);
CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, PChar(sNombre), cbSize);
if SameText(Nombre_certificado, sNombre) then
begin
REsult := GetCertSerialNumber(@CurContext^.pCertInfo^.SerialNumber);
break;
end;
end;
PrevContext := CurContext;
CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
end;
end;
end;
A la hora de hacer el envio se hace de la siguiente manera
Código Delphi
[-] resultado := GetsiiSOAP(True, '', OBJETO HTTPTRIO).SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);