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. Hola Bchely. Muchas gracias por tu ayuda. Efectivamente, me hacía falta poner el parametro que mencionas. Ya terminé de hacer mi xml para iniciar a ...

  #31 (permalink)  
Antiguo 01/07/2010, 17:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 6
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola Bchely. Muchas gracias por tu ayuda. Efectivamente, me hacía falta poner el parametro que mencionas.

Ya terminé de hacer mi xml para iniciar a validarlo. Sin embargo me sale una duda respecto a este valor?

noCertificado="10001200000000022517"


¿Este de donde lo sacan?
  #32 (permalink)  
Antiguo 01/07/2010, 19:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 6
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola nuevamente. Pues bien, despues de generar el xml, juntandole el sello correspondiente, obtuve esto.
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" sello="1JmxBhaYGaLBKGAjSRQntuWY2DGfl3MQ/zDfp+mlbohsmgj7na++dagTNWCYzxkZ svoKKWl63aOwT9Jle3ItMYO9NygnGE3lHYvvgmriTCpyB/igutbfro+sotIMsJjp wHVeHgcxT1rI8lGU73TW42asv+TFemc0HZG67xdyuek=">
- <Emisor rfc="ISP900909Q88" nombre="Industrias del Sur Poniente, S.A. de C.V.">
  <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="23" pais="México" /> 
  </Receptor>
- <Conceptos>
  <Concepto cantidad="2" unidad="pieza" descripcion="PC- GENERICA" valorUnitario="5000" importe="1000" /> 
  <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>
  </Comprobante>
Sin embargo, al validarlo en el SAT, me dice que no es valido mi sello. Lo han podido resolver ustedes?

Saludos
Yamil
  #33 (permalink)  
Antiguo 05/07/2010, 16:07
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por Oscargf Ver Mensaje
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()

necesitas poner una "pausa" entre procesos ya que cuando ejecutas el 2° shell el 1° aún no acaba, usa un System.Threading.Thread.Sleep(200) entre las lineas shell
  #34 (permalink)  
Antiguo 09/07/2010, 17:18
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 14 años
Puntos: 1
Respuesta: Factura electroncia sat mexico

Con el siguiente codigo en C# pueden realizar los pasos para la Fcturacion Electronica, no se abrira la pantalla del DOS, tampoco se tendra el problema del error de que no se encuentra el archivo o archivo no se puede accesar, ya que no continua el proceso si el proceso anterior no ha terminado.

Intente hacerlo todo con las librerias del c#, pero no he encontrado forma de realizar el paso del sellado

Process oProcess = new Process();
oProcess.StartInfo.FileName = @"D:\openssl\bin\openssl.exe";
oProcess.StartInfo.Arguments = @"enc -base64 -in c:\sello.txt -out c:\sello64.txt";
oProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
oProcess.StartInfo.ErrorDialog = false;
oProcess.Start();
oProcess.Wait*****it();
oProcess.Close();();
  #35 (permalink)  
Antiguo 09/07/2010, 20:19
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

[QUOTE=thebman;3448237]Alguien sabe como obtener el numero de certificado del archivo .cer


Que tal thebman, gracias por tus aportes, tengo el siguiente codigo con el cual puedes sacar el no. del certificado y algunos datos mas.

Dim objCert As New X509Certificate2("D:\facturacionelectronica\aaa010 101aaa_CSD_01.cer")
Dim objExt As X509Extension
Dim objSB As StringBuilder = New StringBuilder("Detalle del certificado:")
Console.WriteLine("Persona = " + objCert.Subject)
Console.WriteLine("Emisor = " + objCert.Issuer)
Console.WriteLine("Válido desde = " + objCert.NotBefore.ToString())
Console.WriteLine("Válido hasta = " + objCert.NotAfter.ToString())
Console.WriteLine("Tamaño de la clave = " + objCert.PublicKey.Key.KeySize.ToString())
Console.WriteLine("Número de serie = " + objCert.SerialNumber)
Console.WriteLine("Hash = " + objCert.Thumbprint)
Console.WriteLine("Extensiones:")
For Each objExt In objCert.Extensions
Console.WriteLine(objExt.Oid.FriendlyName & " (" & objExt.Oid.Value & ")")
If (objExt.Oid.FriendlyName = "Key Usage") Then
Dim ext As X509KeyUsageExtension = objExt
Console.WriteLine(" " + ext.KeyUsages)
End If
If (objExt.Oid.FriendlyName = "Basic Constraints") Then
Dim ext2 As X509BasicConstraintsExtension = objExt
Console.WriteLine(" " + ext2.CertificateAuthority)
Console.WriteLine(" " + ext2.HasPathLengthConstraint)
Console.WriteLine(" " + ext2.PathLengthConstraint)

