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. Cita: Iniciado por ElTajito Gracias a todos por su ayuda, gracias a Dios, ya quedo todo en C#. Disculpa...funciona al 100 tu sistema??? Responde pronto...

  #91 (permalink)  
Antiguo 01/12/2010, 13:11
 
Fecha de Ingreso: diciembre-2010
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Cita:
Iniciado por ElTajito Ver Mensaje
Gracias a todos por su ayuda, gracias a Dios, ya quedo todo en C#.

Disculpa...funciona al 100 tu sistema???
Responde pronto
  #92 (permalink)  
Antiguo 20/12/2010, 12:16
 
Fecha de Ingreso: septiembre-2005
Mensajes: 2
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Que tal, antes que nada un saludo a todos, esta es la primera vez que escribo en este foro, pero realmente necesito ayuda.

Estoy atorado con la generacion del archivo con la cadena original, ya que al guardarlo o me lo guarda en ansi o utf8 pero con bom.

El problema es que si guardo el texto de la cadena original dentro de la variable si me lo guarda sin bom, pero si la variable que tiene la cadena original es producto de las concatenaciones ya no me funciona, espero me haya dado a entender, por ejemplo:

Funciona:

strCadOriginal = "||2.0|FAPBL|38|20-12-2010T11:..."

No funciona:

strCadIriginal = strVersion & strSerie & ...

Sabran por que es esto, tengo mas de tres dias con esto y no puedo resolverlo, les agradezco su atencion.


Gracias





Cita:
Iniciado por thebman Ver Mensaje
Que tal eh llegado a la digestion MD5 usando el openSSL en conjunto con vb.net
el error que existe es que cuando la funcion donde guardamos el archivo recibe el parametro de codificar a utf 8 el archivo se guarda como UTF-8 pero al principio del archivo se agrega que la codificacion usada es UTF8 y por eso la digesion con el openSSL no da igual que en el sat intenta guardar el archivo sin darle codificacion y te funcionara.

Dim cadenaoriginal As String = "||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||"


System.IO.File.WriteAllText("C:\cadena.txt", CADENAORIGINAL)

despues aplica la digestion MD5 al archivo cadena.txt y te regresara el resultado.

Nota: No tenemos que darle el formato al archivo porque la instruccion usada ya la guarda en ese formato.

Saludos.
  #93 (permalink)  
Antiguo 20/12/2010, 12:18
 
Fecha de Ingreso: septiembre-2005
Mensajes: 2
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Que tal, antes que nada un saludo a todos, esta es la primera vez que escribo en este foro, pero realmente necesito ayuda.

Estoy atorado con la generacion del archivo con la cadena original, ya que al guardarlo o me lo guarda en ansi o utf8 pero con bom.

El problema es que si guardo el texto de la cadena original dentro de la variable si me lo guarda sin bom, pero si la variable que tiene la cadena original es producto de las concatenaciones ya no me funciona, espero me haya dado a entender, por ejemplo:

Funciona:

strCadOriginal = "||2.0|FAPBL|38|20-12-2010T11:..."

No funciona:

strCadIriginal = strVersion & strSerie & ...

Sabran por que es esto, tengo mas de tres dias con esto y no puedo resolverlo, les agradezco su atencion.


Gracias
  #94 (permalink)  
Antiguo 20/12/2010, 17:09
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Facturas Digitales SAT - Mexico C#

Ve en el foro de .net
http://www.forosdelweb.com/f29/factu...mexico-806167/

Como recomendacion, es mejor generar la cadena original mediante la transformacion via XSLT con el archivo publicado x el sat. Queda en 3 o 4 lineas y te evitas problemas.
  #95 (permalink)  
Antiguo 21/12/2010, 12:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola, solo para agradecer a todos y de paso postear mis resultados. No se como este esto, pero ahi va mi solucion que me genera un sello valido:

