Foros del Web » Programando para Internet » ASPX (.net) »

Facturas Digitales SAT - Mexico C#

Estas en el tema de Facturas Digitales SAT - Mexico C# en el foro de ASPX (.net) en Foros del Web. Adenial, ya pudiste generar el sello desde c#, te agradeceria ayuda para esto. Saludos....

  #31 (permalink)  
Antiguo 05/07/2010, 17:48
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Facturas Digitales SAT - Mexico C#

Adenial, ya pudiste generar el sello desde c#, te agradeceria ayuda para esto.

Saludos.
  #32 (permalink)  
Antiguo 16/07/2010, 09:39
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola, después de un año, la Factura Electronica del SAT en Mexico por fin en la siguiente liga viene como utilizar el openssl con ejemplos y toda la cosa para obtener el sello digital, como quien dice, peladito y en la boca, adelante raza, cuajense....

wwww.solocodigo.com/index.php?opt=viewitem&id=702&type=2&node=1

Gracias a Francisco Tanori.
  #33 (permalink)  
Antiguo 16/07/2010, 12:19
 
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

El procedimiento es correcto aparentemente el problema es que no pasa la validacion, como comentabamos en el otro foro (solocodigo) , el proceso es el indicado por SAT, segun la imagen (Extraida de una presentacion de power point de ellos mismos (SAT)). hemos usado el mismo hash md5 que da el validador del SAT, pero el sello no es igual, hice la prueba con FIRMASAT y el sello si pasa la validacion
  #34 (permalink)  
Antiguo 16/07/2010, 17:53
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola estoy tratando de generar el sello digital con CryptoSysPKI pero arroja datos incorrectos, use el sig. código en asp.net:

keylen = RSA.ReadEncPrivateKey(strFile, passwd)
number = Rsa.KeyBytes(keylen)
firma = Rsa.EncodeMsgForSignature(number, cadenaBytes, HashAlgorithm.Md5)
firma64 = Convert.ToBase64String(firma)

me regresa algo asi:

AAH/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ADAgMAwGCCqGSIb3DQIFBQAEEHsRk6LL8nsWoYWpmP9GhMw=

alguien tiene idea porque me manda ese resultado?????
  #35 (permalink)  
Antiguo 16/07/2010, 21:23
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Buenas, no funciona el link:

wwww.solocodigo.com/index.php?opt=viewitem&id=702&type=2&node=1

Saludos...
  #36 (permalink)  
Antiguo 19/07/2010, 11:48
 
Fecha de Ingreso: febrero-2009
Mensajes: 67
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Facturas Digitales SAT - Mexico C#

Cita:
Iniciado por Adenial Ver Mensaje
Hola javalos532

Disculpa por tardarme tanto en contestar mira el sellado lo hago de la siguiente manera.

Estoy usando OpenSSL para la version de windows

El sellado lo hago en dos pasos que son los siguientes comandos:

1.- dgst -md5 -sign aaa010101aaa_CSD_01.key.pem -out sellado.txt muestra.txt

2.- enc -base64 -in sellado.txt -out sellado64.txt

Donde:

- aaa01010101aaa_CSD_01.key.pem es la llave .key convertida a .pem con openssl

- sellado.txt es el archivo que se guardará de la digestión de la cadena y de
sellarlo con la llave (si lo llegas abrir veras puros caracteres que parecen ser basura).

- muestra.txt es la cadena original que ya se encuentra en formato utf-8.

- sellado64.txt es el archivo donde se guarda la cadena encriptada en 64bits.

Por ultimo abre el archivo sellado64.txt para que compares el sellado

Nota: El archivos .pem y muestra.txt los tengo en el mismo directorio que el ejecutable openssl.exe y los archivos que genero se guardan en la misma dirección salvo que especifiques algun directorio en el comando.

Preguntas:
¿Ya puedes generar la cadena original en C#?
¿Ya pudiste darle formato a utf-8 en C#?

Saludos, me dices que tal te fue.
que tal adenial
he estado haciendo los pasos como lo comentaste y me genera un md5 correcto

el sellado 64 me lo genera asi

p7hGSgj1aHWWkibqXWj3PL03HgwqONdjOaWjvH1ayRPx/ZPOuocxXBnLNteNpZBM
sw+vjJhT7eElrkdO/+5VOu0Eai/zjwbZgSsOOEhjSzIkL0s35d9w/CcqDDj1zsml
OnQr5y9d+8cOZoPHP07r5jq10IhNQcPw4RhXo+CV71k=

en el notepad++ vi que tenia un salto de linea, ese salto de linea lo debe de haber puesto el openssl,
el punto es el siguiente

