Sello CFDI C# - "El sello no pudo ser verificado"

2,108 views
Skip to first unread message

Glook SC

unread,
Mar 18, 2013, 10:54:16 AM3/18/13
to vfp-factura-ele...@googlegroups.com
Hola,

He creado toda la funcionalidad para crear la cadena original utilizando el XSLT, crear el SHA-1, y posteriormente encriptar utilizando el certificado privado (.key). Pero mi problema es cada vez que intento validar el sello en el validador del SAT, o en ValidaCFD, siempre el resultado es el mismo "El sello no pudo ser verificado".

alguien podría ayudarme con alguna pista de que estoy haciendo mal. ¿?.
Adjunto el código de generación:

            string ArchivoCertificado = @"c:\aaa010101aaa__csd_01.cer";
            string key = @"c:\aaa010101aaa__csd_01.key";
            string lPassword = @"12345678a";
            string Digestion = "";
            string strCadenaOriginal = "*** Cadena Original Utilizando XSLT del SAT";

            // SAH1
            SHA1 oSHA1 = SHA1CryptoServiceProvider.Create();
            Byte[] textOriginal = Encoding.UTF8.GetBytes(strCadenaOriginal);
            Byte[] hash = oSHA1.ComputeHash(textOriginal);
            StringBuilder oSB = new StringBuilder();
            foreach (byte i in hash)
                oSB.AppendFormat("{0:x2}", i);
            Digestion= oSB.ToString();
            
            // leer KEY
            SecureString lSecStr = new SecureString();
            lSecStr.Clear();
            foreach (char c in lPassword.ToCharArray())
                lSecStr.AppendChar(c);

            Byte[] pLlavePrivadaenBytes = System.IO.File.ReadAllBytes(key);

            // Uso clSeguridad para Leer Certificado
            RSACryptoServiceProvider lrsa = clsSeguridad.DecodeEncryptedPrivateKeyInfo(pLlavePrivadaenBytes, lSecStr);
            SHA1CryptoServiceProvider hasher = new SHA1CryptoServiceProvider();
            Byte[] bytesFirmados = lrsa.SignData(System.Text.Encoding.UTF8.GetBytes(Digestion), hasher);

            // Obtengo Sello
            string sellodigital = Convert.ToBase64String(bytesFirmados);

Cadena Original con mi código:
||3.2|2013-03-04T17:59:48|ingreso|Pago en una sola exhibicion|7000|7000|metodoDePago|LugarExpedicion|ABC220322S2A|ABC Veintidos|calle|10|Zuno y Patastal|Tacotalpa|Tabasco|México|86892|Regimen|CFM110311S2A|Receptor Nombre|calle|noExterior|Zuno y Patastal|Tabasco|México|86892|1|pza|1|Producto Uno|7000|7000|IVA|0|0||

SAH1
36f56c26a477751d02edd334ee670a3a3e654b04

SELLO:
hS/0jp6tnU4L3vdES7FN48pQ5N7+SV3MpOle+ffiAJ1SPcZp8GeA2pkoj7b9Rquf9pA0IIxv+lW5aLeQUh1UFF1GwepEbLBQUIKyzPbETg8/r7T016Qud/zu+CmDBlLoJ3h/p3GVXnR3xdPXEi0Eh5riu+jj4UxY1NkiD9hlYKg=



Resultado Validador SAT:
Versión del estándar: 3.2

Codificación
Comprobante expresado en UTF-8

Validación de estructura: Válido

Cadena original del CFDI:
||3.2|2013-03-04T17:59:48|ingreso|Pago en una sola exhibicion|7000|7000|metodoDePago|LugarExpedicion|ABC220322S2A|ABC Veintidos|calle|10|Zuno y Patastal|Tacotalpa|Tabasco|México|86892|Regimen|CFM110311S2A|Receptor Nombre|calle|noExterior|Zuno y Patastal|Tabasco|México|86892|1|pza|1|Producto Uno|7000|7000|IVA|0|0||

Digestión SHA-1 de cadena original expresada en hexadecimal
36f56c26a477751d02edd334ee670a3a3e654b04

Certificado usado : 20001000000100005867
Certificado reportado : 20001000000100005867

El sello del CFDI no es válido




Luis D BC

unread,
Mar 19, 2013, 10:33:29 AM3/19/13
to vfp-factura-ele...@googlegroups.com
verifica q los xslt sean realmente para generar la version 3.2 (el de la cadena original), comprueba tambien que el certificado corresponda al key, y que ese certificado corresponda con ese rfc
Saludos!!

Alejandro Castrejon

unread,
Mar 19, 2013, 11:31:10 AM3/19/13
to vfp-factura-ele...@googlegroups.com
Buen dìa, 

Primero te felicito por generar tu propio código y mas aun por usar una herramienta mas actualizada como lo es .NET y C#, segundo estoy viendo que generas un comprobante de la versión 3.2 y te recomiendo que te busques un PAC par hacer  las pruebas, ya que este tipo de comprobante lleva dos sellos digitales: el del XML que tu generas y el del complemento del timbrado que genera el PAC.

Saludos,

Alejandro Castrejón Torres
Teléfono:(662) 200-8957
Email: alejandro...@smartfactura.com
Sitio: http://www.smartfactura.com
 

This message was sent by Alejandro Castrejón. If you really want to know more about me, you can  visit my social services profiles
My profiles: Facebook LinkedIn Google Buzz Twitter
Contact me: Google Talk castrejon.alejandro Skype alejandro.castrejon MSN alejandro...@smartfactura.com
My QR VCard





--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a vfp-factura-electroni...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a vfp-factura-ele...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/vfp-factura-electronica-mexico?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Jose Celso Bautista

unread,
Mar 19, 2013, 11:51:03 AM3/19/13
to vfp-factura-ele...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages