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