End If
If (objExt.Oid.FriendlyName = "Subject Key Identifier") Then
Dim ext3 As X509SubjectKeyIdentifierExtension = objExt
Console.WriteLine(" " + ext3.SubjectKeyIdentifier)

End If
If (objExt.Oid.FriendlyName = "Enhanced Key Usage") Then '//2.5.29.37
Dim ext4 As X509EnhancedKeyUsageExtension = objExt
Dim objOids As OidCollection = ext4.EnhancedKeyUsages
For Each Oid In objOids
Console.WriteLine(" " & Oid.FriendlyName & " (" + Oid.Value & ")")
Next

End If
Next
Console.WriteLine(objSB.ToString())
Console.ReadKey()

El numero del certificado es "Número de serie" pero esta en codigo hexadecimal, lo que necesito investigar es como pasarlo a decimal, ya que es un string.
  #36 (permalink)  
Antiguo 10/07/2010, 11:11
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

hola a todos:
resulta que estoy usando el openssl exactamente igual que todos ustedes y el sello no me da igual al que ponen aqui ni el de hacienda, la instruccion que uso es la siguiente:

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

1.- el archivo de la cadena origina ya esta en formato utf8
2.- la digestion del MD5 si me da igual al de hacienda = 8aa2b617944427353697e694a2e35a07
3.- al aplicar la instruccion de: openssl dgst -sign aaa010101aaa_CSD_01.key.pem md5.txt | openssl enc -base64 -A > sello.txt

el sello que me da es este:
C1I4poqUEvcFMeWQ942axLKB0188/YtsaJpPnYq/Hwpuue7BlDWHsTn+nzfI2g+UAXm8Ehv2wr81vqXvbKNJnm75lM viDlExoq0x934dofsGNQVgbvYjBzn331t+jcof9GuVZvLdKIg3 L0qParhXiziu9zEGZUK93Vr8nAvPy7I=

y el de hacienda es : iIMz487EGyt6zCFjvcFNvHeOKgKMMc5y1py+QJrIvCmWbbxV43 k2xi6Q23p/Wee31vqUzYH0fbO0yBOvkDtiMejjdCOHPzmLvMkzfAzr919j6t bJOiODlgb7bisEdUkrjRrw+FfwQsPldsfHW6gq3K/fFGT6tTB7gqHP6a44ix0=

la cadena original que uso es: ||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||

por favor ayuda... no se que pasa con el openssl, como pruebas lo estoy corriendo por el DOS y an cuanto tenga los resultados los pasare por codigo pero quiero estar al 100% antes de aplicarlo

mil gracias por su ayuda... me es urgente
  #37 (permalink)  
Antiguo 11/07/2010, 14:39
 
Fecha de Ingreso: julio-2010
Mensajes: 10
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Saludos a todos...

Acudo a ustedes por un poco de ayda, estoy intentando hacer el proyecto de facturacion electronica en C# pero de entrada ya tengo problemas:

