Foros del Web » Programación para mayores de 30 ;) » .NET »

Factura electroncia sat mexico

Estas en el tema de Factura electroncia sat mexico en el foro de .NET en Foros del Web. Que tal, bueno estoy empezando a crear mi desarrollo de CFD's estara en Vb.net 2005 a lo largo del proceso ire publicando aqui mis avances ...

  #1 (permalink)  
Antiguo 12/05/2010, 14:15
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Información Factura electroncia sat mexico

Que tal, bueno estoy empezando a crear mi desarrollo de CFD's estara en Vb.net 2005 a lo largo del proceso ire publicando aqui mis avances para ayudar a quienes estan empezando tambien, soy programador y desde que me adentre a este mundo todo lo eh aprendido gracias a Internet cursos tutoriales y demas es hora de regresarle a la comunidad lo poco que se y que mejor manera que compartir lo que se sobre este tema, espero les sea de ayuda y con su apoyo sacar este proyecto adelante.

Gracias y saludos a todos.

Última edición por thebman; 12/05/2010 a las 15:02
  #2 (permalink)  
Antiguo 12/05/2010, 14:49
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Que necesitamos

Antes de meternos con codigo le daremos seguimiento al ejemplo que nos proporciona sat en la siguiente pagina:

http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6522.html

En esta pagina tenemos una cadena original la cual es la siguiente:

||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||

Para formar esta cadena desde nuestro codigo tenemos la reglas que nos da sat en la siguiente pagina:

http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6543.html


Por lo pronto y para empezar aremos pruebas con la cadena que Sat nos proporciona.


Bueno apartir de esta cadena vamos a obtener el Sello Digital pero para esto tendremos que descargar el programa Openssl que es el que recomienda SAT para la generacion del sello. Este lo obtenemos en la siguiente pagina:

http://www.openssl.org/source/


Tambien necesitaremos certificados de prueba que tambien nos facilita el sat de la siguiente pagina:

http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_15564.html


Al momendto de descargar los certificados de prueba saldran 9 certificados con su resprectiva extension .cer y sus llaves con nextension .key solo usaremos alguna de ellas y la clave privada que biene en un archivo txt.

Última edición por thebman; 12/05/2010 a las 15:36
  #3 (permalink)  
Antiguo 12/05/2010, 15:10
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Digestion MD5

Bueno pues en este paso aplciaremos la digestion MD5 a nuestra cadena original.

Bueno a estas alturas espero y minimo ya tengan creado su proyecto FacturaElectronica y si no pues a crearlo.

Declararemos una variable tipo String que se llamara cadena original y le pasaraemos como valor la cadena antes mencionada quedaria de la siguiente manera:

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|| "

A continuacion guardaremos la cadena en un archivo con su formato UTF-8 como lo pide SAT:

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

Una vez hecho esto generaremos la digestion MD5 para la generacion usaremos la libreria del Openssl.

Con esta instruccion crearemos un archivo llamado md5.txt con la digestion de la cadena original
C:\OpenSSL-Win32\bin\openssl.exe dgst -MD5 C:\cadena.txt > C:\md5.txt

el archivo se guardara con el valor:
MD5(C:\cadena.txt)= 8aa2b617944427353697e694a2e35a07

Última edición por thebman; 12/05/2010 a las 15:27
  #4 (permalink)  
Antiguo 12/05/2010, 16:00
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Sello Digital

Pues bien en el post anterior generamos nuestra digestion MD5 en un archivo md5.txt es imoprtante editar el archivo y borrar la parte de MD5(C:\cadena.txt)=
Para que nuestro archivo solo quede con la pura digestion la cual es:
8aa2b617944427353697e694a2e35a07

Bueno ahora tenemos que generar el sello digital apartir de la digestion pero antes de esto tenemos que convertir nuestros archivos .key y .cer a .pem para su correcto procesamiento.

Para hacer esto nos vamos a la aplicacion Openssl y dentro de los certificados que descargamos usaremos solo un archivo .key y la clave privada.

Archivo:
aaa010101aaa_CSD_01.key

Instruccion para generar nuestro archivo .pem:

openssl.exe pkcs8 -inform DER -in aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out aaa010101aaa_CSD_01.key.pem

Una ves ejecutada esta instruccion tendremos nuestro nuevo archivo:

aaa010101aaa_CSD_01.key.pem

El cual usaremos para generar nuestro sello tambien dentro del Openssl

openssl dgst -sign aaa010101aaa_CSD_01.key.pem md5.txt | openssl enc -base64 -A > sello.txt

Y obtendremos el siguiente sello en su respectivo archivo sello.txt:

iIMz487EGyt6zCFjvcFNvHeOKgKMMc5y1py+QJrIvCmWbbxV43 k2xi6Q23p/Wee31vqUzYH0fbO0yBOvkDtiMejjdCOHPzmLvMkzfAzr919j6t bJOiODlgb7bisEdUkrjRrw+FfwQsPldsfHW6gq3K/fFGT6tTB7gqHP6a44ix0=
  #5 (permalink)  
Antiguo 12/05/2010, 16:34
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Usando el validador del SAT

Pues bien una vez teniendo nuestro sello ditial solo faltara validarlo ante el sat para ver si es correcto actualmente me encuentro en este paso pero bien aqui esta el avance:

Tenemos que generar el XML correspondiente:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<Comprobante fecha="2005-09-02T16:30:00" folio="1" noAprobacion="1" noCertificado="00001000000000000114" sello="iIMz487EGyt6zCFjvcFNvHeOKgKMMc5y1py+QJrIvCmWbbxV43k2xi6Q23p/Wee31vqUzYH0fbO0yBOvkDtiMejjdCOHPzmLvMkzfAzr919j6tbJOiODlgb7bisEdUkrjRrw+FfwQsPldsfHW6gq3K/fFGT6tTB7gqHP6a44ix0=" serie="A" version="1.0">
    <Emisor nombre="Industrias del Sur Poniente, S.A. de C.V." rfc="ISP900909Q88">
        <DomicilioFiscal calle="Alvaro Obregón" codigoPostal="06700" colonia="Col. Roma Norte" estado="Distrito Federal" localidad="México" municipio="Cuauhtémoc" noExterior="37" noInterior="3" pais="México"/>
        <ExpedidoEn calle="Pino Suarez" codigoPostal="95460" colonia="Centro" estado="Nuevo Léon" localidad="Monterrey" municipio="Monterrey" noExterior="23" pais="México"/>
    </Emisor>
    <Receptor nombre="Rosa María Calderón Uriegas" rfc="CAUR390312S87">
        <Domicilio calle="Topochico" codigoPostal="95465" colonia="Jardines del Valle" estado="Nuevo León" localidad="Monterrey" municipio="Monterrey" noExterior="52" pais="México"/>
    </Receptor>
    <Conceptos>
        <Concepto cantidad="10" descripcion="Vasos decorados" importe="200" unidad="Caja" valorUnitario="20"/>
        <Concepto cantidad="1" descripcion="Charola metálica" importe="150" unidad="pieza" valorUnitario="150"/>
    </Conceptos>
    <Impuestos>
        <Traslados>
            <Traslado importe="52.5" impuesto="IVA"/>
        </Traslados>
    </Impuestos>
</Comprobante>
Con nuestro archivo xml y nuestro certificado entraremos a esta pagina para validar nuestro sello:
https://www.consulta.sat.gob.mx/SICOFI_WEB/ModuloECFD_Plus/ValidadorComprobantes/Validador.html

Actualmente me regresa que el sello no es valido y me temo que es porque el numero de certificado no es correcto o bien existe incompatibilidad entre versiones ahora bien aqui les dejo un xml que ya incluye el certificado como parametro y este si lo valida la diferencia principal es la version del documento antes de la fecha viene la version que es 2.0:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<Comprobante xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0" serie="A" folio="1" fecha="2009-08-16T16:30:00" noAprobacion="1" anoAprobacion="2009" formaDePago="Una sola exhibición" subTotal="350.00" descuento="5.25" total="397.25" tipoDeComprobante="ingreso" noCertificado="10001200000000022517" certificado="MIIDhDCCAmygAwIBAgIUMTAwMDEyMDAwMDAwMDAwMjI1MTcwDQYJKoZIhvcNAQEFBQAwgcMxGTAXBgNVBAcTEENpdWRhZCBkZSBNZXhpY28xFTATBgNVBAgTDE1leGljbywgRC5GLjELMAkGA1UEBhMCTVgxGjAYBgNVBAMTEUFDIGRlIFBydWViYXMgU0FUMTYwNAYDVQQLFC1BZG1pbmlzdHJhY2nzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNp824xLjAsBgNVBAoUJVNlcnZpY2lvIGRlIEFkbWluaXN0cmFjafNuIFRyaWJ1dGFyaWEwHhcNMDgwODIxMTUyMjA4WhcNMTAwODIxMTUyMjA4WjCBmDElMCMGA1UELRMcQUFBMDEwMTAxQUFBIC8gQUFBQTAxMDEwMUFBQTEeMBwGA1UEBRMVIC8gQUFBQTAxMDEwMUhERlJYWDAxMRIwEAYDVQQKEwlNYXRyaXogU0ExEzARBgNVBAsTClVuaWRhZCAxMCAxEjAQBgNVBAMTCU1hdHJpeiBTQTESMBAGA1UEKRMJTWF0cml6IFNBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDpmiW1q9gyzCFtMcbaFDJexk2IpLoTdNXg4ToGRZ/f+hIjmj3N6ODWX1ARNFGYocEHf113GpW5Oe/mj6UqhBpiH4JRTNR4Udb8myJTArIlODynVHuIUuyhKo7gbMbDdXjilTAYY2XWQuQ7aDtWwntUmNg4vAC/F3OtRz3+y9wM5QIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEAafyD4gMsOvq7E3raPntmQlJTxpWwNySqskE7fe23HVL9UKFCUlWWx/W8gluxIX9S19y17iWnGbtmbNddHxG5PznPsy/a8PlwNHjDW0FOpia2LsvDrNcdPiJhzL/1OVagkenffFf8bLEetF3ktxZ7ifcH1yxVxpZ7PS/pe8YIOpWRuMmTV4ypGdsw9TW3HVP5IJ/canuQGPTb3LQ8ojihW2dHnC6ojaWW4GHFSZAPhQJ/DaH/UgFjaQke/RBtoAketfROdG+1qYeA1q/is04O4AXNmMByGp7ZnvGNrO9LDBvs3eKN4ZYcQyjxFEbr1X/xUqHCRF1VEkkC5jJQ1ktC4g==" sello="UlUSwGNEicfigV6i4RhTy0eb2RYWFYyFatJFcM/u5Wlkb5XRxXiCizTGw5Yxz9oZNk8msAgO4C5Gevjh+S2TJPZueYhaQeZlo6k0rE3CQexkOGVRpHkvAoAgOM5kGKzYe24DKZbTgjNL+ai+tbhEHmRAFcpv2rDpehbL3w6BnYU=">
  <Emisor nombre="Industrias del Sur Poniente, S.A. de C.V." rfc="ISP900909Q88">
    <DomicilioFiscal calle="Alvaro Obregón" codigoPostal="06700" colonia="Col. Roma Norte" estado="Distrito Federal" localidad="México" municipio="Cuauhtémoc" noExterior="37" noInterior="3" pais="México"></DomicilioFiscal>
    <ExpedidoEn calle="Pino Suarez" codigoPostal="95460" colonia="Centro" estado="Nuevo Léon" localidad="Monterrey" municipio="Monterrey" noExterior="23" pais="México"></ExpedidoEn>
  </Emisor>
  <Receptor nombre="Rosa María Calderón Uriegas" rfc="CAUR390312S87">
    <Domicilio calle="Topochico" codigoPostal="95465" colonia="Jardines del Valle" estado="Nuevo León" localidad="Monterrey" municipio="Monterrey" noExterior="52" pais="México"></Domicilio>
  </Receptor>
  <Conceptos>
    <Concepto cantidad="10" descripcion="Vasos decorados" importe="200" unidad="Caja" valorUnitario="20.00"></Concepto>
    <Concepto cantidad="1" descripcion="Charola metálica" importe="150" unidad="pieza" valorUnitario="150.00"></Concepto>
  </Conceptos>
  <Impuestos>
    <Traslados>
      <Traslado impuesto="IVA" tasa="15.00" importe="52.50"></Traslado>
    </Traslados>
  </Impuestos>