Código C#:
Ver original
  1. public static void Prueba()
  2. {
  3.     Comprobante cfd = new Comprobante();
  4.     // ...
  5.     // Llenar datos del comprobante.
  6.     // ...
  7.  
  8.     cfd.Emisor = new ComprobanteEmisor();
  9.     // ...
  10.     // Llenar datos del emisor.
  11.     // ...
  12.  
  13.     cfd.Emisor.DomicilioFiscal = new t_UbicacionFiscal();
  14.     // ...
  15.     // Llenar datos del domicilio fiscal.
  16.     // ...
  17.  
  18.     cfd.Receptor = new ComprobanteReceptor();
  19.     // ...
  20.     // Llenar datos del receptor.
  21.     // ...
  22.  
  23.     cfd.Receptor.Domicilio = new t_Ubicacion();
  24.     // ...
  25.     // Llenar datos del domicilio.
  26.     // ...
  27.  
  28.     cfd.Conceptos = new ComprobanteConcepto[n];
  29.     cfd.Conceptos[i] = new ComprobanteConcepto();
  30.     // ...
  31.     // Llenar datos de cada concepto.
  32.     // ...
  33.  
  34.     cfd.Impuestos = new ComprobanteImpuestos();
  35.     // ...
  36.     // Llenar datos de impuestos.
  37.     // ...
  38.  
  39.     // Obtener la cadena original.
  40.     string co = GenerarCadenaOriginal(cfd);
  41.  
  42.     // DIGESTION MD5 <- Ignoro para que sirva, pero como se ve, Copy / Paste de uno de los posts.
  43.     MD5 md5 = new MD5CryptoServiceProvider();
  44.     byte[] data = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(co));
  45.     StringBuilder sBuilder = new StringBuilder();
  46.     for (int i = 0; i <= data.Length - 1; i++)
  47.     {
  48.         sBuilder.Append(data[i].ToString("x2"));
  49.     }
  50.     string cadmd5 = sBuilder.ToString();
  51.  
  52.     // Obtener el archivo *.p12 como se menciono en algun post.
  53.     X509C.X509Certificate2 _MiCertificado = new X509C.X509Certificate2(@"x:\micert.p12", "mipass");
  54.     RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)_MiCertificado.PrivateKey;
  55.     MD5CryptoServiceProvider hasher = new MD5CryptoServiceProvider();
  56.     byte[] bytesFirmados = RSA.SignData(System.Text.Encoding.UTF8.GetBytes(co), hasher);
  57.     string sello = Convert.ToBase64String(bytesFirmados);
  58.  
  59.     // Agregamos el sello.
  60.     cfd.sello = sello;
  61.  
  62.     // ...
  63.     // De igual manera, conseguir el numero de certificado.
  64.     // ...
  65.  
  66.     // Generar el comprobante fiscal digital
  67.     GenerarCfd(cfd, @"x:\cfd.xml");
  68. }
  69.  
  70. /// <summary>
  71. /// Genera la cadena original a partir
  72. /// </summary>
  73. /// <param name="cfd">Instancia de la clase Comprobante con la informacion del Comprobante Fiscal Digital.</param>
  74. /// <returns>Un valor de tipo string con el valor de la cadena original.</returns>
  75. public static string GenerarCadenaOriginal(Comprobante cfd)
  76. {
  77.     XmlSerializerNamespaces xmlNameSpace = new XmlSerializerNamespaces();
  78.     xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
  79.  
  80.     MemoryStream xmlCadenaOriginal = new MemoryStream();
  81.     XmlTextWriter xmlTextWriter = new XmlTextWriter(xmlCadenaOriginal, Encoding.UTF8);
  82.  
  83.     xmlTextWriter.Formatting = Formatting.Indented;
  84.     XmlSerializer xs = new XmlSerializer(typeof(Comprobante));
  85.  
  86.     xs.Serialize(xmlTextWriter, cfd, xmlNameSpace);
  87.  
  88.     xmlCadenaOriginal.Position = 0;
  89.  
  90.     XPathDocument xpathdoc = new XPathDocument(xmlCadenaOriginal);
  91.     XslTransform xsltrans = new XslTransform();
  92.     xsltrans.Load("E:\\cadenaoriginal_2_0.xslt");
  93.  
  94.     MemoryStream strCadenaOriginal = new MemoryStream();
  95.     XmlTextWriter writer = new XmlTextWriter(strCadenaOriginal, null);
  96.     xsltrans.Transform(xpathdoc, null, writer);
  97.  
  98.     strCadenaOriginal.Position = 0;
  99.     StreamReader sr = new StreamReader(strCadenaOriginal);
  100.     string cadenaOriginal = sr.ReadToEnd();
  101.     sr.Close();
  102.     sr.Dispose();
  103.     sr = null;
  104.  
  105.     writer.Close();
  106.     writer = null;
  107.  
  108.     xmlTextWriter.Close();
  109.     xmlTextWriter = null;
  110.  
  111.     xmlCadenaOriginal.Close();
  112.     xmlCadenaOriginal.Dispose();
  113.     xmlCadenaOriginal = null;
  114.  
  115.     return cadenaOriginal;
  116. }
  117.  
  118. /// <summary>
  119. /// Genera el Comprobante Fiscal Digital.
  120. /// </summary>
  121. /// <param name="cfd">Instancia de la clase Comprobante con la informacion del Comprobante Fiscal Digital.</param>
  122. /// <param name="archivo">Ubicacion del archivo a generar.</param>
  123. public static void GenerarCfd(Comprobante cfd, String archivo)
  124. {
  125.     XmlSerializerNamespaces xmlNameSpace = new XmlSerializerNamespaces();
  126.     xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
  127.  
  128.     XmlTextWriter xmlTextWriter = new XmlTextWriter(archivo, Encoding.UTF8);
  129.  
  130.     xmlTextWriter.Formatting = Formatting.Indented;
  131.     XmlSerializer xs = new XmlSerializer(typeof(Comprobante));
  132.     xs.Serialize(xmlTextWriter, cfd, xmlNameSpace);
  133.     xmlTextWriter.Close();
  134.     xmlTextWriter = null;
  135. }

