Movistar, efactura, pk7 y linux: una solución

+1
0
-1

Bueno, pues estreno esta bitácora con una problema que logré solucionar ayer, pero entiendo, ante la ausencia de soluciones en google, que a alguien le puede interesas.
Desde hace un tiempo, Movistar pone a disposición de sus cliente las facturas es un archivo con extensión .pk7; para abrirlas ofrecen un programa para Win32, por supuesto.
El resto no tendríamos mayores problemas si esta compañía hubiese colgado por su web lo siguiente:
"El pdf que contiene la factura esta en codificado en base64 2 veces"

Ese es todo el misterio: solo hay que descodificar el bloque ASCII, lo que nos dará un segundo bloque ASCII que, una vez descodificado, da el PDF en binario.

Aún no se en que momento hay que verificar la firma (que está en codificada en base64 pero solo una vez), pero averiguarlo es solo probar...

Estoy haciéndome un script, para automatizar la tarea, que me da vergüenza publicar (soy un zarrapastroso programando), pero si a alguien le interesa, le pongo algún comentario y lo publico.

Comentarios

Imagen de pipepool

Buenas,

no tengo contratado Movistar pero creo que sí deberías publicar ese script pq hay mucha gente que no sabe bash y a la que le podría resultar útil. Yo tb hago scripts para ciertas tareas que considero que podrían ser de interés para gente, pero me sucede lo mismo que a ti...

A lo mejor habría que plantearse crear una sección en la web para scripts y que la gente tuviera un sitio donde colgarlos y bajarlos. Ahora mismo se están discutiendo una serie de reformas, así que a lo mejor lo planteo de paso.

Un saludo.

Imagen de kelp

Está muy bien que crees ese script para que otros puedan utilizarlo, pero también estaría bien enviar una carta a movistar para que proporcione sus facturas en formatos a los que cualquiera pueda acceder, porque sinceramente, qué es eso de pk7? nunca lo había escuchado...

Mira que lo hacen difícil, con enviarlo en pdf se acabó el problemón.

Aun así, buena iniciativa la tuya :)

Mi blog: http://aceitunassinhueso.com

Las tres cosas más peligrosas del mundo son: un programador con un soldador, un ingeniero de hardware con un parche de software y un usuario con una idea

Imagen de Anónimo

yo tengo windows i no puedo abrir mi e-factura..

Imagen de pmg

Hola.

No tengo movistar y ahora tampoco telefónica, pero cuando tenia telefonica el problema de las facturas en linux se hacia asi.

"Para acceder a la factura firmada desde Linux es necesario tener instalado
openssl (una implementación de código libre de SSL V2/3 y TLS y librería de
criptografía de propósito general).

Estas librerías pueden descargarse de http://www.openssl.org

Una vez instalada esta librería se debe proceder a la descarga de los archivos
de factura firmados digitalmente. Son archivos con extensión fp7 y pueden
obtenerse desde Telefonicaonline en la página de descarga de facturas.

En Linux es necesario descargarlos a un archivo local.

Este archivo cumple el estándar y dentro se encuentra encapsulado el archivo
pdf y la firma de Telefónica.

Para validar la firma es necesario tener el Certificado de Telefónica, que
puede descargarse en:

http://www.telefonicaonline.com/on/es/archivos/cer/fnmt.cer

Suponiendo que el archivo descargado de factura sea factura.fp7

el comando que debe ejecutarse en Linux es el siguiuente:

openssl smime -verify -in factura.fp7 -inform DER -CAfile fnmt.cer -out
factura.pdf

Ejemplo de ejecución:

XXX:/tmp$ openssl smime -verify -in factura.fp7 -inform DER -CAfile fnmt.cer
-out factura.pdf
Verification Successful
XXX:/tmp$ ls -l *pdf
-rw-r--r-- 1 XXX users 24574 Jan 29 09:30 factura.pdf

Este comando validará la firma y extraerá el archivo factura.pdf que puede ser
visualizado por cualquier visor de pdf.

No obstante, el archivo original: factura.fp7 es el único que tiene validez
legal y el que debe almacenarse en caso de tener que validarlo con la Agencia
Tributaria."

Imagen de gavsys

Muchas gracias, funciono a la primera en debian. Buena receta.

Imagen de jaconbue

¡Muchas gracias! Me ha sido muy útil en Molinux 4.2.


Cada problema es una oportunidad.

Cada problema es una oportunidad.