</Comprobante>
Estas son las dos cadenas originales para que noten mas a detalle la diferencia:

CADENA UNO:


||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||

CADENA DOS:

||2.0|A|1|2009-08-16T16:30:00|1|2009|ingreso|Una sola exhibición|350.00|5.25|397.25|ISP900909Q88|Industr ias 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.00|200|1|pieza|Charola metálica|150.00|150|IVA|15.00|52.50||

La principal diferencia es que al principio la primera no incluye la version y en esta segunda si pero aun setoy haciendo pruebas con todo esto mas delante publico los resultados...

Última edición por thebman; 13/05/2010 a las 09:22
  #6 (permalink)  
Antiguo 19/05/2010, 13:39
 
Fecha de Ingreso: mayo-2010
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola thebman

Consulta Técnica.

Como obtuviste la información que pones dentro del parametro certificado, de la etiqueta comprobante ??

Se sigue algún algoritmo a partir del certificado ??
  #7 (permalink)  
Antiguo 09/06/2010, 14:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Factura electroncia sat mexico

Que tal la etiqueta certificado la obtienes con el openssl con esta instruccion

openssl pkcs8 -inform DER -in AAA010101AAA_0408021316S.key -out AAA010101AAA.key.pem

aqui estoy usando llos archivos de prueba de SAT mm aunque puedes omitir ese parametro.

Solo te sirve para omitir en el validador SAT el certificado si lo pones ya no te pide el certificado y si no lo pones pues si te lo pide.

Saludos.
  #8 (permalink)  
Antiguo 09/06/2010, 19:43
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

Hola Thebman
¿como vas con el programa?

Yo estoy trabajando tambien en vb.net y voy poco atorado con la generacion del sello.

Ya superé el paso de la digestion MD5 y me sale bien, incluso conseguí hacerla de dos formas: con openssl y directamente con .net
con la primera sale :MD5(hash1.txt)= 8aa2b617944427353697e694a2e35a07 con lo que hay que cortar despues, pero con la segunda ya sale directamente 8aa2b617944427353697e694a2e35a07



Despues, pase las claves a .pem con openssl

al intentar generar el sello con:
openssl dgst -sign aaa010101aaa_CSD_01.key.pem md5.txt | openssl enc -base64 -A > sello.txt

me sale un error : no me reconoce los dos comandos en una sola linea (dice que | no es un comando valido y no reconoce lo que sigue)

asi que lo hice en dos partes:

openssl dgst -sign -out sello1 aaa010101aaa.key.pem hash.txt -out sello1

y despues

openssl enc -base64 -in sello1 -out sello.txt

Funciona, pero que me sale un sello distinto del tuyo:

GeSvhHV6nD6AlopZYnX9vAju7iRJUi7Nmg2Zud0TtOAR6WCz+r wOZHEbVdmjdHVv
4MOqd6ArGAGPpguAkcZ/AK2rk0G6BRViTHi+sznUYavZ+4gtPGqWaIMaW/2ZaKIB
c6Jz+OlbyD5pLdxDkVzQn7x0oifubLkk0mlvGxX8o1I=

A ver si en estos dias creo el xml y lo pruebo.

A ver si nos podemos ayudar
  #9 (permalink)  
Antiguo 09/06/2010, 20:02
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

Este es el codigo para crear la digestion MD5 con vb.net

Pones la cadena original en la variable "cadena" y el resultado te lo da en la variable"digestion"


Sub prueba()

Dim cadena 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||"
Dim CadenaUTF8 As Byte()
Dim tmpHash() As Byte
Dim Digestion As String

'convierte en UTF8
CadenaUTF8 = System.Text.Encoding.UTF8.GetBytes(cadena)

'crea el hash
tmpHash = New MD5CryptoServiceProvider().ComputeHash(CadenaUTF8)

' lo pasa a una variable string mediante la funcion ByteArrayToString
Digestion = ByteArrayToString(tmpHash)


End Sub

Private Function ByteArrayToString(ByVal arrInput() As Byte) As String
Dim i As Integer
Dim sOutput As New StringBuilder(arrInput.Length)
For i = 0 To arrInput.Length - 1
sOutput.Append(arrInput(i).ToString("x2"))
Next
Return sOutput.ToString()
End Function


Saludos
Oscar
  #10 (permalink)  
Antiguo 14/06/2010, 20:30
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Factura electroncia sat mexico

Que tal Oscar gracias por tu aporte, ya no habia escrito nada porque estoy en la generacion del XML en vb.net, no se si ya iniciaste la generacion del xml si no lo has hecho aqui te dejo unas lineas de codigo para que te hagas una idea saludos..

Dim W As New XmlTextWriter("c:\CFD.xml", Encoding.UTF8)

W.WriteStartDocument()
W.WriteStartElement("Comprobante")
W.WriteStartAttribute("xmlns")
W.WriteValue("http://www.sat.gob.mx/cfd/2")
W.WriteEndAttribute()

W.WriteStartAttribute("xmlns:xsi")
W.WriteValue("http://www.w3.org/2001/XMLSchema-instance")
W.WriteEndAttribute()