[URL="http://www.forosdelweb.com/f78/facturas-digitales-sat-mexico-c-803607/index3.html#post3573197"]Aqui esta el post en el que el usuario J_L_A menciona como generar las clases a partir del archivo [B]cfdv2.xsd[/B][/URL]

Gracias a todos.

Última edición por mrcs_jvc; 21/12/2010 a las 12:43 Razón: Update
  #96 (permalink)  
Antiguo 07/01/2011, 15:41
 
Fecha de Ingreso: abril-2006
Mensajes: 1
Antigüedad: 18 años
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Gracias a todos los que ponen sus dudas y soluciones he logrado crear mi comprobante fiscal digital, de aquí y de otras páginas, les dejo mi código por si a alguien le sirve, es visual basic 2008:

Cadena Original:

Cadena = “|”
SGL_Query = “SELECT EFA_CEFA,EFA_NUME,CONVERT(VARCHAR,EFA_FECH,126),CT E_NORS,CTE_RFCC,CTE_CALL,CTE_NEXT,CTE_NINT,CTE_COL O,”
SGL_Query = SGL_Query & “PDM_DESC, ENT_DESC, PAI_DESC, CTE_CODP ”
SGL_Query = SGL_Query & “FROM TDFCTEFA, TCFCTCTE, TCRHUPAI, TCRHUPDM, TCRHUENT ”
SGL_Query = SGL_Query & “WHERE EFA_CCTE = CTE_CCTE And CTE_CPDM = PDM_CPDM And CTE_CENT = ENT_CENT ”
SGL_Query = SGL_Query & “And CTE_CPAI = PAI_CPAI ”
SGL_Query = SGL_Query & ” AND EFA_CEFA=” & Val(Txt_Clave.Text)
Call Ejecuta(sat, SGL_Query)
Do Until TraeSig(sat) = NOMOREROWS
Cadena = Cadena + “|2.0|A”
Cadena = Cadena + “|” + Trim(DameDato(sat, 2))
Cadena = Cadena + “|” + Trim(DameDato(sat, 3))
Cadena = Cadena + “|174911|2010|ingreso|efectivo|Pago en una sola exhibicion|subtotal|0|grantotal”
Cadena = Cadena + “|JSI060303UA9|JF SISTEMAS, S. A. DE C. V.|MIRAVEREDA|23|B|CUMBRIA”
Cadena = Cadena + “|CUAUTITLAN IZCALLI|ESTADO DE MEXICO|MEXICO|54740″
Cadena = Cadena + “|” + Trim(DameDato(sat, 5))
Cadena = Cadena + “|” + Trim(DameDato(sat, 4))
Cadena = Cadena + “|” + Trim(DameDato(sat, 6))
If Trim(DameDato(sat, 7)) + Trim(DameDato(sat, 8)) “” Then
Cadena = Cadena + “|” + Trim(DameDato(sat, 7)) + Trim(DameDato(sat, 8))
Else
Cadena = Cadena + “|”
End If
Cadena = Cadena + “|” + Trim(DameDato(sat, 9))
Cadena = Cadena + “|” + Trim(DameDato(sat, 10))
Cadena = Cadena + “|” + Trim(DameDato(sat, 11))
Cadena = Cadena + “|” + Trim(DameDato(sat, 12))
Cadena = Cadena + “|” + Trim(DameDato(sat, 13))
Loop
SGL_Query = “SELECT DFE_CANT,DFE_CONC,DFE_IMPO,DFE_CANT*DFE_IMPO,DFE_I IVA*DFE_CANT,DFE_CONS ”
SGL_Query = SGL_Query & “FROM TDFCTDFE WHERE DFE_CEFA=” & Val(Txt_Clave.Text)
Call Ejecuta(sat, SGL_Query)
Dim ImpIva As Double
ImpIva = 0
GTotal = 0
Subtotal = 0
Do Until TraeSig(sat) = NOMOREROWS
Cadena = Cadena + “|” + Trim(DameDato(sat, 1))
Cadena = Cadena + “|PZA”
Cadena = Cadena + “|” + Trim(DameDato(sat, 6))
Cadena = Cadena + “|” + Trim(DameDato(sat, 2))
Cadena = Cadena + “|” + Trim(Str(CorrigeMoneda(DameDato(sat, 3))))
Cadena = Cadena + “|” + Trim(Str(CorrigeMoneda(DameDato(sat, 4))))
ImpIva = ImpIva + Val(CorrigeMoneda(DameDato(sat, 5)))
Subtotal = Subtotal + CorrigeMoneda(DameDato(sat, 4))
GTotal = GTotal + CorrigeMoneda(DameDato(sat, 4)) + CorrigeMoneda(DameDato(sat, 5))
Loop
Cadena = Cadena + “|IVA|” + Trim(Str(IIva * 100))
Cadena = Cadena + “|” & Trim(Str(ImpIva))
Cadena = Cadena + “|” & Trim(Str(ImpIva))
Cadena = Cadena + “||”
Cadena = Replace(Cadena, “subtotal”, Trim(Str(Subtotal)))
Cadena = Replace(Cadena, “grantotal”, Trim(Str(GTotal)))
System.IO.File.WriteAllText(“C:\SARV3.1J\ELE\caden a_orig.txt”, Cadena)

