
Limpeza e validação de números de telefone para comércio eletrônico
Tempo de leitura: 7 minutos
Introdução
A qualidade e a validade dos números de telefone são problemas discretos, mas persistentes, no comércio eletrônico. Os números coletados na finalização da compra costumam estar incorretos, ter formatação inconsistente ou pertencer a linhas que não podem receber SMS, e você normalmente só descobre isso quando uma notificação de entrega é devolvida.
Este artigo explica como sanitar dados de números de telefone usando o formato E.164 (normalizando cada número para formato E.164) e, em seguida, validá-los com o recurso current_carrier insight (confirmar se o número é de um celular capaz de receber SMS normalmente). A API do Vonage Identity Insights retorna tanto um número sanitizado quanto a confirmação de que ele é compatível com SMS em uma única chamada de API. Usar as informações de formato e de operadora atual da API Identity Insights em conjunto oferece uma maneira de sanitizar todos os números para o formato E.164 antes que eles cheguem ao seu banco de dados e confirmar se são de celular antes de utilizá-los para comunicações de entrega.
Falhas na higienização e na validação
Um cenário comum no backend é quando um cliente, ao preencher o formulário de finalização da compra, digita seu número de telefone no formato que lhe parecer mais natural e confirma para finalizar o pedido. O campo de entrada HTML5 do tipo “telefone” aceita o valor inserido. A expressão regular do lado do servidor verifica se o número possui dez dígitos. O pedido é registrado no banco de dados, um e-mail de confirmação é enviado e uma mensagem SMS de entrega é despachada.
Então, nada acontece: nenhum erro é registrado, nenhuma nova tentativa é acionada e nenhum alerta é disparado. Alguns dias depois, o cliente abre um ticket de suporte perguntando onde está seu pedido. Uma solicitação do tipo WISMO (Where Is My Order, ou “Onde está meu pedido?”) que custa tempo e dinheiro à sua equipe, e que poderia ter sido totalmente evitada. A falha tem duas causas ocultas:
Falha na formatação: o número foi armazenado no formato nacional (4155551234) em vez do formato E.164 (+14155551234).
Falha na validação: mesmo que o formato estivesse correto, o número pertence a um telefone fixo ou a um número que já foi de celular e foi transferido para uma operadora de telefonia fixa no mês passado. Sua expressão regular detecta dez dígitos e aprova o número. Uma tabela de consulta estática identifica a alocação original da operadora e classifica o número como “celular”. O SMS fica na fila de entrega e é rejeitado, nunca chegando ao celular do cliente.
Validação de número de telefone
A validação de números de telefone consiste em confirmar se uma sequência de dígitos é um número de telefone real e acessível, no qual uma mensagem SMS ou uma chamada de Voice possa ser recebida. Saiba mais sobre a validade de números de telefone.
A expressão regular detecta comprimento incorreto de dígitos, caracteres que não sejam dígitos e ausência do código de área. A expressão regular não distingue entre números de celular e de telefone fixo, nem entre números virtuais e de VoIP.
Resultados da API de consulta de operadoras e informações de identidade
Uma consulta de operadora é uma solicitação feita ao gráfico de roteamento em tempo real da rede móvel: qual operadora é a atual titular desse número e de que tipo de linha se trata? Você pode consultar a Referência da API do Identity Insights para saber mais sobre os principais campos retornados pelas chamadas da API do Identity Insights. Uma resposta bem-sucedida tem a seguinte aparência:
{
"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" }
}
}
}Observação: ao contrário de informações baseadas na rede, como troca de SIM ou verificação de localização, o
formatecurrent_carrierinsights não exigem aprovação do Registro de Rede. Estão disponíveis em todo o mundo sem a necessidade de integração adicional com operadoras.
Comece a usar a API do Identity Insights
A maneira mais rápida de ver isso em ação é por meio do tutorial “Introdução ao Identity Insights” no Painel da Vonage. Digite qualquer número de telefone, selecione format e current_carrier, e veja a resposta em tempo real. Há também um modo de demonstração com números predefinidos, caso você queira explorar o recurso sem usar um número ativo e ver a resposta em tempo real. Há também um modo de demonstração com números predefinidos, caso você queira explorar o recurso sem usar um número ativo.
Getting Started with Identity Insights
Configurar o Identity Insights em um projeto Node.js
Você poderia colocar em prática a teoria que aprendeu hoje e normalizar o número para o formato E.164, confirmar se o número é de celular antes de colocar a mensagem SMS na fila de envio e integrar a etapa de validação a um fluxo de checkout rápido. Temos um SDK do Vonage Identity Insights para Node.js. Consulte a documentação da API do Vonage Identity Insights e o SDK do Identity Insights para Node.js para obter a referência completa do SDK.
Perguntas frequentes
P1. Como faço para me autenticar na API do Identity Insights?
A API do Identity Insights utiliza autenticação JWT por meio de um aplicativo da Vonage. Crie um aplicativo no Painel da Vonage, baixe a chave privada e inicialize o SDK com sua applicationId e o caminho para o seu private.key arquivo. Isso difere do padrão de chave/segredo de API usado pelas APIs mais antigas da Vonage.
P2. Por que a API do Identity Insights retorna uma operadora diferente daquela da minha biblioteca de validação de números de telefone atual?
A API do Number Insight consulta dados de roteamento em tempo real dos operadores, e não uma tabela estática de alocação de intervalos de números. Se um cliente transferiu seu número de uma operadora de telefonia fixa para uma operadora de celular desde a última atualização da sua biblioteca estática, a API do Number Insight retorna a operadora atual, enquanto a biblioteca estática retorna a operadora original. Para números transferidos, current_carrier é sempre a resposta oficial.
P3. Posso usar a Number Insight API para validar números de telefone internacionais no momento do pagamento?
Sim. A Number Insight API abrange números em todo o mundo. Insira o número no formato E.164 (com o + prefixo e o código do país) para obter melhores resultados. O format.number_international campo na resposta fornece a versão E.164 normalizada, independentemente de como o cliente digitou o número no momento do pagamento.
P4. A chamada à API do Identity Insights durante a finalização da compra torna o envio do formulário de finalização mais lento?
Uma chamada típica é concluída em 200 a 500 ms. Execute-a no lado do servidor depois que o cliente clicar em “enviar” e antes de gravar no banco de dados. Armazene o resultado em cache na sessão para que a chamada não seja feita duas vezes caso o cliente acesse o mesmo número de telefone na mesma sessão. Adicione um tempo limite flexível e um plano alternativo que permita que a finalização da compra seja concluída mesmo que o serviço esteja temporariamente indisponível.
Conclusão
Muitas complicações podem surgir para as equipes de comércio eletrônico se os números de telefone não forem devidamente filtrados e validados. O número de chamadas de suporte do tipo “WISMO” (Onde está meu pedido?) pode disparar, e os estornos aumentam quando os números de telefone armazenados no momento da finalização da compra estão incorretos ou quando números de telefone fixo são apresentados como se fossem de celular.
Ao trabalhar com as APIs da Vonage, certifique-se de que seu fluxo de checkout normalize o número de telefone para o formato E.164 e valide a operadora usando a operadora atual antes de enviá-lo para a Messages API da Vonage para envio de SMS. Se for necessário recorrer à verificação baseada em OTP para pedidos de alto risco, a Verify API é um complemento natural para esse mesmo fluxo de checkout.
Tem alguma dúvida ou quer compartilhar o que está criando?
Inscreva-se no Boletim Informativo para Desenvolvedores
Siga-nos no X (antigo Twitter) para ficar por dentro das novidades
Assista aos tutoriais no nosso canal do YouTube
Conecte-se conosco na página de desenvolvedores da Vonage no LinkedIn
Fique conectado e acompanhe as últimas notícias, dicas e eventos para desenvolvedores.