Hola Estela, que versión tenés del WSAA ¿

Gracias

 

Norberto Alvarez

Socio # 1882

 

 

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

 

 

Responder a