archivo XML:

Dim ANIO As Long
ANIO = 0
SGL_Query = “SELECT YEAR(EFA_FECH) FROM TDFCTEFA WHERE EFA_CEFA=” & Val(Txt_Clave.Text)
Call Ejecuta(sat, SGL_Query)
Do Until TraeSig(sat) = NOMOREROWS
ANIO = Val(DameDato(sat, 1))
Loop
Dim W As New XmlTextWriter(“C:\SARV3.1J\ELE\” & Txt_Clave.Text & “.xml”, System.Text.Encoding.UTF8)
W.WriteStartDocument()
Shell(“C:\OpenSSL-Win32\bin\openssl.exe pkcs8 -inform DER -in C:\SARv3.1J\ELE\JSI060303UA9_0903250930.key -passin pass:chela2009 -out C:\SARV3.1J\ELE\JSI.key.pem”)
System.Threading.Thread.Sleep(500)
Shell(“C:\OpenSSL-Win32\bin\openssl.exe x509 -inform DER -outform PEM -in C:\SARv3.1J\ELE\jsi060303ua9_1010061243s.cer -pubkey -passin pass:chela2009 -out C:\SARV3.1J\ELE\JSI.cer.pem”)
System.Threading.Thread.Sleep(500)
If ANIO 0 Then
W.WriteStartElement(“Impuestos”)
W.WriteAttributeString(“totalImpuestosTrasladados” , Trim(Str(ImpIva)))
W.WriteStartElement(“Traslados”)
W.WriteStartElement(“Traslado”)
W.WriteAttributeString(“impuesto”, “IVA”)
W.WriteAttributeString(“tasa”, Trim(Str((IIva * 100))))
W.WriteAttributeString(“importe”, Trim(Str(ImpIva)))
W.WriteEndElement() ‘finaliza traslado
W.WriteFullEndElement() ‘finaliza traslados
W.WriteFullEndElement() ‘finaliza impuestos
End If
W.WriteStartElement(“Impresion”)
W.WriteAttributeString(“CadenaOriginal”, Cadena)
W.WriteFullEndElement()
‘…………………………………
W.WriteFullEndElement() ‘finaliza comprobante
W.WriteEndDocument() ‘finaliza documento
W.Flush()
W.Close()

