Hola Estela, muchas gracias por tu gran aporte, pero descubrí que tengo una
versión de WSAA del 2011 y me comunique con Mariano Reingart para ver como
actualizarla y mediante esta nueva versión solucione el problema de
actualización. Gracias
Logo NMA
Norberto Mario Alvarez
NMA Systems
(011)-15-3061-0991
[email protected]
De: [email protected] [mailto:[email protected]] En nombre de Lic. Estela Lázaro
Enviado el: viernes, 2 de diciembre de 2016 13:16
Para: GUFA List Member
Asunto: [GUFA] WSAA.ObtenerTagXml("expirationTime")
Hola Norberto
En principio te cuento que yo para cada terminal tengo un punto de venta.
Te paso el código que uso (cambiale los directorios)
WAIT WINDOW "Se está recuperando información del WebService, Aguarde..." Nowait
Noclear
WSAA = CREATEOBJECT("WSAA")
ON ERROR DO errhand1
cualfecha=dtos(date())+"_"+strtran(time(),":","_")
** Para reutilizar TA 02/08/16
IF homo
archivo = cDtmp+ 'TAhomo.xml'
else
archivo = cDtmp+ 'TA.xml'
ENDIF
f = FOPEN(archivo)
IF f = -1 THEN
ta = "" && no existe el TA previo
ELSE
ta = FREAD(f, 65535)
IF Allt(gUsuar)="01"
? "TA leido:", ta
endif
=FCLOSE(f)
ENDIF
ok = WSAA.AnalizarXml(ta)
expiracion = WSAA.ObtenerTagXml("expirationTime")
? "Fecha Expiracion ticket: ", expiracion
IF ISNULL(expiracion)
solicitar = .T. && solicitud inicial
ELSE
solicitar = WSAA.Expirado(expiracion) && chequear solicitud previa
ENDIF
if solicitar
IF homo
*-- Generar el mensaje firmado (CMS)
*!* cms = WSAA.SignTRA(tra, cDtmp + "estela.crt", cDtmp + "privada.key") &&
Cert. Demo
cms = WSAA.SignTRA(tra,cDtmp+ "HomoE.crt", UDBSQL+SISDATASQL+ "PrivadaE.key")
&& Cert. Demo cDtmp +
*-- Llamar al web service para autenticar
cualhttps="https://wsaahomo.afip.gov.ar/ws/services/LoginCms" && Homologación
ta = WSAA.CallWSAA(cms, "https://wsaahomo.afip.gov.ar/ws/services/LoginCms") &&
Homologación
ELSE
*-- Generar el mensaje firmado (CMS)
*!* cms = WSAA.SignTRA(tra, cDtmp + "homo.crt", cDtmp + "homo.key")
cms = WSAA.SignTRA(tra, cDtmp +"Prod"+ALLTRIM(empresas.empgrupo)+".crt",;
cDtmp + "Prod"+ALLTRIM(empresas.empgrupo)+".key") &&Los certificados con nombre
de la empresa
*-- Llamar al web service para autenticar
cualhttps="https://wsaa.afip.gov.ar/ws/services/LoginCms" && Producción
ta = WSAA.CallWSAA(cms, "https://wsaa.afip.gov.ar/ws/services/LoginCms") &&
Producción
ENDIF
*-- Llamar al web service para autenticar
ta = WSAA.LoginCMS(cms)
*-- Grabo el ticket de acceso para poder reutilizarlo
*-- (revisar temas de seguridad y permisos)
f = FCREATE(archivo)
w = FWRITE(f, ta)
IF Allt(gUsuar)="01"
? "bytes escritos:", w, "descriptor", f
ENDIF
=FCLOSE(f)
ELSE
? "no expirado!", "Reutilizando!"
ENDIF
.....
Saludos
Lic. Estela Lázaro <https://ar.linkedin.com/pub/estela-l%C3%A1zaro/36/725/ab7>
D&SIP
Desarrollo y Servicios Informáticos Profesionales
<http://www.dsip.com.ar/> www.dsip.com.ar
Estela en LinkedIn <https://ar.linkedin.com/pub/estela-l%C3%A1zaro/36/725/ab7>
_____
De: Norberto Mario Alvarez <[email protected]>
Para: GUFA List Member <[email protected]>
Enviado: Viernes, 2 de diciembre, 2016 12:12:01
Asunto: [GUFA] WSAA.ObtenerTagXml("expirationTime")
Estimados Colisteros, para los que están utilizando las librerías de Sistemas
Agiles, la pregunta es la siguiente, intentando reutilizar el TA al ejecutar
WSAA.ObtenerTagXml("expirationTime") me tira un error de ole error code
0x80020006:
Tengo bien el reloj de la PC , no le encuentro la vuelta. Gracias por vuestra
atención
Norberto Alvarez
Socio # 1882