Post by rabarcaahora cambie todo el codigo para usar libxml[1] y xmlsec[2] para generar
Rechazado por Error en Firma [].
A ver, el rechazo por error en firma es porque el SII encuentra mal
firmado el EnvioDTE. Te comento que "algoritmo" he implementado en
algunos sistemas que funcionan bien para el SII:
1) Armar XML del DTE
2) Timbrarlo digitalmente utilizando la llave privada que entrega el SII
en el CAF (este error no lo tienes ahora, si no el mensaje diría que el
timbre está malo)
3) Firmar digitalmente el DTE utilizando un namespace=null, es decir la
URI que se pasa como segundo argumento al constructor de XMLSignature
(de xmlsec de apache en Java) es null. No olvides agregar el certificado
y la llave pública al DTE. (utilizar namespace=null era por un antiguo
problema que tenia el SII con los espacios de nombre de los Signature
que no estaban bien definidos para el DTE y para el EnvioDTE)
4) Luego armas el XML del EnvioDTE (carátula y otros datos), agregando
el DTE recién timbrado y firmado, pero le agregar el namespace al
principio, como atributo de DTE (xmlns="http://www.sii.cl/SiiDte")
5) Luego firmas digitalmente el EnvioDTE indicando el namespace en la
firma (en 3 no se usaba!) es decir la URI que se pasa como segundo
argumento al constructor de XMLSignature del EnvioDTE es
"http://www.sii.cl/SiiDte"
En los sistemas que he implementado, los XML luego de firmarlos
digitalmente, los almacenamos como arreglo de bytes en las bases de
datos, solo como medida de precaución.
Post by rabarca* Los valores de SignatureValue en *sus* ejemplos no cumplen *sus*
estandares (maximo 76 caracteres de ancho)
* Donde esta la llave publica del sii?
OK, enviaré estos dos comentarios. Entiendo que la llave pública puede
ser necesaria para realizar validaciones, pero no es estrictamente
necesaria para generar los DTE.
Post by rabarcaTengo muchas mas observaciones, pero ya me esta dando lata y lo unico
que puedo concluir de tratar de implementar el sistema de factura
electronica (y en general, el envio de documentos tributarios
electronicos), es que el tema fue visto a la rapida, o no se reviso con
cuidado. Un claro ejemplo de esto es la inconsistencia del nombramiento
de los tags.
El tema no fue visto a la rápida. Se trabajó bastante tiempo con un
grupo "representativo" de contribuyentes y un memorista del DCC definió
como debía funcionar el modelo e implementamos un prototipo en NIC
Chile. Luego el SII tomó el control (no sé si con externos o
desarrolladores internos) y los schemas quedaron no-estándar (cuando
sacaron los namespace) y tuvimos que modificar las rutinas de firma para
adaptarnos a lo malo que había.
Se hicieron muchos comentarios, tal como tu mencionas, de
inconsistencias en nombres de tag, que los schemas no cumplían con el
estándar, etc, pero todos esos requerimientos "técnicos" no importaban
mucho cuando se acercaba la fecha del lanzamiento con bombos y platillos
(presidente de la república incluido) del sistema.
Post by rabarcaNo es la primera vez que hago lo mismo (he hecho generadores/lectores de
varios formatos abiertos, incluso de algunos cerrados y documentados por
fuentes no oficiales), y es la primera vez que me encuentro con algo que
supuestamente deberia ser sencillo y facil de implementar, pero resulta
engorroso, tiene fallas y mas encima los ejemplos en los cuales te
deberias basar para hacer tus pruebas estan malos.
Por que crees que la cantidad de contribuyentes autorizados en factura
electrónica que *no son* del estado son tan pocos? creo que uno de los
factores son estas barreras técnicas que no deberían existir, junto con
los otros temas de fiscalización, aclarar el proceso de facturación,
modificación de procesos, etc.
Post by rabarcaHay alguna instancia formal donde poder acudir en caso de problemas?
porque ya fui una vez a una unidad del sii y me miraron como si fuera
extraterrestre...
Como yo estuve participando en el piloto de factura electrónica tengo
algunos contactos técnicos a los que les preguntaré si te pueden recibir
o por último si me permiten darte sus direcciones de email para que les
escribas y cooperes con mejorar este sistema.
Tengo un montón de anécdotas que me sucedieron mientras realizaba mi
memoria, que son difíciles de creer que suceda en un sistema de tanta
relevancia y en una institución tan "tecnológica" como el SII ;-)
Saludos,
--
José Urzúa Reinoso
http://jose.cl