| |||
Respuesta: Factura electroncia sat mexico que tal mikecoy, me desapareci un rato, fijate que estoy batallando con el formato de factura, estoy utilizando crystal report 8.0, el detalle es que tanto la cadena original como el certificado son datos con mas de 254 caracteres, y esta version de crystal acepta campos string maximos de 254, tu como imprimes la factura???. Tambien quiero preguntarte si estas usando uin archivo XSL para darle presentacion a la factura digital. |
| |||
Respuesta: Factura electroncia sat mexico Hola compañeros, soy nuevo en esto de la factura electronica de antemano gracias a todos me a sido muy util su ayuda solo que ahora ando muy enredado con algunas cosas, de hecho ya genero el sello digital con la una cadena origina que nos da hacienda al igual q el .key q nos da, pero la verdad que no se como generar la cadena original no se si alguien me pusiera hechar la mano con esto diciendome de donde o como se genera. Gracias de antemano por su valiosa ayuda. |
| |||
Respuesta: Factura electroncia sat mexico cassper_ew3: Lo más sensato es que generes el XML de acuerdo al Anexo 20, en el lenguaje que usas (seguro tiene clases para manejo de XML), luego valídalo con el esquema que provee hacienda (es un archivo XSD) y finalmente ya que validaste que lo generas bien, usa el archivo en XSLT para transformar ese XML y obtener la cadena original. Luego ya nada más tomas el sello y se lo agregas al XML. También puedes generar la cadena original a pie, basándote en el Anexo 20, pero estás propenso a equivocarte. Saludos. |
| |||
Respuesta: Factura electroncia sat mexico Alquien sabe cuales son los requerimientos para la impresion del CFD, me refiero as si se le pueden agregar datos a los ya contemplados en el comprobante. Por ejemplo el numero de partida para las licitaciones. |
| |||
Respuesta: Factura electroncia sat mexico -------Guapolo------ Gracias Guapolo por tu ayuda, ok, si estoy trabajando con c# creo q ya se mas o menos como generar la cadena original y el archivo xml, ahora me surgio otra duda por que me dicen que para generar el sello digital que ya lo hice gracias a la ayuda de MArkX se necesita tambien el .cer que nos da el SAT junto con el .key quisiera saber cual es el procedimiento correcto para generarlo, si solo se necesita el .key o tambien es necesario el .cer Saludos.. !!!! |
| |||
Respuesta: Factura electroncia sat mexico Cita: Hola, kadghar Te queria pregunta si podrías postear el codigo que tu corregiste; o explicar un poco mas claro; en espcífico el
Iniciado por kadghar Antonio, Tu código es muy bueno, pero tienes pequeños errores, el primero es que la comparación del salt debe ser contra la secuencia de bytes que llamas OIDpkcs5PBKDF2 y lo estás haciendo contra OIDpkcs5PBES2. El segundo es que los dos bytes que van después de OIDdesEDE3CBC deben ser 2 y 2, tú estás validando 2 y 1, hay que cambiarlo. Otro error que tienes, seguramente de concentración fue que en la función que usas para comparar bytes, el incremento de i lo pones adentro del IF, debe ir después del END IF, si no, cada vez comparas contra el primer byte. Por último debes revisar en la función DecodePrivateKeyInfo, donde lees el 2 y 1 del pkcs8, asignas bt al 2 y twobytes al 1, y luego haces dos veces la comparación contra bt, cuando la segunda comparación debería ir contra el 1, o sea contra twobytes. Haciendo estas pequeñas modificaciones, probé tu código y desencripta perfectamente cualquier key en PKCS8 Saludos, Kad "El segundo es que los dos bytes que van después de OIDdesEDE3CBC deben ser 2 y 2, tú estás validando 2 y 1, hay que cambiarlo." de ante mano muchas gracias, Saludos |
| |||
Duda Cita: Disculpa, soy nuevo en el foro y estoy tratando de hacer lo de facturacion electronica, hago como dices para generar el sello en vb.net con el shell pero no me genera nada, estaba leyendo lo de Markx, Matias y de Vero que lo hacian en .net pero tampoco entendi, no sabes cual pudiera ser mi error, en linea de comandos si funciona. No se si me explique bien si alguien me pudiera dar un ejemplo en vb.net o en lo que sea tratare de entender. Gracias.
Iniciado por thebman 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= Mi codigo va asi Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 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|| " Label1.Text = cadenaoriginal System.IO.File.WriteAllText("C:\fepruebas\cadena.t xt", cadenaoriginal) Dim CadenaUTF8 As Byte() Dim tmpHash() As Byte Dim Digestion As String 'convierte en UTF8 CadenaUTF8 = System.Text.Encoding.UTF8.GetBytes(cadenaoriginal) 'crea el hash tmpHash = New MD5CryptoServiceProvider().ComputeHash(CadenaUTF8) ' lo pasa a una variable string mediante la funcion ByteArrayToString Digestion = ByteArrayToString(tmpHash) System.IO.File.WriteAllText("C:\fepruebas\MD5.txt" , Digestion, Encoding.UTF8) Shell("C:\OpenSSL-Win32\bin\openssl.exe pkcs8 -inform DER -in C:\fepruebas\aaa010101aaa_csd_01.key -passin pass:a0123456789 -out C:\fepruebas\aaa010101aaa_csd_01.key.pem") Shell("c:\OpenSSL-Win32\bin\openssl dgst -sign c:\fepruebas\aaa010101aaa_CSD_01.key.pem c:\fepruebas\md5.txt | c:\OpenSSL-Win32\bin\openssl enc -base64 -A > c:\fepruebas\sello.txt") End Sub |
| ||||
Respuesta: Factura electroncia sat mexico Compañebrios ya tengo el problema solucionado en PHP.... a todos gracias por sus aportes. yo inicie esto hace 1 año, fui de los primeros posteadores en otro hilo, pero lo deje por otras cosillas, regrese esta semana porque me mandaron mis certificados y folios, y ps hora si iba en serio jjjj. tons me chute otravez el codigo del lacorona.com.mx/fortiz, gracias a este cuate que ni conozco pero ps puso sus maravillas en la red, la mayoria de su codigo me funciono y ya quedo. Mi hibrido aun no lleva addendas solo agreguenlas, y unas que otras cossas como la version 2 del xlst que da el sat. igual y falta algo pero si ustedes como yo, no abandonamos estos hilos, sabremos que sigue.... amenos eso espero--> que no se den su pakete y decidan no postear por pensar que otro se puede hacer rico con su codigo,jaja, sino de una vez lleguenle... hay les va la primer entrega.....esta todo cochinote, pero hay les va un cachote que crea el xml sin certificado ni sello.. //-----
Código PHP:
Ver original //--- LA SEGUNDA ENTREGA EMPALMA EL XLST Y EL XML INCOMPLETO PARA OBTENER UNA CADENA ORIGINAL .. HACE EL SELLO Y LO AGREGA... Saludos |
| ||||
Respuesta: Factura electroncia sat mexico Cita: o si lo quieren completo manden mp
Iniciado por nanox compañebrios Ya tengo el problema solucionado en php.... A todos gracias por sus aportes. Yo inicie esto hace 1 año, fui de los primeros posteadores en otro hilo, pero lo deje por otras cosillas, regrese esta semana porque me mandaron mis certificados y folios, y ps hora si iba en serio jjjj. Tons me chute otravez el codigo del lacorona.com.mx/fortiz, gracias a este cuate que ni conozco pero ps puso sus maravillas en la red, la mayoria de su codigo me funciono y ya quedo. Mi hibrido aun no lleva addendas solo agreguenlas, y unas que otras cossas como la version 2 del xlst que da el sat. Igual y falta algo pero si ustedes como yo, no abandonamos estos hilos, sabremos que sigue.... amenos eso espero--> que no se den su pakete y decidan no postear por pensar que otro se puede hacer rico con su codigo,jaja, sino de una vez lleguenle... Hay les va la primer entrega.....esta todo cochinote, pero hay les va un cachote que crea el xml sin certificado ni sello.. //-----
Código php:
Ver original //--- la segunda entrega empalma el xlst y el xml incompleto para obtener una cadena original .. Hace el sello y lo agrega... saludos |
| |||
Respuesta: Factura electroncia sat mexico Tengo una duda, a lo mejor es una duda muy tonta pero apenas estoy con mi proyecto de facturacion digital y ya lei todo el tema en este foro y sigo con algunas dudas. Cada vez que vayamos a generar un CFD tenemos que generar el archivo .key.pem o una vez generado el .pem ya nos sirve para los demas CFD que generemos, aqui solo se factura de una computadora. Saludos y gracias por las aportaciones |
| |||
Respuesta: Factura electroncia sat mexico Que tal buena tarde. Ayuda con Visual Studio 2010 Alguien programando CFD con la generación de clases del archivo me pueden ayudar con algo de codigo, estoy trabajando con el siguiente y no hemos podido definir como instanciar la parte de partidas. Do While RecXML.EOF <> True Dim FacturaProcesada As Integer FacturaProcesada = RecXML.Fields("Invoice").Value Dim CFD As New Comprobante.Comprobante CFD.version = "2.0" CFD.serie = "A" CFD.folio = "1" CFD.fecha = DateTime.UtcNow.ToString("yyyy-MM-ddTHH\:mm\:ss.fffffffzzz") CFD.Receptor.Domicilio.codigoPostal = codigoPostal 'Conceptos Dim Partida As Integer Do Until recordsetpartidas.eof <> EOF() CFD.Conceptos(Partida).cantidad = 1 CFD.Conceptos(Partida).descripcion = "Prueba de Concepto" ' Siguiente concepto en cada ciclo y asi para cada propiedad CFD.Conceptos(Partida).noIdentificacion = "Serie" CFD.Conceptos(Partida).Items = "?" CFD.Conceptos(Partida).importe = 20.0 CFD.Conceptos(Partida).unidad = "Pieza" CFD.Conceptos(Partida).valorUnitario = 20.0 Partida = Partida + 1 Loop CFD.Conceptos(0).Items Dim informacionaduana As CFD.Comprobante.t_InformacionAduanera informacionaduana. Aparte como instancio la parte de información aduanera relacionada al concepto. perdon por las preguntas, pero estoy algo oxidado. |
| |||
Respuesta: Duda Cita:
Iniciado por antoniooo Disculpa, soy nuevo en el foro y estoy tratando de hacer lo de facturacion electronica, hago como dices para generar el sello en vb.net con el shell pero no me genera nada, estaba leyendo lo de Markx, Matias y de Vero que lo hacian en .net pero tampoco entendi, no sabes cual pudiera ser mi error, en linea de comandos si funciona. No se si me explique bien si alguien me pudiera dar un ejemplo en vb.net o en lo que sea tratare de entender. Gracias. Mi codigo va asi Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 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|| " Label1.Text = cadenaoriginal System.IO.File.WriteAllText("C:\fepruebas\cadena.t xt", cadenaoriginal) Dim CadenaUTF8 As Byte() Dim tmpHash() As Byte Dim Digestion As String 'convierte en UTF8 CadenaUTF8 = System.Text.Encoding.UTF8.GetBytes(cadenaoriginal) 'crea el hash tmpHash = New MD5CryptoServiceProvider().ComputeHash(CadenaUTF8) ' lo pasa a una variable string mediante la funcion ByteArrayToString Digestion = ByteArrayToString(tmpHash) System.IO.File.WriteAllText("C:\fepruebas\MD5.txt" , Digestion, Encoding.UTF8) Shell("C:\OpenSSL-Win32\bin\openssl.exe pkcs8 -inform DER -in C:\fepruebas\aaa010101aaa_csd_01.key -passin pass:a0123456789 -out C:\fepruebas\aaa010101aaa_csd_01.key.pem") Shell("c:\OpenSSL-Win32\bin\openssl dgst -sign c:\fepruebas\aaa010101aaa_CSD_01.key.pem c:\fepruebas\md5.txt | c:\OpenSSL-Win32\bin\openssl enc -base64 -A > c:\fepruebas\sello.txt") End Sub Checa mi post ahi explico como hacerlo con el openssl :D [URL="http://www.forosdelweb.com/f29/factura-electroncia-sat-mexico-806167/index7.html#post3572492"]Ir al post[/URL] |
| |||
Respuesta: Factura electroncia sat mexico Avances - Espero les sirva, yo necesito ayuda con la generación del XML, a traves de openssl ya genero todo, sin embargo para limpiar el codigo decidi hacerlo con las clases y me resulta mucho mas facil, solo que ahora estoy atorado con la obtención del xml desde la clase CFD [QUOTE=Mike_Rodriguez_J;3610982]Que tal buena tarde. Ayuda con Visual Studio 2010 Alguien programando CFD con la generación de clases del archivo QUOTE] OJO, este codigo ya genera un archivo xml, el tema que tengo es el de los name spaces, no me esta arrojando lo mismo, alguna sugerencia: Do While RecXML.EOF <> True Dim FacturaProcesada As Integer FacturaProcesada = RecXML.Fields("Invoice").Value Dim CFD As Comprobante.Comprobante CFD = New Comprobante.Comprobante CFD.version = "2.0" CFD.serie = "A" CFD.folio = "1" CFD.noCertificado = LeeCertificado("SerialNumber") CFD.certificado = LeeCertificado("Base64") CFD.subTotal = ComprobanteSubTotal(FacturaProcesada) CFD.descuento = ComprobanteDescuento(FacturaProcesada) CFD.motivoDescuento = "Descuento Cliente" CFD.total = RecXML.Fields("Total").Value CFD.metodoDePago = "Depósito en Cuenta, Tarjeta de Credito o Debito" CFD.tipoDeComprobante = 1 'ComprobanteTipo(FacturaProcesada) CFD.Emisor = New Comprobante.ComprobanteEmisor 'Aqui esta el tema de como crear el comprobante emisor dentro del CFD.Emisor (Asi es con los demas nodos) CFD.Emisor.rfc = F_Emisor("RFC") CFD.Emisor.nombre = F_Emisor("name") CFD.Emisor.DomicilioFiscal = New Comprobante.t_UbicacionFiscal CFD.Emisor.DomicilioFiscal.calle = DomicilioFiscalC("calle") CFD.Emisor.DomicilioFiscal.noExterior = DomicilioFiscalC("noExterior") CFD.Emisor.DomicilioFiscal.noInterior = DomicilioFiscalC("noInterior") CFD.Emisor.DomicilioFiscal.localidad = DomicilioFiscalC("Colonia") CFD.Emisor.DomicilioFiscal.localidad = DomicilioFiscalC("localidad") CFD.Emisor.DomicilioFiscal.referencia = DomicilioFiscalC("referencia") CFD.Emisor.DomicilioFiscal.municipio = DomicilioFiscalC("municipio") CFD.Emisor.DomicilioFiscal.estado = DomicilioFiscalC("estado") CFD.Emisor.DomicilioFiscal.pais = DomicilioFiscalC("pais") CFD.Emisor.DomicilioFiscal.pais = DomicilioFiscalC("CodigoPostal") CFD.Receptor = New Comprobante.ComprobanteReceptor CFD.Receptor.rfc = "RfcCliente" CFD.Receptor.nombre = "NombreCliente" CFD.Receptor.Domicilio = New Comprobante.t_Ubicacion CFD.Receptor.Domicilio.calle = "CalleCliente" CFD.Receptor.Domicilio.noExterior = "noExterior" 'Conceptos 'OJO aqui esta el tema de como utilizar la parte de conceptos Dim concepto As New Comprobante.ComprobanteConcepto CFD.Conceptos = Array.CreateInstance(concepto.GetType, 10) CFD.Conceptos(0) = New Comprobante.ComprobanteConcepto CFD.Conceptos(0).cantidad = 1 'al solucionar lo anterior, se que me falta impuesto y lo demas pero me quise 'enfocar a generar el xml con esos datos para visualizarlo y hago este codigo, ' pero me sigue saliendo el (XMLNS)<?xml version="1.0" encoding="utf-8"?> '<Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' xmlns:schemalocation="http://www.sat.gob.mx/cfd/2 'http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0" Dim xmlNameSpace = New XmlSerializerNamespaces() xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance") xmlNameSpace.Add("schemalocation", "http://www.sat.gob.mx/cfd/2" & " " & "http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd") Dim objStreamWriter As New StreamWriter("C:\CFD.xml", False) Dim prueba As New XmlSerializerNamespaces prueba.Add(String.Empty, String.Empty) Dim x1 As New XmlSerializer(CFD.GetType, "http://www.sat.gob.mx/cfd/2") x1.Serialize(objStreamWriter, CFD, xmlNameSpace) objStreamWriter.Close() Toda ayuda sera agradecida. Estoy programando en visual studio 2010 en windows.forms |
| |||
Respuesta: Factura electroncia sat mexico Buenas noches, he estado siguiendo todo el foro, gracias por los aportes me han sido de mucha utilidad, ahora lo que me esta haciendo sifrir es cómo se puede programar los nodos addenda y complemento de un comprobante?. Agradecería cualquier información que puedan proporcionarme. Gracias. |
| |||
Respuesta: Factura electroncia sat mexico Cita: Una pregunta hegaes, implemente tu codigo para poder crear la cadena original, sin embargo me dice errores de proxy, no he podido pasarle las credenciales o mas bien no e sabido como me podrias ayudar, gracias!!!
Iniciado por hegaes No es molestia, estamos para ayudar en medida de lo que sea posible. Y estas en lo correcto, al usar el archivo cadenaoriginal_2_0.xlst partimos de la idea que tu factura ya esta generada , pues la cadena original se crea extrayendo la informacion de tu factura. Posteriormente, tendrias que actualizar tu factura con el sello que hayas obtenido. |
| |||
Respuesta: Factura electroncia sat mexico Hola hola nuevamente ando por estos rumbos, para los q necesiten crear el sello digital, xml y cadena original hay tengo unas clases q les pueden servir, estan hechas en c# funcionan al 100, solo una duda q me surgio con el .cer no se para q se utiliza o donde estra en funcion por q segun me dice un compañero se necesita para generar el sello digital pero ese ya lo genero sin necesidad del .cer solo con el .key y si es valido ya lo corrobore con hacienda. gracias de antemano, si requieren las clases q les menciono envien su mail. |
| |||
Respuesta: Factura electroncia sat mexico Cita: pues ciertamente el .cer sirve para dos cosas dentro del proceso de emision de los comprobante, que a final de cuenta no son obligatorios.
Iniciado por cassper_ew3 Hola hola nuevamente ando por estos rumbos, para los q necesiten crear el sello digital, xml y cadena original hay tengo unas clases q les pueden servir, estan hechas en c# funcionan al 100, solo una duda q me surgio con el .cer no se para q se utiliza o donde estra en funcion por q segun me dice un compañero se necesita para generar el sello digital pero ese ya lo genero sin necesidad del .cer solo con el .key y si es valido ya lo corrobore con hacienda. gracias de antemano, si requieren las clases q les menciono envien su mail. 1.- para obtener el numero de serie del certificado 2.- para incluirlo dentro del certificado. |
| |||
Respuesta: Factura electroncia sat mexico Cita: Hola me intereza si puedes ayudarme con las clases que ya tienes desarrolladas yo tengo una clase que genera el sello digital y solo utilizo el archivo .key si te intereza me dices gracias.
Iniciado por cassper_ew3 Hola hola nuevamente ando por estos rumbos, para los q necesiten crear el sello digital, xml y cadena original hay tengo unas clases q les pueden servir, estan hechas en c# funcionan al 100, solo una duda q me surgio con el .cer no se para q se utiliza o donde estra en funcion por q segun me dice un compañero se necesita para generar el sello digital pero ese ya lo genero sin necesidad del .cer solo con el .key y si es valido ya lo corrobore con hacienda. gracias de antemano, si requieren las clases q les menciono envien su mail. |
| |||
Respuesta: Factura electroncia sat mexico Cita: claro q si te hecho l mano enviame tu correo electronico para el msn y nos ponemos de acuerdo. |
| |||
Respuesta: Factura electroncia sat mexico ok ok me podrias explicar mas profundamente el segundo tema porfa lo que pasa que ando medio enredado con esa parte el certficado me hace bolas, como te dije ya tengo generado el sello digital |
| |||
Respuesta: Factura electroncia sat mexico Estimados colegos programadores: He estado leyendo sus correos y estoy viendo que estan mucho mas avanzados que nostros en el desarrollo de la facturacion electronica. Tengo conocimientos de XML, no tengo mucho conocimiento sobre encriptacion y OpenSSL, nuestro sistema esta desarrollado en PROGRESS. Mis dudas son las siguientes: Alguien me podria explicar que es lo que necesito para generar el sello digital para mi factura electronica? He leido el anexo 20 varias veces pero no me ayuda mucho. El archivo XML que se tiene que generar es diferente a cualquier otro XML? Que es lo que tengo que hacer con el codigo fuente dado en este anexo? Muchas gracias por su tiempo y ayuda, cualquier comentario es bienvenido. |
| |||
Respuesta: Factura electroncia sat mexico Hola estimado foro, he estado siguiendo toda la conversación, gracias por los aportes me han sido de mucha utilidad, ahora lo que me esta haciendo sifrir es cómo se puede programar los nodos addenda y complemento de un comprobante?. Agradecería cualquier información que puedan proporcionarme. Gracias. |
| ||||
Respuesta: Factura electroncia sat mexico SEGUNDA ENTREGA..PHP.. Sellar y meter todo a un xml. con la cadena que sale del xlst. Código PHP: grax zeroccm por contestar en el otro hilo ( Cita: Iniciado por Nanox Ver Mensaje alguien ya pudo? ) |
| |||
Respuesta: Factura electroncia sat mexico Cita: que tal amigo...
Iniciado por kadghar antonio, tu código es muy bueno, pero tienes pequeños errores, el primero es que la comparación del salt debe ser contra la secuencia de bytes que llamas oidpkcs5pbkdf2 y lo estás haciendo contra oidpkcs5pbes2. El segundo es que los dos bytes que van después de oiddesede3cbc deben ser 2 y 2, tú estás validando 2 y 1, hay que cambiarlo. Otro error que tienes, seguramente de concentración fue que en la función que usas para comparar bytes, el incremento de i lo pones adentro del if, debe ir después del end if, si no, cada vez comparas contra el primer byte. Por último debes revisar en la función decodeprivatekeyinfo, donde lees el 2 y 1 del pkcs8, asignas bt al 2 y twobytes al 1, y luego haces dos veces la comparación contra bt, cuando la segunda comparación debería ir contra el 1, o sea contra twobytes. Haciendo estas pequeñas modificaciones, probé tu código y desencripta perfectamente cualquier key en pkcs8 saludos, kad Esoy generando facturas y resulta que el validador me dice que el sello es invalido, sabes si ya cambio de md5 a sha1, porque actualmente tengo la clase que se difundio en este foro... Alguien sabe algo? |
| |||
Respuesta: Factura electroncia sat mexico Hola a todos. Escribo con una duda muy puntual. Actualmente estoy desarrollando la emisión de CFD's. Mi cliente dice que necesita que cada CFD se genere en menos de un segundo, checando tiempos me percaté de que generar el sello digital de cada CFD tarda 5 segundos... ¿alguno de ustedes sabe si este tiempo puede reducirse de alguna manera? Muchas gracias por su ayuda. Saludos!!! |
| |||
Respuesta: Factura electroncia sat mexico Cita: Yo tambien tengo un programa en vb6, esta todo correcto pero al generar el xml me sale error de validacion en el sello. Podrias pasarme las rutinas de generacion del xml para compararlas contra mis rutinas?.De antemano, gracias |
| |||
Respuesta: Factura electroncia sat mexico Cita: Tony que tal, la digestión del MD5 no me da igual a la de hacienda, me gustaría saber si me pudieras ayudar estoy haciéndolo de la siguiente manera.
Iniciado por tonymagic 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 openssl.exe dgst -md5 -sign DATA.PEM -out MD5F.TXT UTF8.TXT openssl.exe enc -base64 -in MD5F.TXT -out SELD.TXT DONDE: - MD5F.TXT SE GENERA CON DATA.PEM - UTF8.TXT ES LA CADENA ORIGINAL - SELD.TXT ES EL SELLO DIGITAL, CUANDO ENVIO EL XML AL VALIDADOR DEL SAT ME REGRESA UNA DIGESTION DEL MD5 DIFERENTE, A LA COMPROBACION LOCAL CON EL COMANDO: Openssl dgst –md5 utf8.txt que es mi cadena original Alguna sugerencia? te lo agradecería mucho Saludos |
| |||
Respuesta: Factura electroncia sat mexico Miren este tutorial sobre la generacion del sello digital, espero les pueda resolver varias dudas, incluye los documentos para que los puedan descargar. http://actron.wordpress.com/2010/11/16/facturacion-electronica-sello-openssl-php/ Saludos @Elite_Astaroth |
Etiquetas: |