Saludos a todos los que amablemente visitan este blog.
Antes que nada quiero pedirles una disculpa por no escribir durante más de una semana, como sabrán soy programador y bueno, últimamente la carga de trabajo ha estado un poco pesada, sin embargo no crean que me he olvidado de escribir.
Pues la noticia de esta semana es que he terminado de programar un modulo importante, este modulo trata de la llamada "Facturación Electrónica" y ahora es cuando entramos en la fase de pruebas y depuración.
Como todos saben, aquí en México quien regula el ámbito fiscal es el SAT.
Pues déjenme platicarles que este ha sido un gran reto, ha puesto a prueba muchas de mis habilidades (¿cuales? dirían muchos). Ha exprimido mi pequeño cerebro al máximo e incluso he llegado a sentir estrés, cosa que rara vez me pasa debido a los conocimientos que adquirí de una gran persona. Recuerdo que el me platico que nunca lleva el trabajo a su casa, cosa que he puesto en práctica y da muy buenos resultados, el estrés es mínimo debido a esta sana practica. Los fines de semana pasan sin ninguna preocupación y las horas fueras del trabajo realmente se disfrutan.
El formato es más o menos así. ||valor|valor1|valor2|…|valorn||.
Toda vez que la cadena original ha sido digerida al formato de MD5, entonces se procede a firmar el documento, para hacer esto el SAT específica que se use el algoritmo de encriptación RSA.
Ya que tenemos el MD5 ya firmado y encriptado en RSA se procede a convertirlo a en una cadena de caracteres imprimibles (ya que el RSA produce una cadena con caracteres y símbolos imprimibles/no imprimibles). Para hacer esto es necesario codificar la cadena en base 64 que genera una cadena más o menos así:
GqDiRrea6+E2wQhqOCVzwME4866yVEME/8PD1S1g6AV48D8VrLhKUDq0Sjqnp9IwfMAbX0ggwUCLRa+Hg5q8aYhya63If2HVqH1sA08poer080P1J6Z+BwTrQkhcb5Jw8jENXoErkFE8qdOcIdFFAuZPVT+9mkT b0Xn5Emu5U8=
Cuando obtengamos la cadena codificada en base64 el siguiente paso es anexarla al nodo “Comprobante” en el atributo “sello”.
Bien, a grosso modo, este es el proceso para realizar la facturación digital y como verán este modulito fue algo que me entretuvo un buen ratito aquí en la oficina.
Pero no crean aquí se acaba el circo, no, siempre hay algo mas, la temible “Addenda”, aquí quiero hacer un alto y decir que estoy en total desacuerdo con la “No estandarización de la addenda”. Imagínense que cada cliente tiene su propia manera de generar su Addenda, en varios formatos y tipos, en sí un p3dote.
Ya para finalizar listo las herramientas/lenguajes/programas que se usaron para la generación de este módulo con todo y Addenda válida.
· DREAMWEAVER CS3
· OPENSSL
· PHP
· PROGRESS
· XHTML
· XML
· XSD
· XSLT
Ahora sí a continuar con la fase de pruebas.
Hola:
ResponderBorrarEstoy en un proyecto de FE solo q en Navision pero tengo demasiadas dudas en cuanto a esto (soy novata) y agradeceria infinitamente tu ayuda por favor!!!!.
1ro. es indispensable que la cadena original se genere apartir del xml.??? yo estoy generando mi cadena apartir de los datos de mi comprobante (almacenados en las tablas)...
2do. el RSA que es lo que pide??? la llave publica que te da hacienda para encriptar y la llava privada para desencriptar?? no entiendo bien ese algoritmo espero me puedas explicar mas o menos como es este algoritmo... tengo el codigo en VB pero este te pide 1 password1 para encriptar y para desencriptar verifica que el password1 sea el mismo que introduces para desencriptar...
pd: espero darme a entender :D y tu ayuda :D GRACIAS estoy desesperada
dani_drh@yahoo.com.mx