ese sellado lo quiero validar en el sat, reemplaze el sello en el archivo de muestra xml del sat y le paso el validador del sat y me dice que el sello es incorrecto

ya pudieron validar ese sello con el sat ?
tienen alguna idea de que estoy haciendo mal?
  #37 (permalink)  
Antiguo 20/07/2010, 21:46
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

http://apps.facebook.com/super_it_pro/
http://apps.facebook.com/super_developer
  #38 (permalink)  
Antiguo 30/07/2010, 03:06
 
Fecha de Ingreso: agosto-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Facturas Digitales SAT - Mexico C#

Hola casi nunca posteo nada, pero este tema lo he seguido muy de cerca, bueno dejo lo poco que he conseguido.

Ya que No me ha funcionado ninguno de los codigos que he econtrado en la red
ni ese que esta en solocodigo ni ninguno de aqui asi que me puse a buscar a ver si alguien vendia un sistema ya funcionando , pues si hay muchos la mayoria en VB y delphi pero encontre esta opcion


http://articulo.mercadolibre.com.mx/MLM-50302632-factura-electronica-cfd-sat-ssl-sello-digital-sat-2010-20-_JM

en la cual se encuentra un demo

http://www.megaupload.com/?d=CSAC3FUX

Que sorprendentemente para mi despues de MILES de INTENTOS he logrado validar un maldito CFD jeje

Ahi les paso el dato por si les interesa, creo que yo si me lo comprare!!! ahi que lo page mi empresa jaja


hasta pronto

Última edición por *andrew*; 02/08/2010 a las 18:17
  #39 (permalink)  
Antiguo 02/08/2010, 10:02
 
Fecha de Ingreso: agosto-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Bueno solo para comentar que he tenido exito con esta aplicacion por fin, me ha resultado una opcion super util, ademas me regalaron una para obtener el numero de serie del certificado, y ya tengo mi facturacion funcionando en fox pro

Muchas gracias a todos por sus aportes, lamento no poder haberlos ayudado mas,


Saludos amigos hasta pronto
  #40 (permalink)  
Antiguo 02/08/2010, 18:19
 
Fecha de Ingreso: agosto-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta Respuesta: Facturas Digitales SAT - Mexico C#

Alguien sabe que ha pasado con el validador de SAT esta caido, y no permite validar ya...
  #41 (permalink)  
Antiguo 10/08/2010, 16:16
 
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Cita:
Iniciado por *andrew* Ver Mensaje
Alguien sabe que ha pasado con el validador de SAT esta caido, y no permite validar ya...
estaba en mantenimiento pero ya esta de vuelta!
  #42 (permalink)  
Antiguo 12/08/2010, 12:59
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola que tal, estoy desarrollando una aplicación en c# para las facturas electronicas y no he logrado abrir el archivo .key en c#, veo que ustedes usan openssl para convertir los archivos .key y .cer a otro formato, pero aun no me queda muy claro.
¿Alguien podria por favor poner ejemplos de los comandos de openssl o recomendarme algun tutorial?
  #43 (permalink)  
Antiguo 18/08/2010, 12:05
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola que tal???? Les platico que finalmente ya pude generar el sello digital en c#, ahora mi dolor de cabeza es como generar los archivos xml.
Les platico lo que quiero hacer:

En la empresa donde trabajo tienen diferentes clientes y cada cliente maneja una addenda diferente, entonces en base al cliente necesito tener una plantilla xml, copiar la plantilla xml, agregarle la información de la factura a cada una de las etiquetas del archivo xml y guardarla en otro archivo xml sin modificar la plantilla xml.

La verdad no tengo ni idea como hacer eso en c sharp, si alguno de ustedes sabe o tiene un ejemplo, tutorial o algo le agradeceria mucho que me hiciera favor de pasarmelo.
  #44 (permalink)  
Antiguo 19/08/2010, 08:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Que tal polacp86, veo que ya lograste sellar en C# me imagino que no usaste OpenSSL o si ? yo ya tengo esto pero con OpenSSL... agradeceria mucho me orientaras como realizar el sello solo con librerias de C#...

Gracias.
  #45 (permalink)  
Antiguo 19/08/2010, 09:41
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola javalos532, de hecho si utilice openssl y esto fue lo que hice:

1. Con openssl converti los archivos cer y key en un solo archivo p12.
2. En c# genere un objeto md5serviceprovider y le pase la cadena original en formato utf-8.
3. Despues cree un objeto X509Certificate con el archivo p12.
4. En seguida genere un objeto RSACrytpoServiceProvider con la llave privada del certificado x509.
5. Al objeto RSA le pase el resultado de la digestion md5 y realice la encriptación
6. Finalmente el resultado lo converti en una cadena Base64 con Convert.ToBase64String() y listo ya se genera el sello digital.
  #46 (permalink)  