W.WriteStartAttribute("xsi:schemaLocation")
W.WriteValue("http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd")
W.WriteEndAttribute()

W.WriteEndElement()
W.WriteEndDocument()
W.Flush()
W.Close()
  #11 (permalink)  
Antiguo 15/06/2010, 13:08
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

Estoy en eso para poder hacer pruebas con los sellos generados.

Parece que esta bien tu código, solo falta completarlo con los nodos y subnodos requeridos.


¿como le vas a pasar los datos? yo pensaba crear tres clases para ello: emisor, receptor y factura, asi el dato nombre del receptor estará en receptor.nombre
....

saludos
Oscar

Código:
        Dim W As New XmlTextWriter("C:\1\factura2.xml", Encoding.UTF8)

        W.WriteStartDocument()

        W.WriteStartElement("Comprobante")
        W.WriteStartAttribute("xmlns")
        W.WriteValue("http://www.sat.gob.mx/cfd/2")
        W.WriteEndAttribute()

        W.WriteStartAttribute("xmlns:xsi")
        W.WriteValue("http://www.w3.org/2001/XMLSchema-instance")
        W.WriteEndAttribute()


        W.WriteStartAttribute("xsi:schemaLocation")
        W.WriteValue("http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd")
        W.WriteEndAttribute()

        W.WriteStartAttribute("version")
        W.WriteValue("2.0")
        W.WriteEndAttribute()

        W.WriteStartAttribute("Serie") ' opcional
        W.WriteValue("E123456789")
        W.WriteEndAttribute()

        W.WriteStartAttribute("Folio")
        W.WriteValue("1234567890")
        W.WriteEndAttribute()

        W.WriteStartAttribute("Fecha")
        W.WriteValue("2010-06-07T18:20:50")
        W.WriteEndAttribute()



         'nodo emisor......................................................

        W.WriteStartElement("emisor")

        W.WriteStartAttribute("nombre")
        W.WriteValue("Pepito grillo S.A. de C.V.")
        W.WriteEndAttribute()


        W.WriteStartAttribute("RFC")
        W.WriteValue("PGR991223SDF")
        W.WriteEndAttribute()

        'subnodo Direccion emisor

        W.WriteStartElement("DomicilioFiscal")

        W.WriteStartAttribute("calle")
        W.WriteValue("Insurgentes")
        W.WriteEndAttribute()

        W.WriteStartAttribute("noExterior")
        W.WriteValue("45")
        W.WriteEndAttribute()

        W.WriteStartAttribute("Colonia")
        W.WriteValue("San Federico")
        W.WriteEndAttribute()

        W.WriteStartAttribute("Municipio")
        W.WriteValue("Benito Juarez")
        W.WriteEndAttribute()

        W.WriteStartAttribute("estado")
        W.WriteValue("DF")
        W.WriteEndAttribute()

        W.WriteStartAttribute("pais")
        W.WriteValue("Mexico")
        W.WriteEndAttribute()

        W.WriteStartAttribute("codigoPostal")
        W.WriteValue("51200")
        W.WriteEndAttribute()

        W.WriteEndElement()  'finaliza direccion

        W.WriteEndElement()  'finaliza emisor

        'nodo receptor....................................................

        W.WriteStartElement("receptor")

        W.WriteStartAttribute("nombre")
        W.WriteValue("nombreRec")
        W.WriteEndAttribute()

        W.WriteStartAttribute("RFC")
        W.WriteValue("RFCRec")
        W.WriteEndAttribute()

        'subnodo direccion receptor


        W.WriteStartElement("Domicilio")

        W.WriteStartAttribute("calle")
        W.WriteValue("calle")
        W.WriteEndAttribute()

        W.WriteStartAttribute("noExterior")
        W.WriteValue("122")
        W.WriteEndAttribute()

        W.WriteStartAttribute("noInterior")
        W.WriteValue("3-X")
        W.WriteEndAttribute()

        W.WriteStartAttribute("Colonia")
        W.WriteValue("San Simon")
        W.WriteEndAttribute()

        W.WriteStartAttribute("Localidad")
        W.WriteValue("G.A.M")
        W.WriteEndAttribute()

        W.WriteStartAttribute("Referencia")
        W.WriteValue("Tultitlan")
        W.WriteEndAttribute()

        W.WriteStartAttribute("estado")
        W.WriteValue("Distrito Federal")
        W.WriteEndAttribute()

        W.WriteStartAttribute("pais")
        W.WriteValue("Mexico")
        W.WriteEndAttribute()

        W.WriteStartAttribute("codigoPostal")
        W.WriteValue("52100")
        W.WriteEndAttribute()


        W.WriteEndElement() 'finaliza direccion receptor
        W.WriteEndElement()  'finaliza receptor


          '.................................................................
          'aqui van los otros nodos y subnodos
          '................................................................. 


        W.WriteEndElement()     'finaliza comprobante
        W.WriteEndDocument()    'finaliza documento     


        W.Flush()
        W.Close()
  #12 (permalink)  
Antiguo 15/06/2010, 17:28
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola,
Me ha gustado el tema que estan tratando en este foro asi como tambien me ha sido de mucha utilidad, seria posible si me indicaran si es posible que este haciendo algo mal ya que he seguido el procedimiento que thebman ha indicado solo que el sello me sale diferente a me sale lo siguiente

cadena original
||2.0|A|1|2009-08-16T16:30:00|1|2009|ingreso|Una sola exhibición|350.00|5.25|397.25|ISP900909Q88|Industr ias 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.00|200|1|pieza|Charola metálica|150.00|150|IVA|15.00|52.50||


Sello:
pxTLwE6/1yia59VVYhMdt78eJ9suZcIKRh/6kyEy4mpg/x9LmVMaO2lRkcAH7RtnUMiimmIYSfYaIn0cEcI7yIr+FDSyPIn dbomt68V6V9qUc5ApPE/njyVR6yOn0hkVqowznzlScHa90ATTQu0Eh/aTcX3hEMLCuik8bLq2S9o=

De princincipo tuve problemas con la codificacion del archivo que no estaba en utf8 pero eso ya lo he solucionado, ahora no entiendo que xq me sale un sello distinto al tuyo, seria posible me orientaran las instruccion que utilize son las siguientes:

openssl dgst -MD5 cadena.txt > md5.txt

openssl.exe pkcs8 -inform DER -in aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out aaa010101aaa_CSD_01.key.pem

openssl dgst -sign aaa010101aaa_CSD_01.key.pem md5.txt | openssl enc -base64 -A > sello.txt

Ya lo he tratado de validar con la pagina del sat y me dice que no es valido ayuda xfa...
  #13 (permalink)  
Antiguo 16/06/2010, 11:32
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por Oscargf Ver Mensaje
Estoy en eso para poder hacer pruebas con los sellos generados.

Parece que esta bien tu código, solo falta completarlo con los nodos y subnodos requeridos.


¿como le vas a pasar los datos? yo pensaba crear tres clases para ello: emisor, receptor y factura, asi el dato nombre del receptor estará en receptor.nombre
....
------>>> Que tal Oscar si los datos los puedes pasar de esa manera o bien acceder a una base de datos donde tengas guardados los datos de todos los clientes de una buena vez, como recomendacion te digo que guardes los datos en el orden de la cadena original checa aqui el dato
http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6543.html
de esta manera nos ahorraremos tiemop al momento de formarla para imprimirla en el PDF. Una vez que tengas generado el xml solo ara falta recorrer los nodos y dividirlos por PIPES || para tener nuestra cadena oroginal, sacar el md5 y sellarla saludos.
  #14 (permalink)  
Antiguo 16/06/2010, 11:36
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Factura electroncia sat mexico

Que tal bchely sabes me gustaria subir un archvo xml con su respectiva cadena original y todos enfocarnos ha hacer pruebas sobre un mismo archivo porque el que no salga el mismo sello o la misma digestion se puede deber a muchas causas el proximo post subire un XML ya bien formado con su cadena original su digestion y su sello.

Última edición por thebman; 16/06/2010 a las 12:11
  #15 (permalink)  
Antiguo 16/06/2010, 12:05
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Exclamación Respuesta: Factura electroncia sat mexico

Que tal espero que vallan avanzando en sus desarrollos, aqui tengo algo en lo que nos debemos de centrar un poco a continuacion les dejo un xml ya validado.

Código HTML:
<?xml version="1.0" encoding="UTF-8" ?> 
- <Comprobante xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0" serie="A" folio="12" fecha="2010-06-16T12:03:07" noAprobacion="1" anoAprobacion="2009" tipoDeComprobante="ingreso" formaDePago="Una sola exhibición" subTotal="17000" descuento="0" total="19720" noCertificado="10001200000000022517" sello="1JmxBhaYGaLBKGAjSRQntuWY2DGfl3MQ/zDfp+mlbohsmgj7na++dagTNWCYzxkZsvoKKWl63aOwT9Jle3ItMYO9NygnGE3lHYvvgmriTCpyB/igutbfro+sotIMsJjpwHVeHgcxT1rI8lGU73TW42asv+TFemc0HZG67xdyuek=">
- <Emisor rfc="ISP900909Q88" nombre="Industrias del Sur Poniente, S.A. de C.V.">
  <DomicilioFiscal calle="Alvaro Obregón" noExterior="37" noInterior="3" colonia="Col. Roma Norte" localidad="México" municipio="Cuauhtémoc" estado="Distrito Federal" pais="México" codigoPostal="06700" /> 
  <ExpedidoEn calle="Pino Suarez" noExterior="23" colonia="Centro" localidad="Nuevo Léon" municipio="Monterrey" estado="Nuevo Léon" pais="México" codigoPostal="95460" /> 
  </Emisor>
- <Receptor rfc="CAUR390312S87" nombre="Rosa María Calderón Uriegas">
  <Domicilio calle="Topochico" noExterior="52" colonia="Jardines del Valle" localidad="Monterrey" municipio="Monterrey" estado="Nuevo León" pais="México" codigoPostal="95465" /> 
  </Receptor>
- <Conceptos>
  <Concepto cantidad="2" unidad="pieza" descripcion="PC- GENERICA" valorUnitario="5000" importe="10000" /> 
  <Concepto cantidad="1" unidad="KGS" descripcion="PC- AVANZADA" valorUnitario="7000" importe="7000" /> 
  </Conceptos>
- <Impuestos totalImpuestosTrasladados="2720">
- <Traslados>
  <Traslado impuesto="IVA" tasa="16.00" importe="2720" /> 
  </Traslados>
  </Impuestos>
  </Comprobante> 
La cadena origianan es:


Código:
||2.0|A|12|2010-06-16T12:03:07|1|2009|ingreso|Una sola exhibición|17000|0|19720|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|Nuevo Léon|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|2|pieza|PC- GENERICA|5000|10000|1|KGS|PC- AVANZADA|7000|7000|IVA|16.00|2720|2720||
La digestion MD5 es:

Código:
66e41da54d31b94c5cc08da087b127b3
Y el sello usando el certificado de prueba aaa010101aaa_CFD_01.cer es:

Código:
1JmxBhaYGaLBKGAjSRQntuWY2DGfl3MQ/zDfp+mlbohsmgj7na++dagTNWCYzxkZsvoKKWl63aOwT9Jle3ItMYO9NygnGE3lHYvvgmriTCpyB/igutbfro+sotIMsJjpwHVeHgcxT1rI8lGU73TW42asv+TFemc0HZG67xdyuek=
Con la manera en que lo hacemos me da el siguiete sello :

