Evidencia técnica — Integración GPS Followme ↔ Recurso Confiable (Walmart)

Prestador: GpsNetic / GpsFollowme (proveedor 10653) · Elaborado: 25-ago-2026, 12:00 hrs CDMX · Documento de referencia: "Documento de Integración Proveedor GPS con WALMART" (16 págs.)
Resumen ejecutivo. El consumo del método GetUserToken desde nuestro servidor llega íntegro y bien formado al servicio de Recurso Confiable (el propio servicio nos devuelve el usuario recibido, sin alteración, en message_args). La respuesta es SQL:USERUNK, code 2004, que según la página 13 del documento de integración significa "Usuario no encontrado" — un error distinto al de contraseña incorrecta. Conclusión: el usuario wm_10653_folowme no se encuentra activo en la base de datos que consulta el servicio público gps.rcontrol.com.mx/Tracking/wcf/RCService.svc. Todo lo verificable del lado del prestador fue auditado y se documenta abajo, con los comandos para reproducir cada prueba.

1 · Lo que se verificó del lado del prestador

#VerificaciónMétodoResultado
1Endpoint correcto según documentación (pág. 3)Comparación literal + WSDL CORRECTO el WSDL público declara exactamente http://gps.rcontrol.com.mx/Tracking/wcf/RCService.svc y soapAction http://tempuri.org/IRCService/GetUserToken
2Credenciales sin espacios, tabs o caracteres invisiblesAuditoría byte por byte (códigos ASCII de cada carácter) LIMPIAS usuario 16 chars, contraseña 14 chars, 100% ASCII imprimible
3Resolución DNS (descartar servidor viejo/caché)3 resolvers independientes (local, Google 8.8.8.8, Cloudflare 1.1.1.1) CONSISTENTE los tres devuelven 136.119.36.152
4Proxies o intermediarios en la salidaInspección de ambiente + cabeceras de respuesta NINGUNO conexión directa; la respuesta viene de la aplicación WCF sin CDN/WAF intermedio
5Formato del XML y del protocoloSe reprodujo el envelope de SoapUI del equipo de RC byte por byte (incluidos los comentarios <!--Optional:-->), SOAPAction con y sin comillas, cabeceras idénticas a SoapUI EQUIVALENTE misma respuesta en todas las variantes
6Variante HTTPS (pág. 3 indica https)POST a https://gps.rcontrol.com.mx/... 404 el binding del servicio solo responde por http; incluso el WSDL servido por https declara la dirección http
7¿La petición llega íntegra al servicio?Lectura de message_args en la respuesta del propio servicio el servicio devuelve wm_10653_folowme tal cual, sin corrupción — la petición llega perfecta hasta su capa de datos

2 · Matriz de combinaciones probadas (25-ago-2026, 11:05–11:50 CDMX)

UsuarioContraseñaRespuesta del servicioLectura según doc. pág. 13
wm_10653_followme (doble L)NSTT_•••••••$2CGI:USERUNK · 4020rechazo en capa de entrada
wm_10653_followme (doble L)wNQx_•••••••$9CGI:USERUNK · 4020rechazo en capa de entrada
wm_10653_folowme (una L)NSTT_•••••••$2SQL:USERUNK · 2004"Usuario no encontrado" — la única combinación que llega hasta la consulta en base de datos (layer=SQL)
wm_10653_folowme (una L)wNQx_•••••••$9CGI:USERUNK · 4020rechazo en capa de entrada

Contraseñas enmascaradas por seguridad (el equipo de RC las conoce). El cambio de capa CGI → SQL con el usuario de una sola L indica que esa es la forma registrada del usuario, y que el flujo completo funciona — hasta que la base no lo encuentra.

3 · Evidencia cruda: petición y respuesta reales

Petición enviada (25-ago-2026 12:00 CDMX, desde IP 207.244.239.84):

POST http://gps.rcontrol.com.mx/Tracking/wcf/RCService.svc
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/IRCService/GetUserToken"

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
 <soapenv:Header/>
 <soapenv:Body>
  <tem:GetUserToken>
   <tem:userId>wm_10653_folowme</tem:userId>
   <tem:password>NSTT_•••••••$2</tem:password>
  </tem:GetUserToken>
 </soapenv:Body>
</soapenv:Envelope>

Respuesta recibida (íntegra, sin editar):

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetUserTokenResponse xmlns="http://tempuri.org/">
<GetUserTokenResult xmlns:a="http://schemas.datacontract.org/2004/07/IronTracking" ...>
<a:exception xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
  <b:Key>key</b:Key>      <b:Value>SQL:USERUNK</b:Value>
  <b:Key>code</b:Key>     <b:Value>2004</b:Value>
  <b:Key>severity</b:Key> <b:Value>User</b:Value>
  <b:Key>layer</b:Key>    <b:Value>SQL</b:Value>
  <b:Key>message</b:Key>  <b:Value>Autentificación incorrecta (Usuario, Contraseña o Token).</b:Value>
  <b:Key>message_args</b:Key> <b:Value>wm_10653_folowme</b:Value>  ← el usuario llegó ÍNTEGRO
</a:exception>
<a:token i:nil="true"/>
...

4 · Lo que dice la documentación oficial

💡 La pieza que falta: el usuario wm_10653_folowme genera token en las pruebas internas del equipo de RC, pero el servicio público responde "usuario no encontrado" a peticiones externas que llegan íntegras. Sugerimos revisar si el alta del usuario está activa/sincronizada en la base de datos que consulta el servicio público, o si existe un paso de activación pendiente (ambiente, réplica o vigencia).

5 · Cómo reproducir cada prueba (copiar y pegar)

Desde cualquier terminal con curl (sustituir LA_CONTRASEÑA):

curl -s http://gps.rcontrol.com.mx/Tracking/wcf/RCService.svc \
 -H "Content-Type: text/xml; charset=utf-8" \
 -H 'SOAPAction: "http://tempuri.org/IRCService/GetUserToken"' \
 --data '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"><soapenv:Header/><soapenv:Body><tem:GetUserToken><tem:userId>wm_10653_folowme</tem:userId><tem:password>LA_CONTRASEÑA</tem:password></tem:GetUserToken></soapenv:Body></soapenv:Envelope>'

Ejecutado dentro de la red de RC vs desde internet, este mismo comando permite comparar en segundos si el comportamiento depende del origen o del estado del usuario en base.

6 · Datos para búsqueda en logs de RC

DatoValor
IP de origen del prestador (fija)207.244.239.84
Fecha/horas de los intentos25-ago-2026 · 11:05, 11:08, 11:10, 11:20–11:50 y 12:00 hrs CDMX
Método consumidoGetUserToken (SOAP 1.1, Content-Type text/xml)
Usuarios probadoswm_10653_folowme y wm_10653_followme
Estado del prestadorIntegración terminada y certificada internamente (validación por unidad, bitácora de request/response conforme al Anexo 2, reintentos de token). Lista para transmitir 24/7 en cuanto el token sea otorgado.