На моем сайте люди могут зарегистрироваться по номеру телефона. Разрешен только один аккаунт на номер телефона. Проблема в том, что номер телефона можно записать несколькими способами.
Я из Бельгии. Наши (мобильные) номера телефонов выглядят так: 04xx xx xx xx (например, 04 99 12 34 56). Код страны Бельгии - 0032, поэтому 0032499 12 34 56 также является действительным номером телефона, как +32499 12 34 56.
Так что у меня нет трех телефонных номеров, которые абсолютно одинаковы, но написаны по-разному и система не распознает их как одинаковые.
Возможное решение (не будет работать)
Каждый бельгийский номер телефона имеет одинаковое окончание:
00324xxxxxxxx
+ 324xxxxxxxx
04xxxxxxxx
Я могу проверить последние 9 цифр (начиная с 4), но проблема в том, что не только люди из Бельгии могут зарегистрироваться, но и другие страны могут зарегистрироваться. Номер мобильного телефона в США не заканчивается на 4xxxxxxxx, поэтому я не смог выполнить эту проверку для этих номеров.
Возможное решение
Добавление выпадающего списка со всеми кодами стран и нормализация каждого телефонного номера перед его отправкой.
Для бельгийских телефонных номеров: +32 (раскрывающийся список) 0499 12 34 56 (ввод) станет +32 (раскрывающийся список) 499 12 34 56 (лишить 0) .
Возможное решение 2
Я мог бы использовать подобный API (https://www.searchbug.com/api/identify-phone-number.aspx), но он не бесплатный. Есть ли бесплатное решение, которое я могу принять самостоятельно?