Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 10-11-2012
Alexis De la Cr Alexis De la Cr is offline
Miembro
 
Registrado: may 2006
Ubicación: Puebla
Posts: 124
Poder: 19
Alexis De la Cr Va por buen camino
Estimados compañeros. Tengo una duda con respecto al sello digital, y aunque este tema ya esta olvidado, es el que mas se acerca a la duda que tengo

en general para obtener el sello digital, en la version 2.0 o 2.2 hay que obtener la cadena original la cual la obtengo a traves de un XSLPageProducer

mediante el siguiente codigo
Código Delphi [-]
XSLPageProducer1.XMLData := XMLDoc3;
XSLPageProducer1.FileName:='lcadenaoriginal_2_0.xslt';
cadenaoriginal := XSLPageProducer1.Content;

despues hay que eliminar todos aquellos caracteres indeseados como son el Retorno de carro, el escape, los espacios antes y despues del pipe, etc, y se codifica en UTF8 mediante el sisguiente codigo

Código Delphi [-]
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,#13,'');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,#10,'');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,#8,'');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,'  ','');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,' |','|');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,'| ','|');
    cadenaoriginal := UTF8Encode(cadenaoriginal);

apliacamos la encriptacion md5 con la llave privada en formato pem y al resultado le aplicacmos la encriptacion base64

Código Delphi [-]
    StrPCopy(inbuf,cadenaoriginal);
    InitOpenSSL;
    key:=LoadPrivateKey(llaveprivada,'');
    EVP_SignInit(@mdctx,EVP_md5());
    EVP_SignUpdate(@mdctx,@inbuf,StrLen(inbuf));
    EVP_SignFinal(@mdctx,@outbuf,Len,key);
  EVP_MD_CTX_cleanup(@mdctx);
  EVP_PKEY_free(key);;
    FreeOpenSSL;
    result := bintobase64(@outbuf,Len);

Hasta aqui todo bien, al menos eso creo, porque en su tiempo validaba los documentos xml generados en el sat y pasaba dicha validacion. En la actualidad dicho validador del SAT me marca error de que la version 2.0 no estaba vigente en la fecha de emision del comprobante, y por mas que le he movido a las fechas no logro hacerlo funcionar.

si hay algun error y algiuen lo detecta pues le agradeceria la ayuda.

Ahora bien que pasa con el sello en la version 3.2? es exactamente el mismo tratamiento excepto que en lugar de hacer la encriptacion md5, se hace con sha1? porque asi lo he intentado y el v alidador del sat me rechaza el sello de l documento, incluso con esta herramienta el sello sale distinto

http://solucionfactible.com/sfic/cap...rramientaSello


utilizo el siguiente codigo

Código Delphi [-]

     XSLPageProducer1.XMLData := XMLDoc3;
     XSLPageProducer1.FileName:='cadenaoriginal_3_2.xslt';
    cadenaoriginal := XSLPageProducer1.Content;

    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,#13,'');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,#10,'');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,#8,'');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,'  ','');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,' |','|');
    cadenaoriginal := AnsiReplaceStr(cadenaoriginal,'| ','|');
    cadenaoriginal := UTF8Encode(cadenaoriginal);

    StrPCopy(inbuf,cadenaoriginal);
    InitOpenSSL;
    key:=LoadPrivateKey(llaveprivada,'');
    EVP_SignInit(@mdctx,EVP_sha1());
    EVP_SignUpdate(@mdctx,@inbuf,StrLen(inbuf));
    EVP_SignFinal(@mdctx,@outbuf,Len,key);
  EVP_MD_CTX_cleanup(@mdctx);
  EVP_PKEY_free(key);;
    FreeOpenSSL;
    result := bintobase64(@outbuf,Len);


muchas gracias por su tiempo, y por su ayuda en caso de aplicar

Alexis De la Cruz
Responder Con Cita
 



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
Factura Electrónica aig Varios 13 10-12-2010 17:12:44
factura electronica spia Varios 2 22-02-2009 21:30:06
La pone-sellos más rápida del oeste Bicho Humor 2 04-06-2007 11:20:19
Factura electronica AUNA Aprendiz Varios 5 01-09-2005 10:44:15
Fallo Nº Factura y Linea Factura CarmaZone Tablas planas 5 26-05-2005 11:17:19


La franja horaria es GMT +2. Ahora son las 22:56:56.


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