Código:
4fvAYMqXOBYcHd/KOOfGP53PkBsZaWHRRKRGvRGROVlNrnUs+H+WI9UygTUTCLX3zhcs1OH0Ua1gM9jz9LAys+5SZutyxY8XWknMPQ02gaWOrU/88HUZv+IZUJdFfEzjbTqfkbgrERuKKyHTXo0/ZRbth0tnZd1XmurjeqyWcWg=
por lo cual debemos de tener algo mal o nos a de faltar alguna encriptacion espero encontrarlo pronto saludos...
  #16 (permalink)  
Antiguo 16/06/2010, 18:56
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

Tebman: tienes que encriptar con la llave privada (.key) , no con el certificado

al hacerlo manualmente, con el openssl me sale bien, obtengo esto:

1JmxBhaYGaLBKGAjSRQntuWY2DGfl3MQ/zDfp+mlbohsmgj7na++dagTNWCYzxkZ
svoKKWl63aOwT9Jle3ItMYO9NygnGE3lHYvvgmriTCpyB/igutbfro+sotIMsJjp
wHVeHgcxT1rI8lGU73TW42asv+TFemc0HZG67xdyuek=

el problema es que no consigo que me funcione desde vb.net.

llamo al openssl con shell:

Código:
Shell("C:\OpenSSL-Win32\bin\openssl.exe dgst -md5 -sign  c:\1\o2.key.pem -out c:\1\sello1.txt c:\1\CadenaOriginal2.txt")
Shell("C:\OpenSSL-Win32\bin\openssl.exe enc -base64 -in c:\1\sello1.txt  -out c:\1\sello.txt")
la primera linea la ejecuta bien pero la segunda no.
¿como lo haces tu?


tambien probé con process, con el mismo resultado:


Código:
 Dim Proceso2 As New Process()
        Proceso2.StartInfo.FileName = "C:\OpenSSL-Win32\bin\openssl.exe"
        Proceso2.StartInfo.Arguments = "dgst -md5 -sign  c:\1\o2.pem -out c:\1\sello1.txt c:\1\CadenaOriginal.txt "
        Proceso2.Start()
  #17 (permalink)  
Antiguo 17/06/2010, 12:04
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Factura electroncia sat mexico

Que tal Oscar oye lo que me pasaba era que estaba sellando el resultado de la digestion md5 y no la cadena orignal osea estaba sacando el md5 del md5 y luego encriptando gracias, bueno pasando a otro tema ami si me funciono con el comando shell espero y no sea problema con el sistema operativo porque no es normal tampoco que no te reconosca los Pipes como quiera yo tmb lo hare como tu en dos partes hasta ahorita ya genero bien el sello, ahora ahi que crear la cadena original del xml.

Última edición por thebman; 17/06/2010 a las 12:42
  #18 (permalink)  
Antiguo 17/06/2010, 12:24
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola que tal thebman,

Pues yo sigo en las mismas lo que ahora me causa duda es lo siguiente se supone que se crea el md5 y despues se sella con el archivo .key seguido de encriptar con base64, o estoy equivocada??

Por cierto revise el ejemplo donde pusiste el .xml y el md5 y el sello solo que para el .xml el validador de sat dice que no es valido el comprobante y el md5 me sale igual que el tuyo solo que el sello es diferente a que tu muestras.


Saludos y gracias por la ayuda
  #19 (permalink)  
Antiguo 17/06/2010, 13:10
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Factura electroncia sat mexico

Que tal chely si los pasos que dices son los correctos y el sello que debes de obtener de la cadena original es este:

1JmxBhaYGaLBKGAjSRQntuWY2DGfl3MQ/zDfp+mlbohsmgj7na++dagTNWCYzxkZ
svoKKWl63aOwT9Jle3ItMYO9NygnGE3lHYvvgmriTCpyB/igutbfro+sotIMsJjp
wHVeHgcxT1rI8lGU73TW42asv+TFemc0HZG67xdyuek=

aqui te dejo la cadena original para que hagas pruebas.

||2.0|A|12|2010-06-16T12:03:07|1|2009|ingreso|Una sola exhibición|17000|0|19720|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|Nuevo Léon|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|2|pieza|PC- GENERICA|5000|10000|1|KGS|PC- AVANZADA|7000|7000|IVA|16.00|2720|2720||

Saludos
  #20 (permalink)  
Antiguo 17/06/2010, 15:27
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Factura electroncia sat mexico

Alguien sabe como obtener el numero de certificado del archivo .cer

Este es el numero: 10001200000000022517

El certificado es :
aaa010101aaa_CDS_01.cer

Con este comando se convierte a .pem

openssl x509 -inform DER -outform PEM -in AAA010101AAAsd.cer -pubkey >AAA010101AAA.cer.pem

y con estos comandos se obtienen datos del mismo pero no encuentro el comando para obtener el numero:

openssl x509 -in AAA010101AAA.cer.pem -issuer -noout

openssl x509 -in AAA010101AAA.cer.pem -serial -noout
  #21 (permalink)  
Antiguo 18/06/2010, 15:49
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola thebman,

Pues aqui contando que ya he podido obtener el sello que les sale a ustedes y asi como tambien he logrado validar el archivo .xml en el sat.

Agradezco la ayuda y t comento que me hacia falta poner la cadena original por eso mi sello no era correcto luego entonces lo logre con la siguiente sentencia.

openssl dgst -md5 -sign archivo.key.pem -out muestra.md5 cadena_original.txt | openssl enc -base64 -in muestra.md5 -out sello.txt

Salu2 muchas gracias.
  #22 (permalink)  
Antiguo 18/06/2010, 15:51
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Que tal compañeros del foro, una felicitacion por los maravillosos aportes de esta gran comunidad.

thebman. Estoy un poco confundido..

En un principio se comento sobre usar los siguentes comandos de OpenSSL

Paso 1. Para la digestion MD5 (de la cadena original en utf-8)
C:\OpenSSL-Win32\bin\openssl.exe dgst -MD5 C:\cadena.txt > C:\md5.txt

