![]() |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
|
Respuesta: Facturas Digitales SAT - Mexico C# Asi es Ivan, ahi tienes que colocar la cadena Original como string. Saludos. |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
Yo sigo todo el procedimiento y al validar el sello digital, me indica que no es valido. Compare mi cadena original con la que me da el SAT y es la misma, así como hash de MD5. ¿Como saber si mi sello digital es correcto? Este es el código que uso para generar el sello digital: Código: System.Diagnostics.Process proc = new System.Diagnostics.Process(); |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
|
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
Código: string xmlns = "http://www.sat.gob.mx/cfd/2"; así ya tendrás la estructura general del documento (nodos) y sólo te faltará llenarlo (atributos y propiedades)... |
Respuesta: Facturas Digitales SAT - Mexico C# A principios de año escribi un Wrapper En C++\CLI de OpenSSL para convertir el .CER y .KEY a PEM, y funciones para firmar, abandone el proyecto y haciendo pruebas me encontre con varios memory leaks asi que el dia de hoy me habia dado a la tarea de hacer lo mismo con Bouncy (aunque la otra libreria este funcionando correctamente), ya tengo el método para convertir los archivos .cer a PEM, sin embargo no he logrado convertir el .key a PEM, alguien lo ha logrado? Aquí esta el método para convertir los .CER a PEM usando Bouncy Castle: public void DERToPEM(string sFileFrom, string sFileTo) { using(System.IO.Stream sr = System.IO.File.OpenRead(sFileFrom)) { Org.BouncyCastle.X509.X509CertificateParser cp = new X509CertificateParser(); var cert = cp.ReadCertificate(sr); var pKey = cert.GetPublicKey(); using(System.IO.TextWriter tw = new System.IO.StreamWriter(sFileTo)) { PemWriter pw = new PemWriter(tw); pw.WriteObject(pKey); pw.WriteObject(cert); tw.Close(); } } } Si a alguien le interesa la librería en C++\CLI para que haga pruebas y corregir los memory leaks puedo enviárselos a su correo. |
Respuesta: Facturas Digitales SAT - Mexico C# Publicado hoy Jueves 23 en el diario oficial de la federacion DOF: 23/09/2010 ANEXO 20 de la Primera Resolución de Modificaciones a la Resolución Miscelánea Fiscal para 2010, publicada el 14 de septiembre de 2010. Al margen un sello con el Escudo Nacional, que dice: Estados Unidos Mexicanos.- Secretaría de Hacienda y Crédito Público. Modificación al Anexo 20 de la Resolución Miscelánea Fiscal para 2010 Este es el link http://www.dof.gob.mx/nota_detalle.p...cha=23/09/2010 Contenido Medios electrónicos I. Del Comprobante Fiscal Digital: A. Características técnicas del archivo que contenga el informe mensual de comprobantes fiscales digitales emitidos B. Estándar de comprobante fiscal digital C. Generación de sellos digitales para comprobantes fiscales digitales II. Del Comprobante Fiscal Digital por Internet: A. Estándar de comprobante fiscal digital por internet B. Generación de sellos digitales para comprobantes fiscales digitales por internet C. Estándar y uso del complemento obligatorio: Timbre Fiscal Digital del SAT D. Estándar del servicio de cancelación E. Especificación técnica del código de barras bidimensional III. De los distintos medios de comprobación digital: A. Estándares y especificaciones técnicas que deberán cumplir las aplicaciones informáticas para la generación de claves de criptografía asimétrica a utilizar para Firma Electrónica Avanzada B. Uso de la facilidad de nodos opcionales <Complemento> y <ComplementoConcepto> C. Uso de la facilidad de ensobretado <Addenda> |
Respuesta: Facturas Digitales SAT - Mexico C# Buen dia a todos los visitantes del foro. Les doy otra liga para ver la última versión de "Anexo 20 de la Primera Resolución de Modificaciones a la Resolución Miscelánea Fiscal para 2010, publicada el 14 de septiembre de 2010." en formato doc. http://www.sat.gob.mx/sitio_internet/informacion_fiscal/legislacion/52_18801.html A primera vista hay un cambio importante para quienes están en la etapa de generar el sello digital, ahora en lugar de utilizar digestión MD5, el SAT pide que se utilice SHA-1. Aun falta saber cuando entrarán en operación los nuevos cambios pero conviene estar enterados. A la orden si es que les puedo ayudar en algo. Estoy usando c sharp con openssl y ya logré pasar todas casi todas las etapas (obviamente exceptuando las últimas novedades). Estoy en la parte de los complementos y addendas aunque creo que no me van a ser necesarias. Saludos! |
Respuesta: Facturas Digitales SAT - Mexico C# BenuR, hay una manera más fácil para generar el xml. -Convertir cfdv2.xsd (está en la página del SAT) a clase de c# desde la linea de comandos ms-dos: Código: %:\>xsd cfdv2.xsd /c (Devuelve cfdv2.cs)-Integrarlo al proyecto como módulo de clase, por ejemplo con el nombre Comprobante.cs -Ahora se declara una variable de tipo Comprobante Código: Comprobante comprobante = new Comprobante(); Código: comprobante.version = "2.0"; Código: ComprobanteEmisor comprobanteEmisor = new ComprobanteEmisor(); Código: using System.xml; Espero sirva. A la orden para dudas, correcciones u objeciones. Saludos! |
Respuesta: Facturas Digitales SAT - Mexico C# Me faltó decir: Buscar el xml en la ruta que pusieron en "RutaConNombreArchivoSinExtension" |
Respuesta: Facturas Digitales SAT - Mexico C# Muchas Gracias JLA, Pudieras mostrar el codigo que va despues? (para insertarle el sello digital, etc) ah, y otra pregunta, en este caso como manejas las adendas especiales de las empresas que asi lo requieren (soriana, etc)? Gracias de antemano. Nos1 |
Respuesta: Facturas Digitales SAT - Mexico C# ah, y otra pregunta, como manejas las adendas especiales de las empresas que asi lo requieren (soriana, etc)? Gracias. Nos1 |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
Ya tienes generado el sello digital y está listo para insertarlo? Por favor concrétame mas tu pregunta para que te pueda ayudar, por ejemplo no se a que te refieres con el "etc". En cuanto a las addendas, comentaba mas arriba que apenas estoy llegando ahi y en ese punto aun no puedo aportar, lo siento. Pero quizá haya alguien en el foro que nos pueda echar una mano. Saludos a todos! |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
Perdón, era una tontería por la cual no se me generaba el sello digital (puse una contraseña de prueba). Aun me falta corroborar que el sello sea el correcto (se que hay una pagina de la sat para verificar eso, tengo que investigar). En cuanto a la addenda, si, me refiero a las grandes cadenas que exigen cosas en particular ahi, dado que yo seguí el camino de 100% .net que amablemente otros foreros aportarton (no usar comandos), yo tambien estaré viendo como hacer esto de la addenda. Todo empieza con un ComprobanteAddenda ca = new ComprobanteAddenda(); al parecer, sin embargo, por lo complejas que son las addendas, a mi se me haría mas comodo un parser (algo para simplemente ir concatenando strings) en lugar de usar nodos y elementos, etc. Sin embargo no se si eso sea lo mas apropiado una vez que el resto del XML lo generé con la clase "opensslkey.cs". Tampoco sé de antemano como incluir el parser ahí. Cualquier recomendación o expericia tuya o de cualquier forero es gratamente bienvenida. Saludos. |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
private void crearCFD_Click(object sender, EventArgs e) { Comprobante comprobante = new Comprobante(); ComprobanteEmisor comprobanteEmisor = new ComprobanteEmisor(); t_UbicacionFiscal ubicacionEmisor = new t_UbicacionFiscal(); ComprobanteReceptor comprobanteReceptor = new ComprobanteReceptor(); t_Ubicacion ubicacionReceptor = new t_Ubicacion(); ComprobanteConcepto[] comprobanteConcepto = new ComprobanteConcepto[10]; comprobante.version = "2.0"; comprobante.serie = "ABCD"; comprobante.folio = "12345"; comprobante.fecha = Convert.ToDateTime("2010-05-03T14:11:36"); comprobante.noCertificado = "20001000000100000377"; comprobante.subTotal = 2000.00M; comprobante.total = 2320.00M; comprobante.noAprobacion = "49"; comprobante.anoAprobacion = "2010"; comprobante.formaDePago = "PAGO EN UNA SOLA EXHIBICIÓN"; comprobante.descuento = 0.00M; comprobante.metodoDePago = "EFECTIVO"; comprobanteEmisor.nombre = "CONTRIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS"; comprobanteEmisor.rfc = "PAMC660606ER9"; ubicacionEmisor.calle = "PRUEBA SEIS"; ubicacionEmisor.noExterior = "6"; ubicacionEmisor.noInterior = "6"; ubicacionEmisor.colonia = "PUEBLA CENTRO"; ubicacionEmisor.localidad = "PUEBLA"; ubicacionEmisor.municipio = "PUEBLA"; ubicacionEmisor.estado = "PUEBLA"; ubicacionEmisor.pais = "MÉXICO"; ubicacionEmisor.codigoPostal = "72000"; comprobanteReceptor.nombre = "ROSA MARÍA CALDERÓN UIRIEGAS"; comprobanteReceptor.rfc = "CAUR390312S87"; ubicacionReceptor.calle = "TOPOCHICO"; ubicacionReceptor.noExterior = "52"; ubicacionReceptor.colonia = "JARDINES DEL VALLE"; ubicacionReceptor.estado = "NUEVO LEON"; ubicacionReceptor.pais = "México"; ubicacionReceptor.codigoPostal = "95465"; comprobanteConcepto[0].unidad = "Servicio"; comprobanteConcepto[0].noIdentificacion = "01"; comprobanteConcepto[0].descripcion = "Asesoria Fiscal y administrativa"; comprobanteConcepto[0].valorUnitario = 2000.00M; comprobanteConcepto[0].importe = 2000.00M; comprobanteEmisor.DomicilioFiscal = ubicacionEmisor; comprobante.Emisor = comprobanteEmisor; comprobanteReceptor.Domicilio = ubicacionReceptor; comprobante.Receptor = comprobanteReceptor; comprobante.Conceptos = comprobanteConcepto; XmlSerializerNamespaces xmlNameSpace = new XmlSerializerNamespaces(); xmlNameSpace.Add("schemaLocation", "http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd"); xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance"); XmlTextWriter xmlTextWriter = new XmlTextWriter("C:\\Users\\BJK1\\Desktop\\archivo" + ".xml", Encoding.UTF8); xmlTextWriter.Formatting = Formatting.Indented; XmlSerializer xs = new XmlSerializer(typeof(Comprobante)); xs.Serialize(xmlTextWriter, comprobante, xmlNameSpace); xmlTextWriter.Close(); } |
Respuesta: Facturas Digitales SAT - Mexico C# Justo yo estaba con el mismo problema Antes de asignarle los valores debes inicializar el objeto en cada posicion, comprobanteConcepto[0] = new ComprobanteConcepto(); y ya despues asignas tus valores comprobanteConcepto[0].unidad = "Servicio"; comprobanteConcepto[0].noIdentificacion = "01"; comprobanteConcepto[0].descripcion = "Asesoria Fiscal y administrativa"; comprobanteConcepto[0].valorUnitario = 2000.00M; comprobanteConcepto[0].importe = 2000.00M; A mi me funciono... Saludos |
Respuesta: Facturas Digitales SAT - Mexico C# Alguien sabe como se puede obtener la cadena original, si nos basamos en este esquema (usando la clase .cs)? espero no sea demasiado obvia mi pregunta. Saludos. |
Respuesta: Facturas Digitales SAT - Mexico C# Tratando de contestarme a mi mismo, vi el formato http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6543.html Supongo que no hay atajos mas que hacerlo a mano, y no es posible que se emita en automático la cadena original |
Respuesta: Facturas Digitales SAT - Mexico C# Saludos javalos532, estoy buscando el código fuente para emitir CFD´s del SAT con todas las características, lo tienes? lo vendes? Me interesa en VB.net Alguien sabe de quién lo tenga disponible? Me urge para implementarlo en la empresa donde laboro, me meti en aprietos, les dije que no era necesario el ContPAQ, échenme la mano porque me puede costar la chamba... Gracias, José Luis [email protected] |
Respuesta: Facturas Digitales SAT - Mexico C# bien,... YO HE PODIDO ASER LA DIGESTION, PERO NO PUEDO GENERAR EL SELLO... COMO PUEDO GENERAR EL SELLO EN C#... ¡¡ A Y EN QUE4 MOMENTO USO EL CERTIFICADO DEL SAT Y EL ARCHIVO .KEY ASI GENERO LA DIGESTION MD5 cadena = @"||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||"; sw.Write(cadena); sw.Close(); MessageBox.Show("cadena {0}, '" + cadena + "'"); System.IO.StreamReader sr = new StreamReader(fic); txt = sr.ReadToEnd(); sr.Close(); //DIGESTION MD5 MD5 md5 = new MD5CryptoServiceProvider(); byte[] data = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(cadena) ); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i <= data.Length - 1; i++) { sBuilder.Append(data[i].ToString("x2")); } string cadmd5 = sBuilder.ToString(); MessageBox.Show("encriptando cadena md5: {0}, '" + sBuilder + "' LA CAD STRINGG: {1}, '" + sBuilder + "'"); |
Respuesta: Facturas Digitales SAT - Mexico C# Hola Tengo una duda aqui xmlNameSpace.Add("schemaLocation", "http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd"); output xmlns:schemaLocation="http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" Deberia? xsi:schemaLocation="http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" me podrían ayudar con esto |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
|
Respuesta: Facturas Digitales SAT - Mexico C# Hola ecastilloc puse tu codigo de comprobantes para generar el XML solo que me arroja un error al serializar The global XML attribute 'fecha' from namespace '' references distinct types System.DateTime and System.DateTime. Use XML attributes to specify another XML name or namespace for the attribute or types. Me podrias ayudar? Gracias |
Respuesta: Facturas Digitales SAT - Mexico C# Ups al parecer con la conversion a .cs se agrego un campo fecha con tipo de dato date, solo lo quite y ya funciono una disculpa. |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
|
Respuesta: Facturas Digitales SAT - Mexico C# Este es el código que uso para generar el sello digital: Código: . estoy en esa parte y no se que mas hacer :S |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
Este es la funcion que el crea le envias tu cadena original public static string CrearHash(string input) { MD5 md5Hasher = MD5.Create(); byte[] data = md5Hasher.ComputeHash(UTF8Encoding.UTF8.GetBytes(i nput)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++){ sBuilder.Append(data[i].ToString("x2")); } return sBuilder.ToString(); } |
Respuesta: Facturas Digitales SAT - Mexico C# Con respecto a la cadena Original y la creacion del sello digital al ejecutar el siguiente comando creo el sello digital $ openssl dgst -MD5 -sign aaa010101aaa_CSD_01.key.pem cadena_original.txt | openssl enc -base64 -a pero al crearlo sobre lo siguiente comando el sello digital varia $ xsltproc cadenaoriginal_2_0.xslt 1.xml | openssl dgst -MD5 -sign aaa010101aaa_CSD_01.key.pem | openssl enc -base64 -a NOTA: xsloproc genera la cadena original automaticamente segun la informacion que entrega el xslt del SAT Alguien le ha pasado lo mismo Esto usando Linux |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
Estoy desarrollando el sistema de facturación y tengo problema en la generación del .xml También sigo al pie de la letra el procedimiento y al validar me indica igual que no es válido. Pero que fue leído exitosamente. Lo que si les puedo decir es que el archivo .xml se tiene que guardar en UTF_8 en lugar de ascii que es como lo genera. Abriéndolo con un editor de texto profesional (ultraedit) el xml lo muestra como archivo DOS, convirtiéndolo el mismo archivo a formato utf_8 y salvarlo para posteriormente validarlo en el SAT, mi problema es que no lo puedo salvar, me lo regresa al formato 2 alguna idea? |
Respuesta: Facturas Digitales SAT - Mexico C# Cita:
Código: string tempFile = "./ostring.txt"; |
La zona horaria es GMT -6. Ahora son las 03:57. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.