
Limpieza y validación de números de teléfono para el comercio electrónico
Tiempo de lectura: 7 minutos
Introducción
La calidad y la validez de los números de teléfono son problemas discretos pero persistentes en el comercio electrónico. Los números recopilados al finalizar la compra suelen estar mal formados, tener un formato inconsistente o pertenecer a líneas que no pueden recibir SMS, y normalmente no te das cuenta hasta que se devuelve una notificación de entrega.
Este artículo explica cómo depurar los datos de números de teléfono utilizando el formato «insight» (normalizar cada número al formato E.164) y, a continuación, validarlos con el current_carrier insight (confirmar que el número es un móvil capaz de recibir SMS con normalidad). La API de Identity Insights de Vonage devuelve tanto un número depurado como la confirmación de que es apto para SMS en una única llamada a la API. El uso conjunto de la información sobre el formato y el operador actual que proporciona la API de Identity Insights te permite depurar cada número al formato E.164 antes de que llegue a tu base de datos y confirmar que es un número de móvil antes de utilizarlo para el envío de comunicaciones.
Fallos en la desinfección y la validación
Una situación habitual en el backend es aquella en la que un cliente, al rellenar el formulario de pago, introduce su número de teléfono en el formato que le resulte más natural y confirma el pedido. El campo de entrada HTML5 de tipo «teléfono» lo acepta. La expresión regular del lado del servidor comprueba que tenga diez dígitos. El pedido se guarda en la base de datos, se envía un correo electrónico de confirmación y se envía un SMS de entrega.
Entonces no ocurre nada: no se registra ningún error, no se activa ningún reintento ni se envía ninguna alerta. Unos días más tarde, el cliente abre un ticket de asistencia preguntando dónde está su pedido. Una consulta del tipo «WISMO» (Where Is My Order, «¿Dónde está mi pedido?») que le cuesta a tu equipo tiempo y dinero, y que se podría haber evitado por completo. El fallo tiene dos causas ocultas:
Un error de validación: el número se almacenó en formato nacional (4155551234) en lugar de en formato E.164 (+14155551234).
Error de validación: aunque el formato fuera correcto, el número pertenece a un teléfono fijo o a un número que antes era de móvil y que el mes pasado se transfirió a un operador de telefonía fija. Tu expresión regular detecta diez dígitos y lo acepta. Una tabla de consulta estática identifica la asignación original del operador y lo clasifica como «móvil». El SMS se queda en la cola de entrega y acaba siendo devuelto, sin llegar nunca al teléfono del cliente.
Validación del número de teléfono
La validación de un número de teléfono consiste en confirmar que una secuencia de dígitos es un número de teléfono real y localizable, al que se puede enviar un SMS o realizar una llamada de Voice. Más información sobre la validez de los números de teléfono.
La expresión regular detecta una longitud de dígitos incorrecta, caracteres que no son dígitos y la falta del prefijo de zona. La expresión regular no distingue entre números de móvil y de fijo, ni entre números virtuales y de VoIP.
Resultados de la API de búsqueda de operadores y de información sobre la identidad
Una consulta de operador es una consulta que se realiza al gráfico de enrutamiento en tiempo real de la red móvil para averiguar qué operador es el titular actual de este número y de qué tipo de línea se trata. Puedes consultar la Referencia de la API de Identity Insights para obtener información sobre los campos clave que devuelven las llamadas a la API de Identity Insights. Una respuesta correcta tiene este aspecto:
{
"request_id": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"insights": {
"format": {
"country_code_iso2": "GB",
"country_name": "United Kingdom",
"number_international": "+447700900000",
"number_national": "07700 900000",
"is_format_valid": true,
"status": { "code": "OK", "message": "Success" }
},
"current_carrier": {
"name": "EE",
"network_type": "MOBILE",
"country_code": "GB",
"network_code": "23430",
"status": { "code": "OK", "message": "Success" }
}
}
}Nota: a diferencia de los datos analíticos basados en la red, como el «SIM Swap» o la «Verificación de ubicación», el
formatycurrent_carrierno requieren la aprobación del Registro de Redes. Están disponibles en todo el mundo sin necesidad de una incorporación adicional por parte del operador.
Primeros pasos con la API de Identity Insights
La forma más rápida de verlo en acción es a través de la tutorial de introducción a Identity Insights del panel de control de Vonage. Introduce cualquier número de teléfono, selecciona format y current_carrier, y verás la respuesta en tiempo real. También hay un modo de demostración con Numbers predefinidos si quieres explorar la función sin utilizar un número real y ver la respuesta en tiempo real. También hay un modo de demostración con Numbers predefinidos si quieres explorar la función sin utilizar un número real.
Getting Started with Identity Insights
Configurar Identity Insights en un proyecto de Node.js
Podrías poner en práctica la teoría que has aprendido hoy y normalizar el número al formato E.164, confirmar que se trata de un número de móvil antes de poner en cola el SMS de entrega e integrar el paso de validación en un proceso de pago rápido. Disponemos de un SDK de Vonage Identity Insights para Node.js. Consulta la documentación de la API de Vonage Identity Insights y el SDK de Identity Insights para Node.js para obtener la referencia completa del SDK.
Preguntas frecuentes
P1. ¿Cómo puedo autenticarme en la API de Identity Insights?
La API de Identity Insights utiliza la autenticación JWT a través de una aplicación de Vonage. Crea una aplicación en el panel de control de Vonage, descarga la clave privada e inicializa el SDK con tu applicationId y la ruta a tu private.key archivo. Esto difiere del modelo de clave y secreto de API utilizado por las API más antiguas de Vonage.
Pregunta 2. ¿Por qué la API de Identity Insights devuelve un operador diferente al de mi biblioteca de validación de teléfonos actual?
La API de Identity Insights consulta datos en tiempo real sobre el enrutamiento de los operadores, no una tabla estática de asignación de rangos de números. Si un cliente ha portado su número de un operador de telefonía fija a uno de telefonía móvil desde la última actualización de tu biblioteca estática, la API de Identity Insights devuelve el operador actual, mientras que la biblioteca estática devuelve el original. En el caso de los números portados, current_carrier la respuesta de la API es siempre la válida.
Pregunta 3. ¿Puedo utilizar la Number Insight API para validar números de teléfono internacionales durante el proceso de pago?
Sí. La Number Insight API admite números de todo el mundo. Introduce el número en formato E.164 (con el + prefijo y el código de país) para obtener los mejores resultados. El format.number_international campo de la respuesta te proporciona la versión E.164 normalizada, independientemente de cómo haya escrito el cliente el número al finalizar la compra.
Pregunta 4. ¿El hecho de llamar a la API de Identity Insights durante el proceso de pago ralentiza el envío del formulario de pago?
Una llamada típica tarda entre 200 y 500 ms en completarse. Ejecútala en el servidor después de que el cliente haga clic en «Enviar» y antes de escribir en la base de datos. Almacena el resultado en caché en la sesión para que no se realice la llamada dos veces si el cliente vuelve a introducir el mismo número de teléfono en la misma sesión. Añade un tiempo de espera adecuado y una solución alternativa que permita completar el proceso de pago incluso si el servicio no está disponible temporalmente.
Conclusión
Si los números de teléfono no se depuran y validan adecuadamente, los equipos de comercio electrónico pueden verse afectados de muchas formas. Las llamadas al servicio de atención al cliente relacionadas con «¿Dónde está mi pedido?» (WISMO) pueden dispararse, y las devoluciones de cargo aumentan cuando los números de teléfono almacenados al finalizar la compra tienen un formato incorrecto o cuando los números fijos se hacen pasar por móviles.
Al trabajar con las API de Vonage, asegúrate de que tu proceso de pago normalice el número de teléfono al formato E.164 y valide el operador utilizando el operador actual antes de pasarlo a la Messages API de Vonage para el envío de SMS. Si necesitas recurrir a la verificación basada en OTP para pedidos de alto riesgo, la Verify API de Vonage es un complemento natural para ese mismo proceso de pago.
¿Tiene alguna pregunta o quiere compartir lo que está construyendo?
Suscríbase al Boletín para desarrolladores
Síguenos en X (antes Twitter) para estar al día
Ver tutoriales en nuestro canal de YouTube
Conéctese con nosotros en la página Vonage Developer en LinkedIn
Ayúdanos a mejorar nuestra experiencia como desarrolladores rellenando nuestro cuestionario «La voz del desarrollador»
Mantente conectado y entérate de las últimas noticias, consejos y eventos para desarrolladores.