Utilizando sxd.exe saque una clase para realizar el xml (http://sviudes.blogspot.com/2010/05/facturae-con-net-y-c.html), pero no se como agregar el xsi:schamaLocation que no agrega dicha funcion asi como tampoco me agrega la leyanda encoding="utf-8"? dentro del xml

Cualquier ayuda se agradece...
  #38 (permalink)  
Antiguo 13/07/2010, 13:38
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Buenas tardes a todos, soy nuevo en este foro y quiero agradecer sus valiosas aportaciones. Estoy generando factura electrónica pero tengo varios dias atorado. Me pasa que tengo hasta el paso de la digestión todo funciona correctamente pero al momento de generar el sello me genera uno distinto al del ejemplo del SAT. Me harian un gran favor si me puedieran ayudar. Les dejo la linea que estoy ejecutando para generar el sello. De antemano muchas gracias.

C:\OpenSSL\bin\openssl.exe dgst -sign C:\OpenSSL\bin\aaa010101aaa_CSD_01.key.pem C:\OpenSSL\bin\md5.txt C:\OpenSSL\bin\cadena.txt
C:\OpenSSL\bin\openssl.exe enc -base64 -A > C:\OpenSSL\bin\sello2.txt
  #39 (permalink)  
Antiguo 14/07/2010, 20:13
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 1
Respuesta: Factura electroncia sat mexico

Gracias spycyn69
probé lo de la pausa y funciona.

Estoy investigando por otro camino: crear el sello en vb sin openssl
El problema que tengo es que hay que convertir la llave a xml
¿alguien sabe como?
  #40 (permalink)  
Antiguo 15/07/2010, 18:32
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola a todos, soy johvany ochoa tambien ando metido en esto, pero con visual fox que creo que el lenguaje no importa ya que la escensia es la misma, aqui andaremos en lo que se pueda ayudar.

para:

elcorreodeyamil no se si ya lo solucionaste, pero veo que el sello que generas es este.

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

justamente donde esta cada punto rojo tienes un espacio, eso puede ser lo erroneo lo demas no lo revise.


Saludos y seguimos.

Última edición por johvany; 15/07/2010 a las 18:38
  #41 (permalink)  
Antiguo 15/07/2010, 20:37
SVF
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Buenas Noches a todos, en primera instancia les agradezco las aportaciones a cada uno de ustedes.

He seguido al pie de la letra los comandos que proporcionan y no doy con el sello digital, intente en CentOS y en Win XP y en ambos sistemas me genera diferente sello.

El certificado,la cadena y el MD5 es el mismo que se menciona aqui, la version de openssl es la 0.9.8.
  #42 (permalink)  
Antiguo 16/07/2010, 13:00
 
Fecha de Ingreso: julio-2010
Mensajes: 5
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Ola que tal amigos....sabes que he avanzado mucho gracias a ustedes...pero tengo un problema (bueno lo estoy desarrollando en php)...

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

luego ya en formato UTF-8:
||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||

LUEGO EL MD5

66e41da54d31b94c5cc08da087b127b3

Y EL SELLO ES EL SIGUIENTE :

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

Hasta aki creo que todo bien por que lo tengo todo bien...pero al validar con el SAT

https://www.consulta.sat.gob.mx/SICOFI_WEB/ModuloECFD_Plus/ValidadorComprobantes/Validador.html

SUBO EL XML Y ME PIDE EL CERTIFICADO Y PONGO EL aaa010101aaa_CSD_01.cer que es el que uso para generar el .pem que necesito.....

y me pone que el sello no es valido ....alguien a podido sacar un sello valido en el validador del SAT?
  #43 (permalink)  
Antiguo 16/07/2010, 14:51
 
Fecha de Ingreso: febrero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por thebman Ver Mensaje
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
antes que nada.
que bueno que esten retomando este tema de facturacion electronica hay un tema muerto aqui en foros del web de hace 1 año pero no llego a nada espero poder colaborar tambien con ustedes

ahora si lo bueno
thebman
corriendo los comandos que indicas por medio de msdos tendrias el sello ya validado?

tenia un codigo en vb.net que me sacaba el md5 entonces ya no me serviria,
con los comandos anteriores podria sacar el sello pegarlo a mano en el xml de muestra y validar en el sat?

he intendado y el sello nunca ha coincidido me ocurria el mismo error que a ti , la validarlo, ahora si ya pudiste generar un sello valido?
si es asi entonces tendria que ver la manera de correr esos comando directamente del vb.net

y por ultimo mi aporte
a algunas personas no les esta dando el md5 de manera correcta
la cadena original puede un caracter de mas al final quiten ese caracter el ultimo caracter debe ser "|"
tambien revisen el final, revisen que no contenga caracteres raros o inperceptibles como un chr(13) o un salto de linea
y tambien revisen el formato en que tienen su cadena orginal ya que debe ser utf8

Última edición por Beak; 16/07/2010 a las 15:02
  #44 (permalink)  
Antiguo 17/07/2010, 10:40
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Factura electroncia sat mexico

Que tal... tengo el siguiente problema..

Si genero el sellado de la siguiente manera:
openssl.exe dgst -sign aaa010101aaa_CSD_01.key.pem MD5.txt FileOriginal.txt |
openssl.exe enc -base64 -A > sello.txt

me da el siguiente sello:
mVPg1Wl+AqGtLWBOJDpErEWpd6FJqd9ugIxbM6SRp5CJXlX7jT NVaESTn9FSo1sDOiWGmUyGcRC59WpxfKMOWGZTvUdb4+A7bJMo LTUN1Yt6alzZ1y0s4FXgg8uW4jEP8HwZ+Ko3GHKEXdesQycElQ MKl98DvJhoHLkjDp5hR3/UmbEGFpgZosEoYCNJFCe25ZjYMZ+XcxD/MN+n6aVuiGyaCPudr751qBM1YJjPGRmy+gopaXrdo7BP0mV7ci 0xg703KCcYTeUdi++CauJMKnIH+KC61t+uj6yi0gywmOnAdV4e BzFPWsjyUZTvdNbjZqy/5MV6ZzQdkbrvF3K56Q==

Y el archivo md5.txt trae el valor correcto...
66e41da54d31b94c5cc08da087b127b3

Si lo hago sin considerar el md5 funciona.... raro no ?

openssl.exe dgst -sign aaa010101aaa_CSD_01.key.pem FileOriginal.txt | openssl.exe enc -base64 -A > D:\SAT\Files\Out\sello.txt

La pregunta es... cual es el la funcionalidad u objetivo de generar el md5, si en mi caso no lo utilizo y obtengo el sellado correcto ?

Seguimos en contacto... gracias.
  #45 (permalink)  
Antiguo 18/07/2010, 21:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Factura electroncia sat mexico

Aqui les dejo el codigo en C# para obtener el certificado... pero como comento el compañero RJDIAZC, que el numero de certificado es el SerialNumber pero no llego al valor

noCertificado="10001200000000022517"

a ver si alguien tiene alguna idea de esto... seguimos trabajando...

X509Certificate2 objCert = new X509Certificate2("RUTA DEL CERTIFICADO .CER", "password");
StringBuilder objSB = new StringBuilder("Detalle del certificado: \n\n");

objSB.AppendLine("Persona = " + objCert.Subject);
objSB.AppendLine("Emisor = " + objCert.Issuer);
objSB.AppendLine("Válido desde = " + objCert.NotBefore.ToString());
objSB.AppendLine("Válido hasta = " + objCert.NotAfter.ToString());
objSB.AppendLine("Tamaño de la clave = " + objCert.PublicKey.Key.KeySize.ToString());
objSB.AppendLine("Número de serie = " + objCert.SerialNumber);
objSB.AppendLine("Hash = " + objCert.Thumbprint);

Debug.Print(objSB.ToString());
  #46 (permalink)  
Antiguo 19/07/2010, 10:04
 
Fecha de Ingreso: febrero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 3
De acuerdo Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por javalos532 Ver Mensaje
Aqui les dejo el codigo en C# para obtener el certificado... pero como comento el compañero RJDIAZC, que el numero de certificado es el SerialNumber pero no llego al valor

noCertificado="10001200000000022517"

a ver si alguien tiene alguna idea de esto... seguimos trabajando...

X509Certificate2 objCert = new X509Certificate2("RUTA DEL CERTIFICADO .CER", "password");
StringBuilder objSB = new StringBuilder("Detalle del certificado: \n\n");

objSB.AppendLine("Persona = " + objCert.Subject);
objSB.AppendLine("Emisor = " + objCert.Issuer);
objSB.AppendLine("Válido desde = " + objCert.NotBefore.ToString());
objSB.AppendLine("Válido hasta = " + objCert.NotAfter.ToString());
objSB.AppendLine("Tamaño de la clave = " + objCert.PublicKey.Key.KeySize.ToString());
objSB.AppendLine("Número de serie = " + objCert.SerialNumber);
objSB.AppendLine("Hash = " + objCert.Thumbprint);

Debug.Print(objSB.ToString());
que tal javalos532
he visto que en lo de factura electronica no existe la suficiente informacion, ademas cada persona lo esta manejando en su lenguaje preferido y con sus herramientas

por ejemplo thebman estaba indicandonos que la digestion md5 la puede hacer el openssl por medio de comandos.
he visto mas gente que maneja la digestion por medio de programacion, yo personalmente tengo un codigo en vb 2008 que lo realiza.
en fin existen distintas formas de realizar el mismo procedimiento.

veo que estas publicando ya el codigo para obtener el numero del certificado
en tu codigo el x509certificate esta libreria es util para manejar nuestros certificados,

aqui tienen mas informacion acerca de ella
http://msdn.microsoft.com/es-es/libr...(v=VS.80).aspx


estas manejando otra funcion con esa misma libreria?

y por ultimo javalos
sin programacion has podido obtener un sello valido ante el validador del sat
ya que yo he estado intentando realizar el sello ejecutando comandos del openssl y copiando el sello "manualmente" al xml y con todas las variaciones que he hecho no me ha resultado.

creo que seria importante comenzar a generar sellos validos "a mano" y ya estando seguros del proceso poderlo automatizar.
  #47 (permalink)  
Antiguo 19/07/2010, 13:06
 
Fecha de Ingreso: febrero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 3
De acuerdo Respuesta: Factura electroncia sat mexico

que tal otra vez yo
pero esto de la factura electronica es muy interesante

le he estado batallando ya que la informacion que se proporciona en las paginas esta muy regada

para los que apenas van comenzando les pongo un proceso que me funciono para generar un sello valido "a mano"
todos los procesos que pongo se realizan sin ninguna programacion y sirven solo para desmentir algunas cosas que he visto como que "el validador de sat no sirve" ademas espero les pueda servir como una especie de guia para automatizar el proceso que representa generar el sello de la factura electronica

aqui les va entonces.


tema de donde saco el archivo ejemplo.xml que utilizare para explicar el proceso
http://www.forosdelweb.com/f18/factu...mexico-638882/

Código:
<?xml version="1.0" encoding="UTF-8"?>
<Comprobante fecha="2005-09-02T16:30:00" folio="1" noAprobacion="1" noCertificado="00001000000000000114" sello="cLBps3/cBUFelW/uxxNmKGvxThUva3AjvppfCxioTBlgqttkrV0yjPvRmA2592l7WQfwN1iXCQT4eyRtblXQre37a+EV4+vGuJD5Oah6ED1U/sVP2ak53nH31RhnQQeQN8NV2TtpjKQaNn64doKwVg9SGDn8PpkpzlPBiqH5164=" 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>

voy al validador y le paso el validador a el ejemplo xml
https://www.consulta.sat.gob.mx/SICO...Validador.html

de esto obtengo la cadena original
la digestion md5
y el certificado usado y reportado

el certificado usado es 10001200000000022517
este numero corresponder al primer certificado de muestra del sat

en el ejemplo xml estoy reportando un certificado diferente que tenia ese ejemplo
el usado es el 00001000000000000114

esto tenemos que tomarlo en cuenta para pasarlo en el validador del ejemplo final

la cadena original es
||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||


la digestion es 8aa2b617944427353697e694a2e35a07


los pasos a realizar son los siguientes.

copio mi certificado a la carpeta bin del openssl para que me sea mas facil ejecutar los comandos
en mi caso puse el certificado aaa010101aaa_CSD_01.cer y le cambie el nombre por cer1.cer
tambien copio el archivo aaa010101aaa_CSD_01.key y le cambio el nombre por key1.key

en los certificados del sat nos agregan una contraseña de clave privada que es: a0123456789
esta clave la vamos a ocupar en el siguiente comando para generar la llave privada

en msdos voy a la carpeta bin del openssl
y ejecuto el siguiente comando
openssl pkcs8 -inform der -in key1.key -passin pass:a0123456789 -out key.pem

---no cierro mi ventana msdos para ejecutar mas comandos

esto genera una llave privada


copio la cadena al notepad ++ y la convierto a formato utf sin bom
guardo el archivo en la carpeta bin del openssl y lo nombro cadenaoriginal.txt

ejecuto en mi ventana msdos el siguiente comando
openssl dgst -md5 cadenaoriginal.txt

esto solo es para comprobar que el resultado en la ventana msdos sea 8aa2b617944427353697e694a2e35a07

si es correcto mi cadena esta en el formado utf8
si no fuera asi tendria que revisar que la cadena original no contenga saltos de linea, enters o cualquier caracter extraño.

si ya obtuve la digestion correcta corro el siguiente comando
openssl dgst -md5 -sign key.pem -out sellado.txt cadenaoriginal.txt

este comando lo que hace es que genera un sello binario tomando como base la cadena original y me lo guarda


bueno espero les sirva a los que van comenzando y puedan ir publicando sus avances tambien.
suerte.

en un archivo llamado sellado.txt

despues ejecuto el siguiente comando
openssl enc -base64 -in sellado.txt -out sellado64.txt

aqui lo que hacemos es que el sellado binario lo encriptamos en base 64


ahora modificaremos el archivo ejemplo.xml con el notepad
abrimos tambien el archivo sellado64.txt
en el ejemplo.xml buscamos la etiqueta que dice sello y la reemplazamos con el contenido de el archivo

sellado64.txt guardamos el resultado como ejemplofinal.xml
y lo pasamos en el validador

el resultado debe ser un sello correcto.

en el validador veran que el certificado usado y el repotado no son el mismo
para esto esto podemos modificar el xml y poner en la etiqueta certificado el numero de certificado que
nos indica el validador del sat. aunque esto no es importante aun ya que solo estoy explicando el proceso "a mano" que hay que realizar para obtener sellos validos, algunos compañeros ya publicaron codigo para obtener el numero de serie de un certificado.
  #48 (permalink)  
Antiguo 19/07/2010, 20:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Factura electroncia sat mexico

Buenas noches, ya logre que un XML que realice como ejemplo el validador del SAT lo valide como bueno, lo unico que realice manual es pegar el no. de certificado... no logro llegar a este numero... alguien que nos ayude con alguna pista ?

Aqui publique un codigo que muestra la informacion de certificado pero no muestra este valor...

Seguimos trabajando.
  #49 (permalink)  
Antiguo 20/07/2010, 13:43
 
Fecha de Ingreso: febrero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 3
Busqueda Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por javalos532 Ver Mensaje
Buenas noches, ya logre que un XML que realice como ejemplo el validador del SAT lo valide como bueno, lo unico que realice manual es pegar el no. de certificado... no logro llegar a este numero... alguien que nos ayude con alguna pista ?

Aqui publique un codigo que muestra la informacion de certificado pero no muestra este valor...

Seguimos trabajando.
el codigo que utilizas para llegar el numero de serie es correcto
si revisas debes obtener un numero de serie como este
3130303031323030303030303030303232353137

revisando el codigo veras que esta el numero de serie en ese numero


si quitas los 3 debe quedar asi

10001200000000022517
y es el numero de seria que buscas

seria cuestion de hacer pruebas con los 10 certificados de prueba del sat para ver si funciona


y seria muy interesante saber por que pone el "3" antes de cada digito del numero de serie.
  #50 (permalink)  
Antiguo 20/07/2010, 14:00
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 1
Respuesta: Factura electroncia sat mexico

javalos532:
con el open ssl:
$ openssl x509 -in AAA010101AAA.cer.pem -serial -noout

te da el No de certificado en Hexadecimal:
serial=3030303031303030303030303030303030313134

Hay funciones para pasar de HEX a string, con lo que al convertirlo te debe dar:
00001000000000000114 que es lo que se pone en el XML

Para convertir de hex a string en VB:


Código:
 Dim DatoHex As String = "3030303031303030303030303030303030313134"
        Dim Data1 As String = ""
        Dim Resultado As String = ""

        While DatoHex.Length > 0
           
            Data1 = System.Convert.ToChar(System.Convert.ToUInt32(DatoHex.Substring(0, 2), 16)).ToString()
            Resultado = Resultado & Data1
            DatoHex = DatoHex.Substring(2, DatoHex.Length - 2)
        End While
Pones los datos a convertir en "DatoHex" y te da el resultado en "Resultado"

Saludos
Oscar
  #51 (permalink)  
Antiguo 20/07/2010, 14:10
 
Fecha de Ingreso: febrero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 3
De acuerdo Respuesta: Factura electroncia sat mexico

muy cierto oscar ya revise lo que comentas


en un principio crei que era un hexa pero no me daba el resultado esperado
y todo por que tomaba el 31 y lo pasa a caracter

cuando lo correcto es que el 31 lo pases a decimal y el resultado lo pases a caracter

por ejemplo 31(hexa) =49 (decimal) = caracter 1
  #52 (permalink)  
Antiguo 20/07/2010, 15:37
 
Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Respuesta: Factura electroncia sat mexico

Ya paso mas de un mes que lo preguntaste, pero espero te sirva:

openssl x509 -in archivo.cer.pem -noout -serial|xxd -r -p

Con eso te regresa el valor de la serie del certificado.

Saludos
  #53 (permalink)  
Antiguo 20/07/2010, 20:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 34
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Factura electroncia sat mexico

Muchas gracias a todos.... finalmente logre terminar esto.

Si en algo los puedo ayudar con mucho gusto..

Saludos.
  #54 (permalink)  
Antiguo 20/07/2010, 20:54
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 1
Respuesta: Factura electroncia sat mexico

Extraer el No ce certificado en VB sin openssl:

Crear un formulario con un boton y dos etiquetas.
el certificado está en c:\1\aaa010101aaa.cer.pem

El codigo:

Código:
Imports System
Imports System.Security.Cryptography.X509Certificates


Public Class Form1


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim CertHex As String

        Dim cert As X509Certificate = X509Certificate.CreateFromCertFile("c:\1\aaa010101aaa.cer.pem")

        CertHex = cert.GetSerialNumberString()

        Label1.Text = "Hex: " & CertHex


        Dim Data1 As String = ""
        Dim Resultado As String = ""

        While CertHex.Length > 0

            Data1 = System.Convert.ToChar(System.Convert.ToUInt32(CertHex.Substring(0, 2), 16)).ToString()
            Resultado = Resultado & Data1
            CertHex = CertHex.Substring(2, CertHex.Length - 2)
        End While


        Label2.Text = Resultado

    End Sub


End Class
al darle click en el boton sale en la label1: el No en hex, y el la label 2 el No buscado


Saludos
Oscar

Última edición por Oscargf; 20/07/2010 a las 20:59
  #55 (permalink)  
Antiguo 20/07/2010, 22:56
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 1
Respuesta: Factura electroncia sat mexico

y nada mas añadir que jugando un poco con eso se pueden obtener otros datos utiles del certificado, como:

fecha a partir de la que el certificado es valido:
cert.GetEffectiveDateString

fecha de vencimiento del certificado:
cert.GetExpirationDateString

Nombre de la entidad que emitio el certificado:
cert.Issuer

.....

saludos
Oscar
  #56 (permalink)  
Antiguo 23/07/2010, 04:18
 
Fecha de Ingreso: junio-2004
Ubicación: Los Cabos, B.C.S.
Mensajes: 2
Antigüedad: 20 años
Puntos: 0
Respuesta: Factura electroncia sat mexico

Alguien que haya hecho el sello en C# con RSACryptoServiceProvider?.
  #57 (permalink)  
Antiguo 23/07/2010, 14:45
 
Fecha de Ingreso: febrero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 3
Pregunta Respuesta: Factura electroncia sat mexico

estoy generando el xml desde visual
apenas estoy generando la estructura pero el validador me da este mensaje

Se presentaron los siguientes errores al validar la estructura del comprobante C:\factura2.xml
Error: cvc-complex-type.3.2.2: Attribute 'Fecha' is not allowed to appear in element 'Comprobante'.
Error: cvc-complex-type.3.2.2: Attribute 'Sello' is not allowed to appear in element 'Comprobante'.
Error: cvc-complex-type.3.2.2: Attribute 'Subtotal' is not allowed to appear in element 'Comprobante'.
Error: cvc-complex-type.4: Attribute 'fecha' must appear on element 'Comprobante'.
Error: cvc-complex-type.4: Attribute 'sello' must appear on element 'Comprobante'.
Error: cvc-complex-type.4: Attribute 'subTotal' must appear on element 'Comprobante'.
Error: cvc-complex-type.2.4.a: Invalid content was found starting with element 'emisor'. One of '{"http://www.sat.gob.mx/cfd/2":Emisor}' is expected.
Error: cvc-complex-type.3.2.2: Attribute 'Descripcion' is not allowed to appear in element 'Concepto'.
Error: cvc-complex-type.3.2.2: Attribute 'Importe' is not allowed to appear in element 'Concepto'.
Error: cvc-complex-type.4: Attribute 'descripcion' must appear on element 'Concepto'.
Error: cvc-complex-type.4: Attribute 'importe' must appear on element 'Concepto'.
Error: cvc-complex-type.3.2.2: Attribute 'Impuesto' is not allowed to appear in element 'Traslado'.
Error: cvc-complex-type.3.2.2: Attribute 'Importe' is not allowed to appear in element 'Traslado'.
Error: cvc-complex-type.4: Attribute 'impuesto' must appear on element 'Traslado'.
Error: cvc-complex-type.4: Attribute 'importe' must appear on element 'Traslado'.

al parecer esos elementos no esta permitidos en el elemento comprabante, es lo que entiendo
pero en el anexo 20 dice que si pueden ir, de hecho el xml de prueba del sat los tiene

pongo a continuacion el contenido de mi xml y el contenido del xml de prueba del sat
si alguien ya lo genero desde visual puede decirme si me falta algo

Código:
<?xml version="1.0" encoding="utf-8"?>
<Comprobante version="2.0" serie="ADBC" folio="1" Fecha="2010-06-07T18:20:50" Sello="aquivaelsello" noCertificado="10001200000000022517" 
Subtotal="200.00" total="232.00" noAprobacion="49" anoAprobacion="2008" 
formaDePago="UNA SOLA EXHIBICIÓN" descuento="0.00" metodoDePago="EFECTIVO" tipoDeComprobante="ingreso" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<emisor nombre="Pepito grillo S.A. de C.V." RFC="PGR991223SDF">
<DomicilioFiscal calle="Insurgentes" noExterior="45" Colonia="San Federico" Municipio="Benito Juarez" estado="DF" pais="Mexico" codigoPostal="51200" />
</emisor>
<receptor nombre="nombreRec" RFC="RFCRec"><Domicilio calle="calle" noExterior="122" noInterior="3-X" Colonia="San Simon" Localidad="G.A.M" Referencia="Tultitlan" estado="Distrito Federal" pais="Mexico" codigoPostal="52100" />
</receptor>
<Conceptos>
<Concepto cantidad="1.00" unidad="servicio" noIdentificacion="01" Descripcion="Asesoria en factura electronica" valorUnitario="200.00" Importe="200.00" />
</Conceptos>
<Impuestos totalImpuestosTrasladados="32.00">
<Traslados>
<Traslado Impuesto="IVA" Importe="32.00" tasa="16.00" />
</Traslados>
</Impuestos>
</Comprobante>

Código:
<?xml version="1.0" encoding="UTF-8"?>
<Comprobante serie="ABCD" version="2.0" folio="2" fecha="2010-05-03T14:11:36" sello="uMdBnVYNkXyaLDCHNDCtcrrPZQMEnoXu9dQTVJcEAzaDlvatxHaSh9W7C36yVjALzylWq/f1Aq3BiFxxFtGCwVC7F5AMornrBUT6Cm8xXHiwKjwLH2py33j1QCGAgrHxjJ1hcrLzq+33nAn46C7hBgj93V9LJvyGW7BSKN2E9+E=" 
noCertificado="20001000000100000377" subTotal="2000.00" total="2320.00" 
noAprobacion="49" anoAprobacion="2008" formaDePago="UNA SOLA EXHIBICIÓN" 
descuento="0.00" metodoDePago="EFECTIVO" tipoDeComprobante="ingreso" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd " xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Emisor rfc="PAMC660606ER9" nombre="CONTRIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS">
    <DomicilioFiscal calle="PRUEBA SEIS" noExterior="6" noInterior="6" colonia="PUEBLA CENTRO" localidad="PUEBLA" municipio="PUEBLA" estado="PUEBLA" pais="MÉXICO" codigoPostal="72000"/>
  </Emisor>
  <Receptor rfc="CAUR390312S87" nombre="ROSA MARÍA CALDERÓN UIRIEGAS">
    <Domicilio calle="TOPOCHICO" noExterior="52" colonia="JARDINES DEL VALLE" estado="NUEVO LEON" pais="México" codigoPostal="95465"/>
  </Receptor>
  <Conceptos>
    <Concepto cantidad="1.00" unidad="Servicio" noIdentificacion="01" descripcion="Asesoria Fiscal y administrativa" valorUnitario="2000.00" importe="2000.00"/>
  </Conceptos>
  <Impuestos totalImpuestosTrasladados="320.00">
    <Traslados>
      <Traslado impuesto="IVA" importe="320.00" tasa="16.00"/>
    </Traslados>
  </Impuestos>
</Comprobante>
  #58 (permalink)  
Antiguo 23/07/2010, 17:29
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por Oscargf Ver Mensaje
Extraer el No ce certificado en VB sin openssl:

Crear un formulario con un boton y dos etiquetas.
el certificado está en c:\1\aaa010101aaa.cer.pem

El codigo:

Código:
Imports System
Imports System.Security.Cryptography.X509Certificates


Public Class Form1


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim CertHex As String

        Dim cert As X509Certificate = X509Certificate.CreateFromCertFile("c:\1\aaa010101aaa.cer.pem")

        CertHex = cert.GetSerialNumberString()

        Label1.Text = "Hex: " & CertHex


        Dim Data1 As String = ""
        Dim Resultado As String = ""

        While CertHex.Length > 0

            Data1 = System.Convert.ToChar(System.Convert.ToUInt32(CertHex.Substring(0, 2), 16)).ToString()
            Resultado = Resultado & Data1
            CertHex = CertHex.Substring(2, CertHex.Length - 2)
        End While


        Label2.Text = Resultado

    End Sub


End Class
al darle click en el boton sale en la label1: el No en hex, y el la label 2 el No buscado


Saludos
Oscar
HOLA OSCAR,

Fijate que ya copie el codigo que mencionas para poder leer el no de certificado,
pero al ejecutarlo en vb me da un error : me dice que no encuentra el objeto

Dim cert As X509Certificate = X509Certificate.CreateFromCertFile("c:\1\aaa010101 aaa.cer.pem")

1.- la ruta de mi archivo es c:\certificados\x.cer.pem

2.- previamente ejecute : c:\some\openssl\bin\openssl.exe x509 -inform DER -outform PEM -in aaa010101aaa_csd_01.cer -pubkey > x.cer.pm
que me genera un archivo de tamaño 1553 bytes.

que estare haciendo mal ?

de antemano muchas gracias !!
  #59 (permalink)  
Antiguo 23/07/2010, 22:22
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 14 años
Puntos: 1
Respuesta: Factura electroncia sat mexico

alfredo_:

donde pone: "c:\1\aaa010101aaa.cer.pem" tienes que poner la ruta donde está tu certificado, que seria: "c:\certificados\x.cer.pem"

Otra cosa: no es necesario convertirlo a .pem, te funciona igual si le pones el certificado original .cer: "c:\...tu ruta...\aaa010101aaa_csd_01.cer

Saludos
Oscar
  #60 (permalink)  
Antiguo 26/07/2010, 19:03
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

hola me pare muy bien el codigo pero que referencia utilizaste? por que yo no he podido traer la libreria MD5CryptoServices

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 00:14.