Antiguo 19/08/2010, 11:02
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Pero solo utilizas OpenSSL para generar los archivos cer y key ?
Cual comando utilizas para de los dos archivos solo generar uno ?
  #47 (permalink)  
Antiguo 19/08/2010, 11:13
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Utilizo el comando pcks12 y los archivos cer y key son los que te da el sat

P.D. Alguien que tenga ejemplos de como generar los comprobantes en xml !!!!!!!!!!!!!!!!!!!!!!!
  #48 (permalink)  
Antiguo 19/08/2010, 12:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Que estoy haciendo mal ???... lo realizo de la siguiente manera pero me manda el error de que no puede cargar the private key ...

openssl.exe pkcs12 -export -in ...In\aaa010101aaa_CSD_01.cer -inkey ...In\aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out ....Out\mycert.p12

muchas gracias por tu tiempo y ayuda..

saludos.
  #49 (permalink)  
Antiguo 19/08/2010, 15:04
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Solucionado.... el problema fue que debo utilizar los .pem y nos el .cer y .key.

Gracias.
  #50 (permalink)  
Antiguo 19/08/2010, 17:34
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola javalos532, disculpa que no te contestara, me alegro ya tengas tu archivo .p12 ya con eso es mas facil generar el sello te paso un link de donde obtuve la informacion para generar el sello digital

[URL="http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/cd3e04ed-36a1-4306-8339-a435e8d17f7e"]http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/cd3e04ed-36a1-4306-8339-a435e8d17f7e[/URL]


P.D. Alguien que me ayude a generar el archivo XML de una factura electronica con su addenda
  #51 (permalink)  
Antiguo 19/08/2010, 21:42
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Muchas gracias polacp86, reviso esta pagina y cualquier resultado lo notifico... todavia no tengo la parte del xml pero si termino la parte del sellado me dedicare al 100% de hacer lo del XML y te ayudo en esta parte.
  #52 (permalink)  
Antiguo 21/08/2010, 10:15
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Que tal polacp86, implemente la funcion para sellar que indican en la pagina y que son tal cual los pasos que indicas y no llego al mismo sello que con OpenSSL... que me podra faltar ? incluso ya valide y el MD5 y este valor si me da igual pero al momento de obtener el sello no coinciden..

Gracias.
  #53 (permalink)  
Antiguo 24/08/2010, 16:55
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola javalos, que raro que no sale el mismo resultado, revisaste el codigo que viene hasta el final de la pagina?????????? ese fue el que utilice.
  #54 (permalink)  
Antiguo 25/08/2010, 12:40
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola a TODOS
les comento que finalmente logre obtener un sello digital verificado por el validador del SAT con lo siguiente:

Dim objCert As New X509Certificates.X509Certificate2("archivo.p12", "b0123456789")
Dim lRSA As RSACryptoServiceProvider = objCert.PrivateKey
Dim lhasher As New MD5CryptoServiceProvider()
Dim bytesFirmados As Byte() = lRSA.SignData(System.Text.Encoding.UTF8.GetBytes(p CadenaOriginal), lhasher)
Return Convert.ToBase64String(bytesFirmados)

El problema es que no he podido hacerlo 100% NET debido a que no he encontrado la forma de generar el archivo con formato p12 directamente desde .NET sin utilizar el openssl.

Alguien tiene una idea de como combinar los archivos .key y .cer en uno solo con formato p12 (o bien pfx) SIN UTILIZAR openSSL??


Gracias de Antemano y Saludos
  #55 (permalink)  
Antiguo 25/08/2010, 21:04
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola a todos, alguien ya tiene este codigo en C#.... con VB me sale perfecto el sello pero en C# no me da igual ...ese es el codigo que estoy utilizando...

X509Certificate2 _MiCertificado = new X509Certificate2(@"....cert.p12", "12345");
RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)_MiCertificado.PrivateKe y;
MD5 hasher = MD5CryptoServiceProvider.Create();
byte[] bytesFirmados = RSA.SignData(System.Text.Encoding.UTF8.GetBytes(pD ato), hasher);
return Convert.ToBase64String(bytesFirmados);

Gracias.
  #56 (permalink)  
Antiguo 25/08/2010, 21:15
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Ya encontre la solucion...
El problema era que no estaba mandando la cadena original, el codigo funciona perfectamente...
  #57 (permalink)  
