Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 23-09-2010
Rom@n Rom@n is offline
Miembro
 
Registrado: oct 2007
Posts: 25
Poder: 0
Rom@n Va por buen camino
Cambiar .cer a .pem y obtener fecha de caducidad del certificado

Hola quetal programadores quiero aportar un poco al tema de facturacion electronica voy a explicar brevemente este codigo esperando que le sirva a mas de uno:
1:Primero Busco con dialogExecute el archivo .cer
2:ejecuto el openssl con shellexecute y paso los parametros para convertir a formato pem y creo un archivo de texto.
3:con una funcion de escaneo busco la palabra not after y copio solo la fecha con copy y la proceso para lograr un formato de echa valido
4:la funcion LongDateStrToShortDateStr me rotorna el numero de mes ya que en el archivo caduca aparece el mes abreviado ejem:ene,feb,mar....dic

Código Delphi [-]
procedure Tfrm_datos_empresa.BitBtn5Click(Sender: TObject);
var
Rutacerti,nombrecerti:string;
position: integer;
dia,mes,yy,h,m,s:string;
begin
if Opencerti.Execute then
  begin
    Rutacerti := Opencerti.FileName ;
    if Rutacerti <> '' then
    begin
      nombrecerti:=ExtractFileName(opencerti.FileName);
      CopyFile(PChar(rutacerti), PChar('C:\SAT\'+nombrecerti), false);
      certi.Text:=nombrecerti;
      ShellExecute(Handle, nil, pchar('C:\openssl\openssl.exe'), pchar('x509 -inform DER -outform PEM -in '+PChar('C:\SAT\'+nombrecerti)+' -out C:\SAT\'+nombrecerti+'.pem'),nil,SW_SHOW);
      Sleep(1000);
      ShellExecute(Handle, nil, pchar('C:\openssl\openssl.exe'), pchar('x509 -in C:\SAT\'+nombrecerti+'.pem -text -out C:\SAT\caduca.txt'),nil,SW_SHOW);
      Sleep(1000);
      //proceso para sacar la fecha de caducidad
      position := ScanFile('C:\SAT\caduca.txt', 'Not After', true);
      if position <> -1 then
      begin
        //showmessage(archivo_caduca);
        dia:=Copy(archivo_caduca,17,2);
        mes:=LongDateStrToShortDateStr(Copy(archivo_caduca,13,3));//(Copy(archivo_caduca,13,3)));
        yy:=Copy(archivo_caduca,29,4);
        h:=Copy(archivo_caduca,20,8);
        if date>=strtodatetime(dia+'/'+mes+'/'+yy+' '+h) then
         showmessage('Este certificado ya esta caducado:'+ dia+'/'+mes+'/'+yy+' '+h)
        else
        showmessage('Certificado Vigente hasta:'+ dia+'/'+mes+'/'+yy+' '+h);
        caduca.DateTime:= strtodatetime(dia+'/'+mes+'/'+yy+' '+h);
      end
      else
      begin
        ShowMessage('No se econtro Fecha de caducidad (Not After)');
      end;
    end;
end//fin del dialog1 execute
else
begin
    showmessage('no se ejecuto');
end;

Última edición por Rom@n fecha: 23-09-2010 a las 22:15:20. Razón: no resalte sintaxis
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mexico - Como crear sellos en FACTURA ELECTRONICA.. pcicom API de Windows 12 10-11-2012 18:46:55
Factura Electrónica aig Varios 13 10-12-2010 17:12:44
factura electronica cmm07 Varios 4 02-04-2009 17:46:03
factura electronica spia Varios 2 22-02-2009 21:30:06
Factura electronica AUNA Aprendiz Varios 5 01-09-2005 10:44:15


La franja horaria es GMT +2. Ahora son las 07:45:54.


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