Paso 2. Generar el archivo pem de nuestra llave .key
openssl.exe pkcs8 -inform DER -in aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out aaa010101aaa_CSD_01.key.pem

Paso3: Crear el sellado de nuestra cadena original y sacar el resultado en base64
openssl dgst -sign aaa010101aaa_CSD_01.key.pem md5.txt | openssl enc -base64 -A > sello.txt

Mi duda es la siguiente.

Comentaste que deberias crear el sellado de la cadena original no de la digestion MD5, esto como seria??

Ya tengo la digestion MD5 correcta para la cadena original siguiente:

||2.0|A|12|2010-06-16T12:03:07|1|2009|ingreso|Una sola exhibición|17000|0|19720|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|Nuevo Léon|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|2|pieza|PC- GENERICA|5000|10000|1|KGS|PC- AVANZADA|7000|7000|IVA|16.00|2720|2720||

Resultado MD5: 66e41da54d31b94c5cc08da087b127b3

¿Que comando de openssl ejecuto ahora?

Gracias por su ayuda
  #23 (permalink)  
Antiguo 18/06/2010, 17:53
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Factura electroncia sat mexico

Que tal trovals olvidate de la digestion md5 el openssl lo hace automatico con esta linea

OpenSSL-Win32\bin\openssl.exe dgst -md5 -sign archivo.key.pem -out c:\sello1.txt c:\CadenaOriginal.txt

Donde cadenaOriginal es tu archivo con la cadena original claro
despuse solo conviertes a base 64 y listo saludos.

OpenSSL-Win32\bin\openssl.exe enc -base64 -in c:\sello1.txt -out c:\sello_b64.txt
  #24 (permalink)  
Antiguo 21/06/2010, 11:13
 
Fecha de Ingreso: junio-2010
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Gracias thebman, mas claro que el agua.

Solo me falta generar el xml.. y a validar.
  #25 (permalink)  
Antiguo 24/06/2010, 10:50
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por thebman Ver Mensaje
Que tal espero que vallan avanzando en sus desarrollos, aqui tengo algo en lo que nos debemos de centrar un poco a continuacion les dejo un xml ya validado.

Código HTML:
<?xml version="1.0" encoding="UTF-8" ?> 
- <Comprobante xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0" serie="A" folio="12" fecha="2010-06-16T12:03:07" noAprobacion="1" anoAprobacion="2009" tipoDeComprobante="ingreso" formaDePago="Una sola exhibición" subTotal="17000" descuento="0" total="19720" noCertificado="10001200000000022517" sello="1JmxBhaYGaLBKGAjSRQntuWY2DGfl3MQ/zDfp+mlbohsmgj7na++dagTNWCYzxkZsvoKKWl63aOwT9Jle3ItMYO9NygnGE3lHYvvgmriTCpyB/igutbfro+sotIMsJjpwHVeHgcxT1rI8lGU73TW42asv+TFemc0HZG67xdyuek=">
- <Emisor rfc="ISP900909Q88" nombre="Industrias del Sur Poniente, S.A. de C.V.">
  <DomicilioFiscal calle="Alvaro Obregón" noExterior="37" noInterior="3" colonia="Col. Roma Norte" localidad="México" municipio="Cuauhtémoc" estado="Distrito Federal" pais="México" codigoPostal="06700" /> 
  <ExpedidoEn calle="Pino Suarez" noExterior="23" colonia="Centro" localidad="Nuevo Léon" municipio="Monterrey" estado="Nuevo Léon" pais="México" codigoPostal="95460" /> 
  </Emisor>
- <Receptor rfc="CAUR390312S87" nombre="Rosa María Calderón Uriegas">
  <Domicilio calle="Topochico" noExterior="52" colonia="Jardines del Valle" localidad="Monterrey" municipio="Monterrey" estado="Nuevo León" pais="México" codigoPostal="95465" /> 
  </Receptor>
- <Conceptos>
  <Concepto cantidad="2" unidad="pieza" descripcion="PC- GENERICA" valorUnitario="5000" importe="10000" /> 
  <Concepto cantidad="1" unidad="KGS" descripcion="PC- AVANZADA" valorUnitario="7000" importe="7000" /> 
  </Conceptos>
- <Impuestos totalImpuestosTrasladados="2720">
- <Traslados>
  <Traslado impuesto="IVA" tasa="16.00" importe="2720" /> 
  </Traslados>
  </Impuestos>
  </Comprobante> 
La cadena origianan es:


Código:
||2.0|A|12|2010-06-16T12:03:07|1|2009|ingreso|Una sola exhibición|17000|0|19720|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|Nuevo Léon|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|2|pieza|PC- GENERICA|5000|10000|1|KGS|PC- AVANZADA|7000|7000|IVA|16.00|2720|2720||
La digestion MD5 es:

Código:
66e41da54d31b94c5cc08da087b127b3
Y el sello usando el certificado de prueba aaa010101aaa_CFD_01.cer es:

Código:
1JmxBhaYGaLBKGAjSRQntuWY2DGfl3MQ/zDfp+mlbohsmgj7na++dagTNWCYzxkZsvoKKWl63aOwT9Jle3ItMYO9NygnGE3lHYvvgmriTCpyB/igutbfro+sotIMsJjpwHVeHgcxT1rI8lGU73TW42asv+TFemc0HZG67xdyuek=
Con la manera en que lo hacemos me da el siguiete sello :

Código:
4fvAYMqXOBYcHd/KOOfGP53PkBsZaWHRRKRGvRGROVlNrnUs+H+WI9UygTUTCLX3zhcs1OH0Ua1gM9jz9LAys+5SZutyxY8XWknMPQ02gaWOrU/88HUZv+IZUJdFfEzjbTqfkbgrERuKKyHTXo0/ZRbth0tnZd1XmurjeqyWcWg=
por lo cual debemos de tener algo mal o nos a de faltar alguna encriptacion espero encontrarlo pronto saludos...
Como resolviste esto? a mi me sigue generando el sello