Antiguo 31/08/2010, 09:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 11
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Chequen la info de esta pagina,
http://www.jensign.com/opensslkey/index.html
de ahi pueden sacar lo necesario para leer la llave privada de el archivo .key directamente desde C# y generar el RSACryptoServiceProvider

Suerte
  #58 (permalink)  
Antiguo 02/09/2010, 12:29
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Facturas Digitales SAT - Mexico C#

Saludos, hasta hace unos dias lograba enviar satisfactoriamente los certificados en al validador del SAT, a partir del fin de semana pasado me empezo a validar campos que antes no hacia, como que el numero exterior y la localidad iban nullas, despues de buscarle encontre que habian nuevos certificados de pruebas los baje pero me marca error de que el sello no es valido.

Saben ustedes algo de esto?, si ha cambiado algo en validaciones?.

Saludos.

Hugo Luna
  #59 (permalink)  
Antiguo 06/09/2010, 11:19
Avatar de hegaes  
Fecha de Ingreso: octubre-2008
Mensajes: 17
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Solo quiero agradecer a todas las personas que han participado y aportado sus conocimientos en este foro, he leido y seguido sus recomendaciones y funcionan a la perfección, ya he podido validar en la pagina del SAT. Mil gracias!!!
  #60 (permalink)  
Antiguo 08/09/2010, 09:37
 
Fecha de Ingreso: marzo-2004
Mensajes: 19
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Cita:
Iniciado por javalos532 Ver Mensaje
Pongo el codigo de los pasos en el que no me da la digetion correcta que el SAT indica.

// Introducimos la cadena original provista por el SAT
string Strcadenaoriginal = "||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||";

// Metemos la cadena a un archivo de texto
System.IO.File.WriteAllText(@"D:\SAT\Files\Out\Fil eOriginal.txt", strcadenaoriginal);

// Transformamos la cadena a UTF8
string contenido;
using (StreamReader sr = new StreamReader(@"D:\SAT\Files\Out\FileOriginal.txt",
Encoding.GetEncoding(1252)))
{
contenido = sr.ReadToEnd();
}
using (StreamWriter sw = new StreamWriter(@"D:\SAT\Files\Out\UTF8.txt", false, Encoding.UTF8))
{
sw.Write(contenido);
}

//Aquí lo que hacemos es escribir un txt (MD5.txt) con la digestión MD5 para usarlo en el sellado
Strcadena = ObtenerMd5(@"D:\SAT\Files\Out\UTF8.txt");


Para la digestion en MD5 utilizo la siguiente instruccion con OpenSSL
D:\OpenSSL\bin\openssl.exe dgst -MD5 D:\SAT\Files\Out\UTF8.txt > D:\SAT\Files\Out\MD5.txt


Pero aqui no llego al resultado del SAT.... a mi me da la siguiente cadena:
ce33abebf7f795780806c97d0e6e2c03 y debe ser:
8aa2b617944427353697e694a2e35a07

Alguna idea de que me puede estar faltando ?

Gracias.
No se ya resolviste tu problema, pero con este código, me da correcto.
Código:
            MD5 md5Hasher = new MD5CryptoServiceProvider();
            byte[] data = md5Hasher.ComputeHash(UTF8Encoding.UTF8.GetBytes(input));
            StringBuilder sBuilder = new StringBuilder();
            for (int i = 0; i <= data.Length - 1; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }            
            return sBuilder.ToString();
Pero en el caso de la cadena que esta de ejemplo en la página del Sat en este momento, no me funciona.

Ejemplo de Cadena Original:

||2.0|ABCD|2|03-05-2010T14:11:36|49|2008|INGRESO|UNA SOLA EXHIBICIÓN|
2000.00|00.00|2320.00|PAMC660606ER9|CONTRIBUYENTE PRUEBASEIS PATERNOSEIS
MATERNOSEIS|PRUEBA SEIS|6|6|PUEBLA CENTRO|PUEBLA|PUEBLA|PUEBLA||MÉXICO|
72000|CAUR390312S87|ROSA MARÍA CÁLDERON URIEGAS|TOPOCHICO|52|
JARDINES DEL VALLE|NUEVO LEÓN|MEXICO|95465|1.00|SERVICIO|01|
ASESORIA FISCAL Y ADMINISTRATIVA|2000.00|IVA|16.00|320.00||

Resultado de la digestión MD5 como HEX:

03abe73de4ca428816de4af6f6f737a7

Ami me da como resultado:
b64df6b8cbd7031c53ba5a1fe6ae4ab5

¿Alguna idea?

Etiquetas: digitales, facturas, mexico, sat, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 5 personas




La zona horaria es GMT -6. Ahora son las 07:38.