Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Envío de registros y sus respuestas (https://www.clubdelphi.com/foros/forumdisplay.php?f=66)
-   -   Uso código "PrioInt.HTTPWebNode.ClientCertificate.SerialNum" (https://www.clubdelphi.com/foros/showthread.php?t=97439)

_Io 30-04-2025 14:58:29

Uso código "PrioInt.HTTPWebNode.ClientCertificate.SerialNum"
 
Buenas tardes.

Código:

function c_vxf5_soap.llamada_SOAP_AEAT_CONSULTA: sfPortTypeVerifactu;
begin

  if NumeroSerieCertificado <> '' then
    PrioInt.HTTPWebNode.ClientCertificate.SerialNum := NumeroSerieCertificado;

  PrioInt.OnAfterExecute:=OnAfterExc_AEAT_COMUN;
  PrioInt.OnBeforeExecute:=OnBeforeExec_AEAT_CONSULTA;
  PrioInt.URL := URL_AEAT;

  Result := nil;
  Result := (PrioInt as sfPortTypeVerifactu);

end;

Según la documentación de Delphi

Cita:

Note: The design-time support only stores away the SerialNum of the ClientCertificate, and not the certificate itself. In other words, if you deploy the application to another machine, which does not contain the certificate selected at design time, it will be impossible, at run time, to retrieve the ClientCertificate and send it to the server.
Yo con mi poco inglés que tengo, entiendo que sólo funcionará con el certificado cargado en tiempo de diseño. es decir que si en tiempo de ejecución cargamos otro certificado diferente, no funcionará. ¿Es así?

Lo habéis probado ?

bmfranky 30-04-2025 18:21:53

Cita:

Empezado por _Io (Mensaje 564163)
Buenas tardes.

Código:

function c_vxf5_soap.llamada_SOAP_AEAT_CONSULTA: sfPortTypeVerifactu;
begin

  if NumeroSerieCertificado <> '' then
    PrioInt.HTTPWebNode.ClientCertificate.SerialNum := NumeroSerieCertificado;

  PrioInt.OnAfterExecute:=OnAfterExc_AEAT_COMUN;
  PrioInt.OnBeforeExecute:=OnBeforeExec_AEAT_CONSULTA;
  PrioInt.URL := URL_AEAT;

  Result := nil;
  Result := (PrioInt as sfPortTypeVerifactu);

end;

Según la documentación de Delphi



Yo con mi poco inglés que tengo, entiendo que sólo funcionará con el certificado cargado en tiempo de diseño. es decir que si en tiempo de ejecución cargamos otro certificado diferente, no funcionará. ¿Es así?

Lo habéis probado ?

Hola, lo que dice es que si exportas la aplicacion , llamando a un certificado que no se haya intalado en esa maquina , no funcionara, que de ser posible selecciones el certificado a usar en tiempo de ejecucion, para evitar problemas, porque solo se exporta el numero de referencia al certificado, no el certificado en si.
Te recomiendo que cargues desde un archivo el certificado, hay varios ejemplos aqui en la web, de como hacerlo, no te paso ninguno porque personalmente uso c#.

Por otro lado si le pasas los datos correctos del ceritifaco en ejecucion, por ejmplo leyendoos de la BD, tambien funcionara.

_Io 30-04-2025 21:01:32

Cita:

Empezado por bmfranky (Mensaje 564169)
Hola, lo que dice es que si exportas la aplicacion , llamando a un certificado que no se haya intalado en esa maquina , no funcionara, que de ser posible selecciones el certificado a usar en tiempo de ejecucion, para evitar problemas, porque solo se exporta el numero de referencia al certificado, no el certificado en si.
Te recomiendo que cargues desde un archivo el certificado, hay varios ejemplos aqui en la web, de como hacerlo, no te paso ninguno porque personalmente uso c#.

Por otro lado si le pasas los datos correctos del ceritifaco en ejecucion, por ejmplo leyendoos de la BD, tambien funcionara.

Hola.

Entonces, el usuario puede meter el número de serie y password de cualquier certificado instalado en su pc, no debería tener problema. ^\||/


Cita:

Te recomiendo que cargues desde un archivo el certificado, hay varios ejemplos aqui en la web
Si, lo tenía en mente, pero ahora me estoy peleando con la firma del soap de la Factura electrónica.

Muchas Gracias !!!!


La franja horaria es GMT +2. Ahora son las 09:17:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi