FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Validador, En Fase Beta
Hola,
Estoy solicitando personas interesadas en probar un validador de CFD's Les invito a entrar a www.validacfd.com para ver de que se trata. |
#2
|
||||
|
||||
Cita:
Yo me anoto, nomás por apoyar pues gracias a Dios tengo todo en orden.
__________________
Tiempo y ocasión acontecen a todos! |
#3
|
|||
|
|||
Cita:
Por favor, a los interesados en ayudar a probarlo mandenme un mail a cubo@validacfd.com para poder llevar un control. NOTA: Ahorita llevo como un 35% del desarrollo, NO ES FUNCIONAL, asi que si lo solicitas solo "por curiosidad" mejor espera para Agosto-Septiembre cuando este bien terminado y probado. |
#4
|
||||
|
||||
Cita:
Mejor me espero que oficialmente lo liberes para no quitarte tiempo. Saludos y suerte.
__________________
Tiempo y ocasión acontecen a todos! |
#5
|
|||
|
|||
Hola que tal dado
Mas que entrar como tester, me gustaría saber si ya has podido realizar la validación del sello digital, me explico mejor, estoy realizando un validador de
cfd para mi empresa como receptor de facturas xml, ya llevo lo siguiente: > Validar que el certificado este vigente > Validar que el certificado este a nombre del Emisor > Validar que los folios pertenezcan a una serie valida > Validar que los folios pertenezcan al Emisor > Validar que los folios no han sobrepasado sus máximos Lo que me falta: > Validar el sello digital con la clave pùblica (esta no encuentro como extraerla, bajarla del sat, crearla, no tengo ni idea como obtenerla) > En teoría con un archivo tipo publickey.key debería de poder desencriptar el sellodigital, pero hasta ahora no encontrado que sentencia utilizar para openssl. > Desencriptar sello digital > Obtener cadena original y reencriptarla con la clave pùblica > Comparar el sello digital generado con el que se encuentra en el CFD recibido. Actualmente estoy trabajando en modo servicio local, utilizando openssl. Que estes bien , saludos. |
#6
|
|||
|
|||
Oscar ::::
Si, de hecho la idea principal de mi ValidaCFD es que pueda ser usado por todo el publico PARA RECIBIR FACTURAS, exactamente lo que tu estas haciendo. Para validar el sello.....es un proceso largo pero sencillo (especialmente sencillo cuando sabes como hacerlo je je je). Te doy "la punta de la madeja", te toca desentrañar todo el desarrollo. 1. Tomas la cadena "Certificado" de tu XML, la DIVIDES en lineas de 64 caracteres cada una, despues le agregas el encabezado -----BEGIN CERTIFICATE----- y el pie -----END CERTIFICATE----- (el numero de guiones y la frase debe ser EXACTA) 2. Grabas ese certificado en un archivo, digamos "certificado.PEM" (no voy a explicar muchos detalles, pero donde veas negrillas es porque hay informacion que debes estudiar si quieres saber que esta pasando) 3. Toma la cadena "Sello" de tu XML, la DIVIDES en lineas de 64 caracteres y la grabas en archivo con nombre digamos "sello.txt" 4. Generas la cadena original (esta te la tienes que aventar "a mano", es decir, no esta en el XML) y la grabas en un archivo, digamos "cadena.txt" IMPORTANTE no se te olvide grabarla codificada con UTF8 (ver UTF8ENCODE de Delphi) 5. Ejecutas lo siguiente : openssl x509 -in "cert.PEM" -pubkey -noout >pubkey.txt (para obtener la llave publica) openssl enc -base64 -d -in "sello.txt" >sellobin.txt (para pasar el sello de base64 a binario) openssl dgst -md5 -verify "pubkey.txt" -signature "sellobin.txt" "cadoriginal.txt" >resultado.txt (aqui esta toda la magia, en el archivo "resultado.txt" tienes......el resultado) |
#7
|
|||
|
|||
Ya casi queda
Cita:
"Verification Failure" Mira este es mi cadena original en el archivo utf8.txt ||2.0|A|7306|2010-05-25T10:25:46|44616|2009|ingreso|PAGO EN UNA SOLA EXHIBICION|MONEDA: MXN, TC: 1.0000|700.00|0.00|812.00|DAA020218JY1|DSV AIR & SEA, S.A. de C.V.|Indiana|260|Piso 11 Desp.1107|Ciudad de los Deportes|TEL: (55) 6515-6525|BENITO JUAREZ|Distrito Federal|M?xico|03710|GPU030429I10| GESTAMP PUEBLA SA DE CV|AUTOMOCION 8 SAN LORENZO|ALMECATLA CUAUTLANCINGO PUEBLA C.P. 72710|MEXICO|1|PZA|392|TRANSFERENCIA ELECTRONICA MANIFIESTO|700.00|700.00|IVA|16.00|112.00|112.00|| Esta es la que aparece en el validador del sat en el recuadro de cadena original. ||2.0|A|7306|2010-05-25T10:25:46|44616|2009|ingreso|PAGO EN UNA SOLA EXHIBICION|MONEDA: MXN, TC: 1.0000|700.00|0.00|812.00|DAA020218JY1|DSV AIR & SEA, S.A. de C.V.|Indiana|260|Piso 11 Desp.1107|Ciudad de los Deportes|TEL: (55) 6515-6525|BENITO JUAREZ|Distrito Federal|México|03710|GPU030429I10| GESTAMP PUEBLA SA DE CV|AUTOMOCION 8 SAN LORENZO|ALMECATLA CUAUTLANCINGO PUEBLA C.P. 72710|MEXICO|1|PZA|392|TRANSFERENCIA ELECTRONICA MANIFIESTO|700.00|700.00|IVA|16.00|112.00|112.00|| La única diferencia apreciable es el acento en México por M?xico (ojo esto ya lo modifique a pata para ver si eso era y no sigue dando error); como lo expresa en mi programa pero según yo ya lo exprese en UTF8 y genere el sello, pero no logro hacer que se valide el sello, no se cual sea el error ya estuve cambiando la cadena a UTF8 a mano sin mi programa y nop no me deja, el sello lo dividí en 64 caracteres asi como lo pase a binario mira aqui te dejo los demas datos: sello.txt: aSBXOlIeM6HG1Iqaj8vpBNR29It1PmDdkgGOkeslzV13M1pxDNfxeU1CybvlU5TO StXmiFLFnWBmfasg3BnJVqDlruDhMyfne3TyjXZ8Ng9q8EyFkO/1IElIaGCO8fig 8gIru30smNsi3iXj9NKOqgwjRHq2Alyss3DAx0goLR8= sellobin.txt: i W:R3¡ÆÔŠšËéÔvô‹u>`Ý’Ž‘ë%Í]w3Zq×ñyMBÉ»åS”ÎJÕæˆRÅ`f}« ÜÉV å®àá3'ç{tòv|6jðL…ïõ IHh`Žñø ò+»},˜Û"Þ%ãôÒŽª#Dz¶\¬³pÀÇH(- pubkey.txt: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqJBY3wC8c/90lDXbs5ua2n2aJ ueaeUbo3U4kTUQ0mMfrChnEbbpNllbZoGeMl1dwxTj4IQD71iYiLU3sZQIYQdaVK sQiL3B6Dy31cJWPuHECfPXIFZ4Nvy0c9s8SY5DrQfgtySzdXFk6Z4kgLU5RDXeej LkxXQtQAFp9qC68n5wIDAQAB -----END PUBLIC KEY----- cert.pem: -----BEGIN CERTIFICATE----- MIIEIjCCAwqgAwIBAgIUMDAwMDEwMDAwMDAxMDA3MjgwNjMwDQYJKoZIhvcNAQEF BQAwggE2MTgwNgYDVQQDDC9BLkMuIGRlbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJh Y2nDs24gVHJpYnV0YXJpYTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3Ry YWNpw7NuIFRyaWJ1dGFyaWExHzAdBgkqhkiG9w0BCQEWEGFjb2RzQHNhdC5nb2Iu bXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYD VQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVy YWwxEzARBgNVBAcMCkN1YXVodGVtb2MxMzAxBgkqhkiG9w0BCQIMJFJlc3BvbnNh YmxlOiBGZXJuYW5kbyBNYXJ0w61uZXogQ29zczAeFw0wOTA2MjUxNzU5MjNaFw0x MTA2MjUxNzU5MjNaMIHCMR8wHQYDVQQDFBZEU1YgQUlSICYgU0VBIFNBIERFIENW MR8wHQYDVQQpFBZEU1YgQUlSICYgU0VBIFNBIERFIENWMR8wHQYDVQQKFBZEU1Yg QUlSICYgU0VBIFNBIERFIENWMSUwIwYDVQQtExxEQUEwMjAyMThKWTEgLyBWQUdU NzAxMTI0UkEzMR4wHAYDVQQFExUgLyBWQUdUNzAxMTI0TURGTE5SMDMxFjAUBgNV BAsTDUNFTlRSTyBERUwgREYwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOok FjfALxz/3SUNduzm5rafZom55p5RujdTiRNRDSYx+sKGcRtuk2WVtmgZ4yXV3DFO PghAPvWJiItTexlAhhB1pUqxCIvcHoPLfVwlY+4cQJ89cgVng2/LRz2zxJjkOtB+ C3JLN1cWTpniSAtTlENd56MuTFdC1AAWn2oLryfnAgMBAAGjHTAbMAwGA1UdEwEB /wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBBQUAA4IBAQDSAqh45oVZhK9Q En605MctBanZqUF967LV5uLY1zRhaAf1IVnOVK2fcp/icvb2jm4vua7odjPBgkfs OhE8gOvgo6pmUlq2a2zakBTQpWSjK4hhvGyMqFi5J/OW5EXazWaQCh2fSlTcBo0v 7t2hsJd63TvnSNXAY7JiT7/i1rnhMUXa0deUapiPUAhQwo/kSb6cGM5nArbCaAjR 8oxXMd0EEXsekJBJHrj1txjzGJhfgaa5oy6ia19ubXsFONCjhoTF6yXTM1jFxtEy wFtpmIRHAiC43U525K9dkSB1Ql88GUSwtS9Is7AeFZ07b/W131MJ9zdJb00iYi13 x3QX9LIO -----END CERTIFICATE----- Mis sentencias de openssl utilizadas son: openssl x509 -in C:\DesencriptarSelloSAT\Config\PubKey\gencer.pem -pubkey -noout >C:\DesencriptarSelloSAT\Config\PubKey\pubkey.txt openssl enc -base64 -d -in C:\DesencriptarSelloSAT\Config\PubKey\sello.txt >C:\DesencriptarSelloSAT\Config\PubKey\sellobin.txt openssl dgst -md5 -verify C:\DesencriptarSelloSAT\Config\PubKey\pubkey.txt -signature C:\DesencriptarSelloSAT\Config\PubKey\sellobin.txt C:\DesencriptarSelloSAT\Config\PubKey\utf8.txt >C:\DesencriptarSelloSAT\Config\PubKey\resultado.txt Cualquier asesoría que me puedas proporcionar te la agradeceré, yo mientras le sigo buscando haber que encuentro, de antemano gracias. |
#8
|
|||
|
|||
Verificar el sello
OSCAR ::
Hice una copia de mi comentario de como verificar el sello en este foro en la categoria "OpenSSL en general" Tambien ahi acabo de redactar otra entrada que puede ayudarte un poco. |
#9
|
|||
|
|||
Mil gracias y ya valide el sello!!
Cita:
Que tal dado, nuevamente grraaaaaaaaaaaaaaaaaaaaaaciaaaaaaaaaaaaass por tu ayuda, you are the man!! jajaja, pues bien solucioné mi problema y ya puedo validar sellos en mi servicio, te explico cual era mi error, de hecho era bastante básico. Como sabes todos los xml recibidos se encuentran codificados con el head encoding="utf-8"? Pues bien yo al momento de leerlos, no me había dado cuenta que les convertía a ASCII,por que buscaba leerlos como ASCII no como UTF8 por lo tanto hacía esta conversión extraña de la que te comentaba, en la cual me cambíaba los acentos por símbolos como " ó ? una vez encontrado donde leía mi xml como ascii y cambiándolo para utf8, el problema quedó resuelto, por ende se generó la cadena original de manera correcta y dío un resultado de "Verified OK" para los que se marcan con esta codificación. Lo que hice para delimitar excepciones es un filtro previo de la estructura del xml, en el me sercioro primero que el archivo se encuentre codificado en utf-8 de lo contrario no entra a las demás validaciones, es bastante práctico ahora me encuentro validando otros puntos de la estructura del XML. Como son: > Namespaces bien referenciados > La referencia al xsd que seá correcta Etc, etc. No sabes en verdad como te puedo agradecer tu asesoría, que estes muy bien y pues voy a seguir agregando condiciones a mi validador, y manteniendote informado así puede que yo valide aspectos que a ti se te pasen ó viceversa, que estes muy bien amigo. Saludos. |
#10
|
||||
|
||||
Cita:
segun lo que aparece en: http://www.lacorona.com.mx/fortiz/sa...p#verificacion lo unico que tendriamos que hacer es volver a sellar la cadena original con el certificado incluido en la misma factura ¿no?
__________________
-- Salim Giacoman -- Torreon, Coahuila, Mx giacoman_salim@hotmail.com “Entre más aprendo, más quiero saber.
Entre más sé, más quiero aprender" Última edición por LordRiper fecha: 06-08-2010 a las 21:40:21. |
#11
|
|||
|
|||
Cita:
En mi caso solo conozco la que menciono, por eso no habia contestado tu mensaje, PERO, creo que mi estimado Fernando Ortiz (de la corona) esta vez si se equivoco en los terminos. Es IMPOSIBLE* volver a firmar la factura para ver si esta bien, el dice : Cita:
openssl dgst -md5 -verify 00002020.cer.pem -signature sello yo "dije"....... openssl dgst -md5 -verify "pubkey.txt" -signature "sellobin.txt" "cadoriginal.txt" >resultado.txt Como puedes ver es lo mismo, solo que mas revuelto. *IMPOSIBLE....bueno, no imposible, pero para volver a firmar un CFD necesitas que te proporcionen la (secreta) llave privada, y no creo que NADIE quiera darte su llave privada para "volver a firmar" y validar el CFD. Lo que dice Fernando Ortiz de La Corona, no esta bien "dicho", no puedes volver a firmar el CFD con la llave publica, es simple logica, si eso fuera posible entonces cualquiera podria sellar una factura y hacerla pasar por buena. |
#12
|
||||
|
||||
Solo para aportar un poco más al hilo ya que a todo interesado en el tema le va servir coloco los siguientes links:
El SAT ya tiene disponibles herramientas para validar los CFDs, tanto en línea como como aplicación de escritorio Este es uno Y este otro También desarrollo una aplicación web para emitir CFDs y está disponible de manera gratuita aquí, inclusive se puede acceder a una aplicación de prueba. No recuerdo si ya apareció en el hilo, pero uno de los requisitos del SAT para el contribuyente es que "lleve su contabilidad mediante un sistema de software" y que el registro contable se haga de manera "simultánea" en dichos sistema aunque más adelante especifica que se puede realizar dicho registro hasta 24 horas después de elaborado el CFD. Aquí hay un blog que habla del tema tanto por el lado del software (aunque sin llegar a detalles de programación) como del lado fiscal.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#13
|
||||
|
||||
Cita:
otra pregunta... ya tengo todo jalando bien, ahora necesito meter ADDENDAS... si estoy utilizando el cfdv2.pas que genera el Dephi, como le puedo hacer para "agregar" una adenda a ese esquema??
__________________
-- Salim Giacoman -- Torreon, Coahuila, Mx giacoman_salim@hotmail.com “Entre más aprendo, más quiero saber.
Entre más sé, más quiero aprender" |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mexico - Como crear sellos en FACTURA ELECTRONICA.. | pcicom | API de Windows | 12 | 10-11-2012 18:46:55 |
Factura Electrónica | aig | Varios | 13 | 10-12-2010 17:12:44 |
factura electronica | cmm07 | Varios | 4 | 02-04-2009 17:46:03 |
factura electronica | spia | Varios | 2 | 22-02-2009 21:30:06 |
Factura electronica AUNA | Aprendiz | Varios | 5 | 01-09-2005 10:44:15 |
|