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 
NoclearWSAA = CREATEOBJECT("WSAA") ON ERROR DO errhand1
cualfecha=dtos(date())+"_"+strtran(time(),":","_")
** Para reutilizar TA 02/08/16IF homo archivo = cDtmp+ 'TAhomo.xml'else archivo 
= cDtmp+ 'TA.xml'ENDIF f = FOPEN(archivo)  IF f = -1 THEN ta = "" && no existe 
el TA previoELSE ta = FREAD(f, 65535) IF Allt(gUsuar)="01" ? "TA leido:", ta 
endif =FCLOSE(f)ENDIFok = WSAA.AnalizarXml(ta)expiracion = 
WSAA.ObtenerTagXml("expirationTime")? "Fecha Expiracion ticket: ", expiracion
IF ISNULL(expiracion) 
    solicitar = .T.          && solicitud inicialELSE solicitar = 
WSAA.Expirado(expiracion) && chequear solicitud previaENDIFif 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ázaroD&SIP
Desarrollo y Servicios Informáticos Profesionales
www.dsip.com.ar 
Estela en LinkedIn

      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")
   
<!--#yiv0769479065 _filtered #yiv0769479065 {font-family:"Cambria 
Math";panose-1:2 4 5 3 5 4 6 3 2 4;} _filtered #yiv0769479065 
{font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;} _filtered #yiv0769479065 
{font-family:Tahoma;panose-1:2 11 6 4 3 5 4 4 2 4;} _filtered #yiv0769479065 
{font-family:Verdana;panose-1:2 11 6 4 3 5 4 4 2 4;}#yiv0769479065 
#yiv0769479065 p.yiv0769479065MsoNormal, #yiv0769479065 
li.yiv0769479065MsoNormal, #yiv0769479065 div.yiv0769479065MsoNormal 
{margin:0cm;margin-bottom:.0001pt;font-size:11.0pt;font-family:"Calibri", 
"sans-serif";}#yiv0769479065 a:link, #yiv0769479065 
span.yiv0769479065MsoHyperlink 
{color:blue;text-decoration:underline;}#yiv0769479065 a:visited, #yiv0769479065 
span.yiv0769479065MsoHyperlinkFollowed 
{color:purple;text-decoration:underline;}#yiv0769479065 
p.yiv0769479065MsoAcetate, #yiv0769479065 li.yiv0769479065MsoAcetate, 
#yiv0769479065 div.yiv0769479065MsoAcetate 
{margin:0cm;margin-bottom:.0001pt;font-size:8.0pt;font-family:"Tahoma", 
"sans-serif";}#yiv0769479065 span.yiv0769479065EstiloCorreo17 
{font-family:"Calibri", "sans-serif";color:windowtext;}#yiv0769479065 
span.yiv0769479065TextodegloboCar {font-family:"Tahoma", 
"sans-serif";}#yiv0769479065 .yiv0769479065MsoChpDefault {} _filtered 
#yiv0769479065 {margin:70.85pt 3.0cm 70.85pt 3.0cm;}#yiv0769479065 
div.yiv0769479065WordSection1 {}-->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 AlvarezSocio # 
1882  

   

Responder a