Error al generar el Mensaje Formado (CMS)

772 views
Skip to first unread message

Carlos Sarochar

unread,
Apr 28, 2015, 9:38:28 PM4/28/15
to pyaf...@googlegroups.com
Buenas noches.

Estoy utilizando PyAfipWS en Visual FoxPro 9.0

Tengo el siguiente error al generar el CMS lanzado por WSAA:Excepcion

WindowsError: [Error 2] El sistema no puede encontrar el archivo especificado

La línea de comando es: 

cms = WSAA.SignTRA(tra, xarch_crt, xarch_key)

Parámetros pasados al método:

tra: Variable generada en un  paso anterior con la siguiente línea:
tra = WSAA.CreateTRA('wsfe',2400) conteniendo lo siguiente:

<?xml version="1.0" encoding="UTF-8"?><loginTicketRequest version="1.0"><header><uniqueId>1430269290</uniqueId><generationTime>2015-04-28T21:21:30</generationTime><expirationTime>2015-04-28T22:41:30</expirationTime></header><service>wsfe</service></loginTicketRequest>


xarch_crt: variable que contiene el siguiente String: "C:\SIGECOM\certificado.crt"
xarch_key: variable que contiene el siguiente String: "C:\SIGECOM\privada.crt"

Si verifico la existencia de ambos archivos con la función de VFP9 File(), me devuelve TRUE en ambos casos.
Verifico con el explorador de Windows y efectivamente los archivos existen en la carpeta indicada: C:\SIGECOM\

Estoy trabajando sobre Windows8 -  64 bits. 

¡¡¡ Por favor necesito ayuda urgente !!!!

Muchas gracias.

Mariano Reingart

unread,
Apr 28, 2015, 10:54:47 PM4/28/15
to pyaf...@googlegroups.com
2015-04-28 22:31 GMT-03:00 Carlos Sarochar <carlos....@gmail.com>:
Buenas noches.

Estoy utilizando PyAfipWS en Visual FoxPro 9.0

Tengo el siguiente error al generar el CMS lanzado por WSAA:Excepcion

WindowsError: [Error 2] El sistema no puede encontrar el archivo especificado

Habría que ver la traza (WSAA.Traceback), seguramente te da error al intentar a firmar con OpenSSL / M2Crypto 
 
La línea de comando es: 

cms = WSAA.SignTRA(tra, xarch_crt, xarch_key)

Parámetros pasados al método:

tra: Variable generada en un  paso anterior con la siguiente línea:
tra = WSAA.CreateTRA('wsfe',2400) conteniendo lo siguiente:

<?xml version="1.0" encoding="UTF-8"?><loginTicketRequest version="1.0"><header><uniqueId>1430269290</uniqueId><generationTime>2015-04-28T21:21:30</generationTime><expirationTime>2015-04-28T22:41:30</expirationTime></header><service>wsfe</service></loginTicketRequest>


Estaría todo ok.
 

xarch_crt: variable que contiene el siguiente String: "C:\SIGECOM\certificado.crt"
xarch_key: variable que contiene el siguiente String: "C:\SIGECOM\privada.crt"


La clave privada es .crt? generalmente se usa la extensión .key
 
Si verifico la existencia de ambos archivos con la función de VFP9 File(), me devuelve TRUE en ambos casos.
Verifico con el explorador de Windows y efectivamente los archivos existen en la carpeta indicada: C:\SIGECOM\

Estoy trabajando sobre Windows8 -  64 bits. 
 

Pablo Hachmann

unread,
Apr 29, 2015, 8:10:30 AM4/29/15
to pyaf...@googlegroups.com
Hola,

ese mismo error me dió cuando generé el instalador sin tener instalado OpenSSL y M2Crypto
El instalador se generaba ok, pero al instalarlo en otra PC, daba ese error.
Al instalar OpenSSL y M2Crypto en la pc donde se generaba el instalador, ya funcionó ok en las PCs donde se utilizaba el instalador.

Saludos
Pablo

Ariel Stechina

unread,
Apr 29, 2015, 8:24:57 AM4/29/15
to pyaf...@googlegroups.com
Tomo este hilo ya que el error en mi caso es exactamente el mismo y en el mismo lugar sólo que con vb6. Aporto algunos datos más para ver si se puede dar con la causa:
Tengo una pc virtual con xp y python 2.7 y todos los fuentes con Homo = False
Instalé todas las dependencias para python 2.7 (puedo generar el instalador)
Probé ejecutarlo desde el fuente con python wsaa.py --register y tampoco funciona
Probé hacer todo con venv y setup.bat con mismo resultado
Pego mi traceback:
Traceback (most recent call last):
  File "C:\pyafipws-master\utils.py", line 151, in capturar_errores_wrapper
    return func(self, *args, **kwargs)
  File "C:\pyafipws-master\wsaa.py", line 181, in SignTRA
    return sign_tra(str(tra),cert.encode('latin1'),privatekey.encode('latin1'),passphrase.encode("utf8"))
  File "C:\pyafipws-master\wsaa.py", line 109, in sign_tra
    stdin=PIPE, stdout=PIPE, stderr=PIPE).communicate(tra)[0]
  File "C:\Python27\Lib\subprocess.py", line 710, in __init__
    errread, errwrite)
  File "C:\Python27\Lib\subprocess.py", line 958, in _execute_child
    startupinfo)