4fvAYMqXOBYcHd/KOOfGP53PkBsZaWHRRKRGvRGROVlNrnUs+H+WI9UygTUTCLX3
zhcs1OH0Ua1gM9jz9LAys+5SZutyxY8XWknMPQ02gaWOrU/88HUZv+IZUJdFfEzj
bTqfkbgrERuKKyHTXo0/ZRbth0tnZd1XmurjeqyWcWg=
  #26 (permalink)  
Antiguo 25/06/2010, 11:18
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Encontraste como hacerle para obtener el numero de certificado?
  #27 (permalink)  
Antiguo 25/06/2010, 11:18
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por thebman Ver Mensaje
alguien sabe como obtener el numero de certificado del archivo .cer

este es el numero: 10001200000000022517

el certificado es :
Aaa010101aaa_cds_01.cer

con este comando se convierte a .pem

openssl x509 -inform der -outform pem -in aaa010101aaasd.cer -pubkey >aaa010101aaa.cer.pem

y con estos comandos se obtienen datos del mismo pero no encuentro el comando para obtener el numero:

Openssl x509 -in aaa010101aaa.cer.pem -issuer -noout

openssl x509 -in aaa010101aaa.cer.pem -serial -noout
encontraste como obtener el numero de certificado??
  #28 (permalink)  
Antiguo 25/06/2010, 16:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 6
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola que tal.
Los felicito a todos por su gran esfuerzo para mantener este tema.
Actualmente quiero implementar la generacion de facturas electronicas con mi papa. Estoy usando C#.

Siguiendo los pasos mencionados, con la cadena original

||2.0|A|12|2010-06-16T12:03:07|1|2009|ingreso|Una sola exhibición|17000|0|19720|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|Nuevo Léon|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|2|pieza|PC- GENERICA|5000|10000|1|KGS|PC- AVANZADA|7000|7000|IVA|16.00|2720|2720||
Obtengo la siguiente digestion, usando la instruccion

C:\OpenSSL-Win32\bin\openssl.exe dgst -MD5 C:\SAT\cadena.txt > C:\SAT\md5.txt

66e41da54d31b94c5cc08da087b127b3

2.- Genere el archivo aaa010101aaa_CSD_01.key.pem usando el comando
C:\OpenSSL-Win32\bin\openssl.exe pkcs8 -inform DER -in aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out aaa010101aaa_CSD_01.key.pem

3.-Generé el sello a partir de este aaa010101aaa_CSD_01.key.pem recien creado, con esta instruccion.
C:\OpenSSL-Win32\bin\openssl.exe dgst -sign aaa010101aaa_CSD_01.key.pem md5.txt | C:\OpenSSL-Win32\bin\openssl.exe enc -base64 -A > sello.txt

pero el sello generado es
c6fuSHh67Y+anPQI65vNkFUvlKrj0DxgUD21MGsr+HAsNxRhK9 l2y41xyTH/4YUk61tgCxgrwknqzi8gd2M9ZKdjJiABEAOOPbp6N7M3+ZOUHI n5S1YL5qKP38QtaMQN5K6asOcMxuLJAyrto/yl/nHfrd0jWrssT+2fUcr+x6Y=

Es decir, nada de lo que les ha salido a ustedes.
Me pueden auxiliar a determinar en que la estoy regando :D? Mil gracias, y que gané Mexico a Argentina :D
  #29 (permalink)  
Antiguo 28/06/2010, 09:44
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola elcorreodeyamil lo que pasa es que en la ultima sentencia t hace falta poner la cadena original tambien

C:\OpenSSL-Win32\bin\openssl.exe dgst -sign aaa010101aaa_CSD_01.key.pem md5.txt cadena_original.txt | C:\OpenSSL-Win32\bin\openssl.exe enc -base64 -A > sello.txt


si puedes ver he añadido a tu instruccion un archivo que se llama cadena_orginal y es en el que se encuentra la cadena original, t comento esto ya que a mi me estaba sucediendo lo mismo y si puedes leer un poco mas arriba tengo unos comentarios al respecto.

En fin espero y t sirva el comentario.
Salu2.
  #30 (permalink)  
Antiguo 01/07/2010, 12:16
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

Hola a todos, yo tambien estoy trabajando en un proyecto de generacion de facturas electronicas, en Sinaloa.

Ya pude generar la digestion MD5 gracias al codigo que publico Oscargf, lo converti a c# y me funciona perfectamente.

Por aqui los seguire molestando y publicando lo que vaya realiazndo esperando les sirva de algo

Hice una clase:

public class EncriptaMD5
{
public static string Codificar(string input)
{
byte[] CadenaUTF8;
byte[] tmpHash;
//convierte en UTF8
CadenaUTF8 = Encoding.UTF8.GetBytes(input);
//crea el hash
tmpHash = new MD5CryptoServiceProvider().ComputeHash(CadenaUTF8) ;
// lo pasa a una variable string mediante la funcion ByteArrayToString
int i;
StringBuilder sOutput = new StringBuilder(tmpHash.Length);
for (i = 0; i < tmpHash.Length; i++)
{
sOutput.Append(tmpHash[i].ToString("x2"));
}
return sOutput.ToString();
}
}

la cual se hace referencia asi:

string x;
string Digestion;

x = "||2.0|A|1|2009-08-16T16:30:00|1|2009|ingreso|Una sola exhibición|350.00|5.25|397.25|ISP900909Q88|Industr ias 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.00|200|1|pieza|Charola metálica|150.00|150|IVA|15.00|52.50||";

Digestion = EncriptaMD5.Codificar(x);

Etiquetas: factura, mexico, sat
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.
Tema Cerrado

SíEste tema le ha gustado a 39 personas




La zona horaria es GMT -6. Ahora son las 11:18.