Confirmar o número de celular no registro com um código por SMS, passo a passo

WhatsApp e APIs·· 35 visualizações· 4 min de leitura

A resposta curta: no registro, peça o número, envie um código com POST /v1/sms/otp e só marque o número como confirmado quando POST /v1/sms/otp/{id}/verify responder valid: true. Assim sabe que o celular é mesmo de quem se está registrando, e não de um vizinho, de um concorrente ou de um robô. O número pode vir com ou sem o indicativo, porque o sistema reconhece o país pelo primeiro algarismo: 841234567 vai para Moçambique e 923456789 para Angola. Assim, +258 84 123 4567 e 258841234567 são o mesmo número que 841234567.

O fluxo, passo a passo

1 O formulário pede o número junto com os outros dados. Antes de enviar o código, confira no seu sistema que o formulário não está sendo usado por um robô (veja a fraude pelo formulário do código).
2 O seu servidor envia o código com POST /v1/sms/otp e o cabeçalho Idempotency-Key (um valor por tentativa de registro). Um duplo clique em «Criar conta» devolve a mesma resposta e não envia dois SMS.
3 Guarde o id na sessão do registro, nunca no navegador. É ele que liga o código àquele registro.
4 Mostre a tela do código com o número tapado que a resposta traz em to e um link «Não é o seu número? Corrija-o».
5 Confira o que o cliente escreveu com /verify. Com valid: true, grave o número como confirmado e a hora, que vem em verified_at.
6 Com valid: false, diga quantas tentativas restam (attempts_left) e, se o estado já não for pending, ofereça um código novo.

Os campos que interessam no registro

Campo Sugestão para o registro Limites
number O número que o cliente escreveu, tal como está Celulares de Moçambique e Angola
length 6, a omissão: fácil de escrever, difícil de adivinhar 4 a 8 algarismos
expires_in 5 a 10 minutos: o cliente está ali, à espera 1 a 60 minutos
max_attempts 3 a 5 1 a 10
text O nome do seu serviço, {code} e «Não o compartilhe» Até 300 caracteres
sender O seu Sender ID, se o tiver Aprovado para o país do número

Conta criada antes ou depois do código?

As duas maneiras funcionam. Se criar a conta logo, deixe-a num estado «número por confirmar» e não lhe dê acesso ao que depende do celular. Se criar só depois do código, guarde os dados do formulário na sessão até valid: true. O que nunca deve fazer é dar o número como confirmado só porque o SMS saiu.

Responda da mesma maneira, exista ou não uma conta com aquele número. Uma mensagem como «Este número já está registrado» diz a qualquer pessoa quem é seu cliente. Prefira «Se o número for válido, vai receber um código» e trate o caso de quem já tem conta depois de confirmar o código.
Teste o fluxo inteiro na Sandbox antes de abrir o registro ao público: a resposta do envio traz o código, e pode experimentar o código certo, o errado e o expirado sem gastar créditos.

Quer confirmar o número de quem se registra no seu site ou aplicação? Veja o SMS de Verificação.

Ver o SMS de Verificação

VEJA TAMBÉM

API de verificação por SMS: geramos, enviamos e conferimos o código, e o seu sistema guarda só o id

A tela do código: o campo, a contagem decrescente, as tentativas que restam e mensagens claras

Fraude de SMS pelo seu formulário de código: como se queimam créditos e como travar

Mudar o número de celular de um cliente com segurança: confirmar o número novo antes de o gravar

Testar a verificação por SMS na Sandbox: o código vem na resposta

O que é o Sender ID: SMS que chegam com o nome da sua empresa em vez de um número

PRODUTO RECOMENDADO

Hospedagem de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde $6.60/mês (plano de 3 anos, com cupom)

Ver planos
Esta resposta foi útil? Sua resposta nos ajuda a melhorar este artigo.