WindowsError: [Error 2] El sistema no puede hallar el archivo especificado


--
Has recibido este mensaje porque estás suscrito al grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+u...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a pyaf...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/pyafipws.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Pablo Hachmann

unread,
Apr 29, 2015, 9:38:04 AM4/29/15
to pyaf...@googlegroups.com
Seguro que instalaste OpenSSL y M2Crypto?
Como escribia antes, sin instalarlos se puede generar el instalador sin problemas, pero da ese error cuando se utiliza SignTRA

Aca dejo detallo todos los pasos de instalación:

Para poder compilar el projecto (y poder pasarlo a modo produccion)
toda la documentación está en
https://code.google.com/p/pyafipws/wiki/InstalacionCodigoFuente#Windows

Acá detallo el procedimiento para Python 2.7.9

Yo usé una máquina virtual (con virtualbox + vagrant) para el desarrollo,
pero se puede instalar todo esto en la PC fisica de desarrollo.

En mi caso instalé python en el raiz del C (c:\python27)
y cada vez que invoco a python uso c:\python27\python.exe, pero si al instalarlo se le indica que lo incluya en el path,
luego de reiniciar la PC alcanza con invocarlo sin el path (ej: 'python setup.py install')

En mi caso bajé todos los fuentes en una carpeta c:\pyafip



Instalar:
0) instalar mercurial (para poder bajar los fuentes y el instalador saca las VC runtime del mercurial, se podria obviar y usar los fuentes de los zip de     la página, pero habria que instalar las runtimes de VC en forma separada en las PC donde se use el instalador que vamos a generar, ya que el mismo no
    las contendría. Otra opción es no usar mercurial y tocar el setup.py para que incluya las runtime desde otra carpeta)


- Bajar fuentes del repositorio
    - bajo fuentes pyafipws
    hg clone https://pyafipws.googlecode.com/hg/ c:\pyafip\source
    (o usar fuentes del zip que está en la página)
   
    - bajo fuentes de  simpleSOAP
        hg clone https://code.google.com/p/pysimplesoap/ c:\pyafip\pysimplesoap
        cd pysimplesoap
        hg update reingart  (esta es la rama correcta)
        o usar pysimplesoap-reingart.zip

        Nota: se recomienda actualizar a la rama reingart ya que la versión de desarrollo tiene algunos temas
             menores de incompatibilidad por nuevas características que se han agregado y están en revisión.
             Ejecutar hg update reingart como se indica antes de llamar a setup.py

    - bajo fuentes de pyfpdf
        hg clone https://code.google.com/p/pyfpdf/ c:\pyafip\pyfpdf


1) instalo python

2) instalo simpleSOAP
    cd c:\pyafip\pysimplesoap
    c:\python27\python.exe setup.py install

3) instalo pywin32-219.win32-py2.7.exe
4) instalo httplib2-0.9.win32.exe

8) instalo fpdf
    cd c:\pyafip\pyfpdf
    c:\python27\python.exe setup.py install

9) instalo soporte para codigo de barras
NO usar    PIL-1.1.7.win32-py2.7.exe
usar pillow, instalar ejecutando el siguiente comando:
pip install pillow

10) copio logo.png a c:\pyafip\source\plantillas (cualquier png que se usará como logo, no se porque no lo baja)


11) instalo Visual C++ redistribuible (vcredist_x86.exe, OJO, solo versión 9.0.21022 que es la compatible con python27)
12) instalo openssl 1.0.1 (Win32OpenSSL_Light-1_0_1m.exe)
13) instalar M2Crypto-0.21.1.win32-py2.7.exe





Generación de Instalador

Ojo, en el setup.py tube que cambiar el path del mercurial de c:\Program files a C:\Archivos de programa
para que copie las Microsoft c++ distributable ya que mi windows está en español

Para poder generar un instalador se deben instalar los siguientes programas:

1) Instalar py2exe (py2exe-0.6.9.win32-py2.7.exe)
2) instalar utilitario para generar instalador (nsis-2.46-setup.exe)