obviamente yo uso mi base de datos, espero entiendan el código y lo adapten al suyo.
  #97 (permalink)  
Antiguo 10/01/2011, 22:33
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Que tal grupo, como les va ? ya tenia mucho que no entraba pero me gustaria saber si alguien ya sustituyo el metodo MD5 por SHA-1 en C# .

Gracias a todos y seguimos en contacto.
Saludos.
  #98 (permalink)  
Antiguo 11/01/2011, 15:45
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Revisa esta clase [URL="http://msdn.microsoft.com/es-es/library/system.security.cryptography.sha1cryptoserviceprov ider%28VS.80%29.aspx"]SHA1CryptoServiceProvider[/URL]
  #99 (permalink)  
Antiguo 10/02/2011, 12:13
 
Fecha de Ingreso: febrero-2011
Mensajes: 11
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Facturas Digitales SAT - Mexico C#

Hola a todos, hace poco empece con esto de la facturacion electronica, y gracias a todos sus aportes, rapidamente he conseguido generar un sello valido en C#

Me gustaria que me asesoraran en que pasos siguen, por el momento estoy abordando los siguientes:

1. Crear xml de la factura con sello digital
2. Reporte mensual
3. Pdf para mostrar la factura (todavia investigando)

pero no se que mas sigue :(
Agradeceria mucho tips, que es eso de la norma para respaldarlas, que otros procesos hay, consideraciones... casi no quiero nada jeje

y de verdad muchas gracias a todos
  #100 (permalink)  
Antiguo 25/02/2011, 12:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

A mi tambien me esta funcionando el código que mencionas, pero ahora ocupo el 'validador' o sea leer del XML el certificado, leer el sello digital y leer la cadena y validar con esos tres datos, he podido leer los datos pero la funcion en c# rsa.VerifyData(); no me funciona, te anexo el codigo para que le eches un ojo, en teoria deberia de funcionar:

public string ValidaSelloDigital2(string selloDigital, string cert, string cadena)
{
try
{
byte[] sello_byte = Convert.FromBase64String( selloDigital);
byte[] cert_byte = Convert.FromBase64String( cert);

X509Certificate2 certificado = new X509Certificate2( cert_byte);
//initialze the byte arrays to the public key information.
byte[] pk = certificado.GetPublicKey();

//Create a new instance of RSACryptoServiceProvider.
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.PersistKeyInCsp = false;
//Get an instance of RSAParameters from ExportParameters function.
RSAParameters RSAKeyInfo = rsa.ExportParameters(false);

//Set RSAKeyInfo to the public key values.
RSAKeyInfo.Modulus = pk;
//Import key parameters into RSA.
rsa.ImportParameters(RSAKeyInfo);

byte[] cadena_byte = System.Text.Encoding.UTF8.GetBytes(cadena);
System.Security.Cryptography.SHA1CryptoServiceProv ider x =
new System.Security.Cryptography.SHA1CryptoServiceProv ider();
byte[] data = x.ComputeHash(cadena_byte);

System.Security.Cryptography.MD5CryptoServiceProvi der x2 =
new System.Security.Cryptography.MD5CryptoServiceProvi der();
byte[] data2 = x2.ComputeHash(cadena_byte);

bool result = rsa.VerifyHash(data2, CryptoConfig.MapNameToOID("MD5"), sello_byte);
bool result2 = rsa.VerifyHash(data, CryptoConfig.MapNameToOID("SHA1"), sello_byte);

string ret = "Sello inválido.";

if (result)
{
ret = "Sello válido con digestion MD5 " + hash_md5(cadena);
}
else
{
if (result2)
{
ret = "Sello válido con digestion SHA1 " + hash_sha1(cadena);
}
}
return ret;
}
catch (Exception ex)
{
return "Error al desencriptar el sello digital " + ex.ToString();
}
}


Cita:
Iniciado por javalos532 Ver Mensaje
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.

Última edición por danfred; 25/02/2011 a las 13:02
  #101 (permalink)  
Antiguo 02/03/2011, 12:54
 
Fecha de Ingreso: febrero-2011
Mensajes: 11
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Facturas Digitales SAT - Mexico C#

hola a todos, que datos proporciona el sat, tengo entendido que nos da un archivo .cer y uno .key... pero como obtengo los datos para mi factura, es decir, el folio, año de aprobacion, numero de aprobacion, numero de certificado, el certificado pues es el .cer, por ese no hay problema...

ojala y no sea muy tonta mi pregunta
saludos a todos
  #102 (permalink)  
Antiguo 13/04/2011, 09:21
Avatar de elfkampher  
Fecha de Ingreso: febrero-2011
Ubicación: Queretaro, Mexico
Mensajes: 35
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Cita:
Iniciado por J_L_A Ver Mensaje
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!
ya pudiste hacer el sha1 con openssl? me urge terminar esto y el validador del SAT me dice que el sello es invalido, lo estoy haciendo primero con la digestion MD5 si pudieses orientarme te lo agradeceria
  #103 (permalink)  
Antiguo 19/04/2011, 12:43
Avatar de elfkampher  
Fecha de Ingreso: febrero-2011
Ubicación: Queretaro, Mexico
Mensajes: 35
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Cita:
Iniciado por gerloxxx Ver Mensaje
hola a todos, que datos proporciona el sat, tengo entendido que nos da un archivo .cer y uno .key... pero como obtengo los datos para mi factura, es decir, el folio, año de aprobacion, numero de aprobacion, numero de certificado, el certificado pues es el .cer, por ese no hay problema...

ojala y no sea muy tonta mi pregunta
saludos a todos
buen dia pues mira si estas desarrollando para un cliente el sat tubo que haberte dado ademas del .key y el .cer un documento con los folios una cadena original con los datos fiscales del emisor y en esa viene el año de aprobacion y los folios el numero de certificado es el numero del archivo .cer espero haberte podido aclarar un poco
  #104 (permalink)  
Antiguo 04/05/2011, 12:09
 
Fecha de Ingreso: agosto-2010
Mensajes: 13
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola a todos:

Me gustaria saber como generar la factura y el sello digital en ASP con VB6, lo que pasa es que en la empresa donde trabajo ya tienen desarrollado un sistema web en esa plataforma y quieren agregarle el modulo de facturación electronica y la verdad no tengo ni idea de si se puede hacer en VB6 y ASP.

Agradecere mucho si alguien me sugiere algo o tiene algun tutorial.
  #105 (permalink)  
Antiguo 15/07/2011, 13:20
JN3
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Tienes los sellos de este año o del 2010 ??? en referencia para saber a cual de las 2 reformas fiscales pertenecerás
  #106 (permalink)  
Antiguo 25/11/2011, 16:38
 
Fecha de Ingreso: julio-2011
Ubicación: donde me encuentre la noche
Mensajes: 140
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Facturas Digitales SAT - Mexico C#

alguien que pueda ayudarme a desarrollar un sistema de facturacion
  #107 (permalink)  
Antiguo 17/06/2013, 15:34
 
Fecha de Ingreso: junio-2013
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

Hola, necesito hacer la cancelacion en c#, actualmente utilizo openssl para hacerla mediante codigo, pero no quiero instalar openssl, existe alguna forma de ejecutar los siguientes comandos openssl traducidos a c#


pkcs8 -inform DER -in “key.key” -passin pass:pwd -out “key.pem”
pkcs12 -export -out “cer.pfx” -inkey “key.pem” -in “cer.pem” -passout pass:pwd
base64 -in “cer.pfx” -out “cer.pem”

gracias!
  #108 (permalink)  
Antiguo 25/06/2013, 00:12
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Facturas Digitales SAT - Mexico C#

Hola, si lo que quieres es acceder al .key a traves de codigo, e incluso generar el sello digital puedes hacerlo con opensslkey.cs buscalo en google, es codigo C# puro, solo debes incorporarlo en tu proyecto .net, no necesita openssl y tampoco convertir tu .key a otro formato
  #109 (permalink)  
Antiguo 02/07/2013, 18:24
 
Fecha de Ingreso: junio-2013
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Facturas Digitales SAT - Mexico C#

hola wwwmaster, lo que estoy tratanto de generar es un pfx que me pide el pac para la cancelacion, actualmente lo genero con los comandos openssl que adjunte, pero no quiero depender del programa, ya cheque el cs que me recomendaste pero sinceramente no le hallo aun, no tendras algun codigo de ejemplo mas aplicado. Gracias!

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 22:18.