![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
La cadena original ya esta bien, la genero independiente al xml, es decir manualmente segun el anexo 20, e incluso ya compare la salida que lee el validador de el SAT contra la mía, y ya coinciden inclusive los MD5 generado.
el codigo para generar la cadena original es un poco larga, asi que demos por hecho que esta correcta, dado que la validacion la acepta: Cita:
ahora bien, regresando al uso de chilkat, si aun quieres verlo la reduccion la hago asi: Código:
Dim crypt As New ChilkatCrypt2 Dim wDigest As String ' La Salida de datos será en formato hexadecmal crypt.EncodingMode = "hex" '"base64" ' El Formato de conversión para caracteres especiales, será en "utf-8" como establece el SAT crypt.Charset = "utf-8" crypt.HashAlgorithm = "md5" Dim hashStr As String 'wCadOri es la variable que contiene la cadena original generada en otra funcion; y que introduzco en esta funcion como parametro hashStr = LCase(crypt.HashStringENC(Trim(wCadOri))) wDigest = hashStr 'contiene la cadena original digerida segun estandar SAT cuando generé el xml no inclui el valor certificado que es opcional. por lo cual en la validacion me pide el certificado(*.cer) y me genera la lectura. tengo duda si es forzoso que incluya el certificado en formato hex. Pero estoy casi seguro que el problema radica en el metodo de chilkat que empleo: EncryptStringENC(txt, usePrivateKey) SignStringENC(txt, "SHA-1"|"MD5"|"MD2"|"SHA-256"|"SHA-384"|"SHA-512" ) OpenSslSignStringENC(txt) estoy empezando a creer que debo emplear la tercera, pero parece que necesito investigar el modo de emplearla. Espero haberme explicado lo suficientemente bien. saludos y nuevamente sigo esperando comentarios NOTA DE EDICION: modifique el nombre del xml y la cadena original x contener informacion confidencial que no me pertenece. Aclaración: el codigo que empleo es una adaptacion a mis necesidades, originalmente proviene de los ejemplos que provee chilkat a sus clientes. Última edición por cknox fecha: 07-06-2010 a las 06:51:37. Razón: modificar informacion que es confidencial y no distribuible |
|
#2
|
|||
|
|||
|
exito!!!
Finalmente, despues de muchas horas, de leer codigos, referencias de cada uno de los activeX de chilkat, encontre iluminacion divina y me encontre con un tema llamado:"Duplicate openssl dgst -md5 -sign myKey.pem something.txt | openssl enc -base64 -A"
Cita:
colegas, chilkat funciona, y aunk mi codigo es vb6, se supone que es compatible con delphi como lo debio haber comprobado jourdan suerte a los demas. depues de todo cuando estudiaba mi primer lenguaje fue turbo pascal, y luego delphi |
|
#3
|
|||
|
|||
|
Addenda
Estoy usando el código publicado aquí con Delphi 2007, todo estaba bien hasta que intenté agragar una addenda a mi documento XML.
Lo hize de éste modo: CFD.Addenda := 'CADENA|ADDENDA'; Y delphi me devuelve un error: [DCC Error] Main.pas(767): E2129 Cannot assign to a read-only property Entonces lo hize de éste modo: CFD:Addenda.Text := 'CADENA|ADDENDA'; y delphi me lo genera bien, pero al validar en el SAT obtengo éste error: El sello del comprobante es válido: Se presentaron los siguientes errores al validar la estructura del comprobante \Bin\FacturaSello.xml Error: cvc-complex-type.2.3: Element 'Addenda' cannot have character [children], because the type's content type is element-only. ¿Alguién me puede orientar sobre cómo agregar la addenda sin obtener errores? |
|
#4
|
|||
|
|||
|
Saludos compañeros!
Estoy comenzando a desarrollar la facturacion electronica, no he logrado entender aun paso por paso cual es el procedimiento que pide el SAT, 1. Generar la cadena original 2. Generar xml 3. Sellar la cadena He ledio lo que pide hacienda pero no logro entender que se tiene que hacer primero, ya tengo perfectamente entendido que se necesita la key y el cer junto con la FEA, que sigue despues?. Desde ya, gracias por sus aportes! ![]() |
|
#5
|
|||
|
|||
|
Cita:
0. Procesas el Certificado que te da el SAT, de ahi obtienes la vigencia y el numero de serie 1. Generas el XML, con los datos de tu empresa, del cliente, de los productos o servicios y con el numero de serie del certificado y un monton de datos mas 2. A partir del XML generas la "Cadena Original" 3. La Cadena Original la digieres con MD5 4. La Digestion MD5 te arroja una cadena de caracteres hexadecimales, esta cadena la firmas usando la Llave Privada. Existen algunas librerias que hacen el paso 3 y 4 en una sola instruccion. 5. Normalmente la firma es binaria, tienes que convertirla a Base64 6. Ese sello se lo pegas al XML que generaste en el paso 1 voila....tienes tu factura digital (expresado en XML) Facil no? je je je Ya en serio, estos son los pasos, como ves si son un poco laboriosos y "obscuros". Yo ya tengo la solucion en Delphi 7. Si quieres mandame un mensaje a [email protected] para ver como te puedo ayudar mas. |
|
#6
|
|||
|
|||
|
Gracias DADO por la respuesta estaba buscando algo asi que me orientara por donde comenzar, si tengo problemas te enviare un correo o preguntare en el foro que tanto me a ayudado, gracias a una gran parte de este foro he logrado formar un ERP.
|
|
#7
|
||||
|
||||
|
AccesViolation
Saludos gente.. primero que nada muchisimas gracias por compartir sus conocimientos. Stoy muuuy cerca, pero aun tengo la bronca con Sello.pas, estoy usando Delphi6 y siempre truena, nomas no he podido encontrar el porque, ¿alguien tendra alguna pista? y otra: alguien tendra el sello correcto para los certificados de prueba y la cadena de prueba (la que el emisor es CONTRIBUYENTE PRUEBASEIS PATERNOSEIS MATERNOSEIS o Industrias del Sur Poniente, S.A. de C.V.)
__________________
-- Salim Giacoman -- Torreon, Coahuila, Mx [email protected] “Entre más aprendo, más quiero saber.
Entre más sé, más quiero aprender" Última edición por LordRiper fecha: 09-07-2010 a las 00:27:46. |
|
#8
|
|||
|
|||
|
Validador de Facturas Electronicas
Ya esta listo !!
En www.validacfd.com publique la version 0.1 del ValidaCFD, programa para validar Comprobantes Fiscales. Los invito (y hasta los reto) a que verifiquen sus CFD tanto los que han programado como los que reciben "dia a dia" de sus compras habituales. Otra noticia, debido al gran numero de preguntas que me han hecho por correo electronico he decidido crear ahi mismo (en www.validacfd.com ) un foro dedicado exclusivamente para factura electronica. Se que en este foro de Club Delphi se pueden encontrar muchas respuestas, pero como saben este es un foro de PROGRAMACION y muchas veces me preguntan cosas como ¿como tramito los folios? que no tiene nada que ver con Delphi. Asi que por alla los espero..Saludos. |
|
#9
|
|||
|
|||
|
Cita:
Yo tengo la "Addenda AMIS", es la que usan las empresas de Seguros como Mapfre, Zurich, Qualitas, etc etc Para que empresa estas tratando de implementar la Addenda?, hay decenas, Chedraui, Soriana, Chrysler, AMECE, Liverpool, etc etc y mas etc |
|
#10
|
|||
|
|||
|
Cita:
|
|
#11
|
|||
|
|||
|
Buscando la definicion de la addenda para PEMEX me encontre este documento
Y lo que alcanzo a ver es que esta Addenda, ES LA MAS FACIL que haya visto jamas (bueno, no he visto muchas, pero esta si es facil) Hay un ejemplo de la addenda : <Addenda>0047|2009|90309|T|137|GTT-0047|2009</Addenda> Asi que lo que estas haciendo es correcto :
Despues de todo los datos en el XML aparecen como deben ser y en la posicion que debe ser. Entonces mi teoria es que el validador del SAT "no sabe" interpretar esta Addenda y por eso marca error. Es mas, me atrevo a decir que el validador del SAT NO DEBERIA marcar error en NINGUNA ADDENDA, la misma ley dice que los datos de la addenda no son regulados por el SAT y son de formato libre. Lo que creo que esta pasando es que necesitas agregar el "namespace" de la Addenda Pemex. El namespace es la direccion donde se supone deberia estar la definicion de la addenda. Por ejemplo el namespace de la factura digital es : xmlns="http://www.sat.gob.mx/cfd/2" junto con otras dos que por ahi aparecen. Alguien del foro tendra una factura "real" de Pemex que haya pasado la validacion? Por cierto !!! www.validacfd.com.mx ya valio!!!! ![]() |
|
#12
|
|||
|
|||
|
Muchas gracias dado, espero que tu suposición sea correcta.
|
|
#13
|
|||
|
|||
|
Addenda de Qualitas
Alguien me puede ayudar con la Addenda de Qualitas, debido a que cuando la genero me marca un Error: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'ECFD y quisiera ver que es lo que tengo mal
PD mesquivelh tu haces mencion de que tienes la Addenda AMIS, me podrias ayudar |
|
#14
|
||||
|
||||
|
Cita:
__________________
Tiempo y ocasión acontecen a todos! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|