Para generar los nuevos instaladores revisar el script de instalación setup.py y comentar los módulos que no se desean incluir
En mi caso sólo dejé:
import wsaa
import wsfev1, rece1
import pyfepdf

 y para generar el instalador ejecutar:
cd c:\pyafip\source
c:\python27\python.exe setup.py py2exe

Si se desea compilar en modo producción, en cáda módulo que se hizo import (wsaa.py, wsfev1.py, rece1.py y pyfepdf.py en mi caso)
cambiar
HOMO = True
por
HOMO = False


Espero les sea de utilidad

Saludos
Pablo

Ariel Stechina

unread,
Apr 29, 2015, 10:37:05 AM4/29/15
to pyaf...@googlegroups.com
Gracias por tu detallada respuesta, pero ya había hecho todo eso, lo único que no hice es bajar los fuentes de https://code.google.com/p/pysimplesoap/, ahora lo intenté pero parece que no funciona, no descarga nada. Uso todos los instaladores que está en la columna para python 2.7 de https://code.google.com/p/pyafipws/wiki/InstalacionCodigoFuente#Windows.
Volvi a bajar OpenSSL 1.01m (tenía la 1.01l) pero sigue saliendo el mismo error

vcredist_x86.exe (ingles y español), tambien instale mercurial
Tambien M2Crypto-0.22.3.win32-py2.7.exe
De todas formas con venv y setup.bat por lo que entiendo del instructivo no requiere nada de esto, solo el python 2.7, sin embargo tampoco funciona


--

Carlos Sarochar

unread,
Apr 29, 2015, 1:34:56 PM4/29/15
to pyaf...@googlegroups.com
Buen día Mariano.

Muchas gracias por la pronta respuesta!!!

Evidentemente me faltaban instalar algunas dependencias.
Lo que hice fue desinstalar todo y arrancar de cero.
Python 2.7.9 amd64 y todas las dependencias, .

Ahora genera correctamente el CMS, con lo cual he avanzado un paso

Pero ahora tengo otro problema al obtener TOKEN y SIGN. 
Creo que el error es con los certificados que estoy utilizando.

Transcribo lo que arroja WSAA.Excepcion

            ns1.cms.cert.untrusted: Certificado no emitido por AC de confianza.

Te comento que hace un tiempo que estoy enviando los pedidos a AFIP (webse...@afip.gob.ar) y no me han respondido (deben estar colapsados), por lo que estoy utilizando un certificado y clave que yo había generado el año pasado cuando estuve haciendo algunas pruebas.
Evidentemente debe haber algún error en ese certificado o clave.

¿Puede ser que desde Afip se estén demorando para responder los pedidos para homologación?
¿Hay alguna otra manera de generarlos sin tener que depender de la respuesta de AFIP?

Muchas gracias Mariano.

Saludos.

Pablo Hachmann

unread,
Apr 29, 2015, 4:59:07 PM4/29/15
to pyaf...@googlegroups.com
Ariel,

lo único que se me ocurre es que desinstales todo y comiences de 0. (desisntala todos los componentes de python y borra los directorios donde se instalaron, o desisnatal python tambien y borra el directorio)
Me ha pasado con python de desinstalar un modulo pero que deja archivos y no andan bien las cosas..
No se, no soy experto en python, pero hasta que deje todo andando tube que hacer varias pruebas.
Lo ideal seria que te crees una maquina virtual y arranques de 0.
Y respecto al simplesoap, si, creo que la ultima vez que lo instalé tampoco andaba el repositorio. Usa los fuentes de pysimplesoap-reingart.zip

pero casi seguro que es algo mal instaldo del OpenSSL y M2Crypto


Saludos
Pablo



El martes, 28 de abril de 2015, 22:38:28 (UTC-3), Carlos Sarochar escribió:

Ariel Stechina

unread,
Apr 30, 2015, 8:46:42 AM4/30/15
to pyaf...@googlegroups.com
Bien, comencé de cero en un nuevo xp en una pc virtual e instalé nuevamente todos los módulos y ahora si anduvo con el instalador generado.
Muchas gracias

--

SERGIO Padin

unread,
Apr 30, 2015, 5:05:35 PM4/30/15
to pyaf...@googlegroups.com
Carlos, fijate en el certificado que tenes si lo abris con windows te dice la fecha de vencimiento, si no esta vencido los de afip no te generan uno nuevo

Alejandro Ayunta

unread,
Feb 23, 2016, 6:02:29 PM2/23/16
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Estimado Carlos

Pudiste instalar pyqfipws sobre win 64 bits? estoy teniendo problemas con las librerias y no puedo avanzar.

Alejandro


El martes, 28 de abril de 2015, 22:38:28 (UTC-3), Carlos Sarochar escribió:
Reply all
Reply to author
Forward
0 new messages