![]() |
Respuesta: Facturacion electronica en México Cita:
Toda la informacion necesaria para el reporte mensual esta aqui [URL="http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6534.html"]http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6534.html[/URL] Cuando tengas lista la informacion mensual aqui te indican como enviarla [URL="http://www.sat.gob.mx/sitio_internet/informacion_fiscal/tramites_fiscales/registro_t/101_11761.html"]http://www.sat.gob.mx/sitio_internet/informacion_fiscal/tramites_fiscales/registro_t/101_11761.html[/URL] Saludos |
Respuesta: Facturacion electronica en México Buena noches, Antes que nada gracias a todos los colaboradores por aportar sus conocimientos y buena disposición a la comunidad. Empiezo con mi pregunta, esto de la facturación electrónica es un rollo. En base a los post de este sección he construido algo pero tengo algunas dudas: Ya obtuve mis claves a través de C:\OpenSSL\bin\openssl.exe pkcs8 -inform DER -in C:\OpenSSL\Keys\aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out C:\OpenSSL\Keys\aaa010101aaa.key.pem C:\OpenSSL\bin\openssl.exe x509 -inform DER -outform PEM -in C:\OpenSSL\Keys\aaa010101aaa_CSD_01.cer -pubkey -out C:\OpenSSL\Keys\aaa010101aaa.cer.pem Ya aplique el algoritmo MD5 a la cadena original que presenta el SAT . Genere el sello digital con mis claves obtenidas en el punto uno StreamReader readFile = new StreamReader(@"H:\Proyectos\Facturacion_electronic a\sello_digital\aaa010101aaa.key.pem"); //StreamReader readFile = new StreamReader(PublicKey); PemReader Ocert = new PemReader(readFile); //Dim o As AsymmetricCipherKeyPair = TryCast(Ocert.ReadObject(), AsymmetricCipherKeyPair) AsymmetricCipherKeyPair o = Ocert.ReadObject() as AsymmetricCipherKeyPair; ISigner sig = SignerUtilities.GetSigner("MD5WithRSAEncryption"); //sig.Init(True, o.[Private]) sig.Init(true, o.Private); byte[] signature = sig.GenerateSignature(); string signatureHeader = Convert.ToBase64String(signature); readFile.Close(); readFile = null; El certificado //*****************************certificado //Read Public Key TextReader trCer = new StreamReader(PublicKey); PemReader rdCer = new PemReader(trCer); X509Certificate Cert = (X509Certificate)rdCer.ReadObject(); Org.BouncyCastle.Crypto.AsymmetricKeyParameter pk = Cert.GetPublicKey(); //AsymmetricKeyParameter pk = Cert.GetPublicKey(); byte[] nSerie = Cert.SerialNumber.ToByteArray(); string nCertificado = Encoding.ASCII.GetString(nSerie); Mi duda es, cómo relaciono la cadena obtenida de la aplicación del algoritmo MD5, el certificado o el sello. En los requirimientos de hacienda dice que a la cadena obbtenida aplico el algoritmo RSA, con el sello y la clave privada, como junto estos procesos y luego convertirlo a base 64. Por su ayuda muchas gracias! |
Respuesta: Facturacion electronica en México Hola que tal. De hecho, en el codigo que muestras ya estas aplicando esos requerimientos. Saludos. |
Respuesta: Facturacion electronica en México Gracias por la respuesta, Lo que no veo es donde incluyo mi cadena original aplicado ya el MD5, acaso tengo que hacerlo a través de openssl? openssl dgst -md5 -sign pkey.key.pem -out md5.txt utf8.txt De antemano muchas gracias! |
Respuesta: Facturacion electronica en México ok, osease que te falta Dim plaintext As [Byte]() = ASCII.GetBytes(CadenaOriginal) ' Es una propiedad de la clase. . . . sig.Init(True, o.Private) sig.BlockUpdate(plaintext, 0, plaintext.Length) |
Respuesta: Facturacion electronica en México Muchas gracias! |
Respuesta: Facturacion electronica en México Hola, Les agradezco a todos sus aportaciones. Estoy por finalizar el proceso para generar CFDs, utilizando openssl. El unico problema que tengo es que al validar mi xml en la pagina del SAT me dice que "El sello del comprobante no es válido". ¿ Alguien tiene un ejemplo completo que cumpla con el anexo 20 version 2.0 y que sea aceptado por el validador de la pagina del SAT para poder encontrar el error ? Para poder hacer la revision paso a paso necesito : Archivo de Llave Privada de muestra (.key) Archivo de Llave Publica de muestra (.cer) Cadena Original armada de acuerdo con el anexo 20 version 2.0 MD5 obtenido Sello obtenido Serie de llave Publica obtenido Gracias. |
Respuesta: Facturacion electronica en México Hola, Les agradezco a todos sus aportaciones. Estoy por finalizar el proceso para generar CFDs, utilizando openssl. El unico problema que tengo es que al validar mi xml en la pagina del SAT me dice que "El sello del comprobante no es válido". ¿ Alguien tiene un ejemplo completo que cumpla con el anexo 20 version 2.0 y que sea aceptado por el validador de la pagina del SAT para poder encontrar el error ? Para poder hacer la revision paso a paso necesito : Archivo de Llave Privada de muestra (.key) Archivo de Llave Publica de muestra (.cer) Cadena Original armada de acuerdo con el anexo 20 version 2.0 MD5 obtenido Sello obtenido Serie de llave Publica obtenido Gracias. |
Respuesta: Facturacion electronica en México buen día... ya pude generar el MD5 y el sello.... además de extrael el no. de folio del certificado para ingresarlo al .xls.. pero aún así el validador del SAT me dice que el sello no es válido... les copio el .xml para ver si tienen algún comentario al respecto... será que hay algo mal con el validador del SAT o con el ejemplo que proporciona SAT de Muestra.xml?? Gracias por sus comentarios. Saludos!! P.D. Utilicé el ejemplo Muestra.xml con la cadena original y el certificado 2 proporcionado por el SAT. <?xml version="1.0" encoding="UTF-8"?> <Comprobante fecha="2005-09-02T16:30:00" folio="1" noAprobacion="1" noCertificado="10001200000000022515" sello="GEyGSaq21uiMk3sEJmsiLA22SLKeAtwl3rJ+jO8XB5G 8aoMgqgWwW10Hg8Rc/TDFcyRsloC32OBNV7lrQQ4DiLopu4XEYQ5ye+UvJAx3TzXyBa0 ZpjM4yzg5S2PO09nviv4Z4C2ByQQEiqmu1Z3ZzOAYffay+6/fBU2/Alb2bpE=" 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> |
Respuesta: Facturacion electronica en México phpnewbie.... obtengo el mismo resultado que tú.. ya pudiste encontrar cuál es la razón por la cual el validador de sat no acepta el sello? Gracias y saludos! |
Respuesta: Facturacion electronica en México Cita:
¿que tal te fue con la facturacion electronica desde VFP?, estoy iniciando en esto y quisiera saber si no es tan complicado con FOX por que veo que la mayoría de la gente se esta llendo por PHP, C# o Java saludos |
Respuesta: Facturacion electronica en México Cita:
Existe un API llamado FirmaSat. (Con Costo). http://www.cryptosys.net/fsa/ ejemp. (Mandar la cadena original a un archivo de texto) RUN /N C:\FS\FirmaSAT PIPESTRING FacyuraEl_01.xml > CadenaOriginal.txt (Clear el sello) RUN /N C:\FS\FirmaSAT \FirmaSAT MAKESIG -k aaa010101aaa_csd_01.key -p a0123456789 FacyuraEl_01.xml y tambien se puede usar OpenSSS(Gratis ???) RUN /N C:\SSL\OpenSsl dgst -MD5 cadenaOriginal.txt > Md5Reult Saludos. |
Respuesta: Facturacion electronica en México Cita:
Saludos |
Respuesta: Facturacion electronica en México Cita:
"digestion MD5" de la cadenaOriginal, no da el mismo resultado que el validador de SAT. Sera que ellos usan Linux(Unix) ?. Que lioooooooo. Saludos y Suerte. P. D. Con FirmaSat todo de maravilla. |
Respuesta: Facturacion electronica en México Para los que ya pudieron generar el Sello pero aparentemente no esta correcto: ES MUUUUY IMPORTANTE que al generar el archivo, cadena, etc que almacena la Cadena Original, esta NO TENGA NINGUN caracter extraño. A mi me estaba pasando que al final de mi archivo binario mi rutina le estaba agregando un CR+LF (o sea un caracter #13 + #10), que ES INVISIBLE, pero esta ahi!!! Tampoco debe tener Tabuladores (caracter #8) ni doble espacio, ni "espacio + pipe" ni "pipe + espacio" es decir, lo siguiente es una PESIMA cadena original ||2.0| aqui hay un espacio de mas |Mi empresa| aqui hay dos espacios juntos| aqui (implicitamente) hay un retorno de carro CR+LF|y debe terminar con doble pipe|| Les recomiendo que revisen el tamaño de su variable, archivo o en general del "contenedor" de su cadena, que esta termine EXACTAMENTE en un "doble pipe" (esto es en "||") En lenguaje "C" asegurense que esta termine en NULL Los archivos NO DEBEN tener el caracter EOF (End Of File, o CTRL-Z) Aqui les dejo una liga donde explico como resolvi esto en Delphi www.clubdelphi.com/foros/showthread.php?p=359037 Saludos, |
Respuesta: Facturacion electronica en México Cita:
Mi problema era que la cadena se guardaba con EOF (End Of File, o CTRL-Z). Saludos. |
Respuesta: Facturacion electronica en México Que tal phpnewbie necesito de tu ayuda para lo de la facturación electrónica, tengo el mismo caso que se te presentó acerca del sello digital no válido pero ya igualo la cadena que me da el validador. sALUDOS. |
Respuesta: Facturacion electronica en México Cita:
TEXT TO cadenao noshow ||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|| ENDTEXT cadenao=ALLTRIM(cadenao) cadena2=Strconv(cadenao, 9) arch_des = Fcreate('md5.txt') =Fwrite(arch_des ,cadena2) =Fclose(arch_des) !c:\openssl\bin\openssl dgst -md5 md5.txt >md51.txt saludos |
Respuesta: Facturacion electronica en México Cita:
Ya logre pasar ese paso. Ahora el problema es que el sello me lo marca como no valido : run c:\OpenSSL\Bin\openssl dgst -sign abcd123456xxx_9999999999.key.pem md5Result.txt | c:\OpenSSL\Bin\openssl enc -base64 -A > SelloBase64.txt Me genera esto : (No Pasa la validación) cOc86p97x5/cnu6ZbGTmh7dPHDQyepA/aYqN670Eu6WuyxXPhGnMkSsxD23vAkyxwKkCNX7CJuSP7yOvRM bxKwxz19Yql8Ry1yeMHiseg5vOF501QGlfdcLWvhVLaMjBjfqY DS6ckd8/SCHVOr2ySc+9MCLc62pho1RoLowlDoQ= y con la lbreria de firmaSat me genera esto : (Si pasa la validación) dnm+G0ttduIe389g/K4HJbzlsdGTeJdUsGYd+Lot5ycgr6BJeu4Ewqi/gx5F9asd6BOd8R4oFnd5NOigYPKiAcby7AGe9QvWWKkPtW62Es XHqOcO8+P3JF8C5aitox1t/1meNWV1KDnIdGCTn0sFldRS8jjgXday8BdCpZgyFMk= Los dos generan la misma digestión MD5 (d640bb467225d3e3e784ca14d68f2524) Saludos y Suerte. |
| La zona horaria es GMT -6. Ahora son las 07:38. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.