[{"data":1,"prerenderedAt":1561},["ShallowReactive",2],{"blog-podtverzhdenie-nomera-v-prilozhenii":3,"blog-related-podtverzhdenie-nomera-v-prilozhenii":339,"mdc-m0l4mc-key":1513,"mdc-w92msh-key":1525,"mdc--spvk5z-key":1534,"mdc-pv86t8-key":1543,"mdc-th1qag-key":1552},{"id":4,"title":5,"body":6,"category":303,"cta":304,"description":309,"draft":310,"extension":311,"faq":312,"h1":325,"meta":326,"navigation":327,"order":328,"path":329,"published":330,"related":331,"seo":335,"stem":336,"summary":337,"updated":330,"__hash__":338},"blog\u002Fblog\u002Fpodtverzhdenie-nomera-v-prilozhenii.md","Подтверждение номера в приложении — как сделать без SMS",{"type":7,"value":8,"toc":294},"minimark",[9,13,18,26,29,32,35,39,73,76,80,83,100,111,121,139,143,224,228,231,288],[10,11,12],"p",{},"На мобильных сценарий подтверждения звонком раскрывается лучше всего: телефон, с которого нужно позвонить, — это то же устройство, где открыто приложение. Пользователю не приходится ничего переносить с экрана на экран.",[14,15,17],"h2",{"id":16},"chem-podtverzhdenie-v-prilozhenii-otlichaetsya-ot-sayta","Чем подтверждение в приложении отличается от сайта",[10,19,20,21,25],{},"Главное отличие одно, и оно решающее: ",[22,23,24],"strong",{},"приложение может открыть набор номера в одно касание",". Пользователь нажимает кнопку — открывается системный диалер с уже подставленным номером, остаётся нажать вызов.",[10,27,28],{},"На сайте с десктопа так не получится: номер придётся переносить на телефон руками, и это худшая точка сценария. В приложении её просто нет.",[10,30,31],{},"Второе отличие — контроль над экраном. Приложение точно знает, когда пользователь вернулся из диалера, и может проверить статус именно в этот момент, а не по таймеру. Переход к следующему шагу получается мгновенным.",[10,33,34],{},"Третье — обратная сторона: приложение уходит на задний план во время вызова, и это надо учитывать в логике, а не считать сбоем.",[14,36,38],{"id":37},"scenariy-so-zvonkom-chto-vidit-polzovatel","Сценарий со звонком: что видит пользователь",[40,41,42,49,55,61,67],"ol",{},[43,44,45,48],"li",{},[22,46,47],{},"Экран ввода номера."," Поле в международном формате, подсказка про код страны, кнопка «Продолжить».",[43,50,51,54],{},[22,52,53],{},"Экран подтверждения."," Крупная кнопка «Позвонить», под ней — номер текстом на случай, если диалер не откроется. Пояснение: трубку брать не нужно, вызов оборвётся сам. Таймер на 60 секунд.",[43,56,57,60],{},[22,58,59],{},"Системный диалер."," Открывается с подставленным номером. Пользователь нажимает вызов, соединение сбрасывается через мгновение.",[43,62,63,66],{},[22,64,65],{},"Возврат в приложение."," Статус уже подтверждён — экран меняется сам, нажимать ничего не нужно.",[43,68,69,72],{},[22,70,71],{},"Если не сложилось."," По истечении таймера — кнопка «Позвонить ещё раз» и ссылка на запасной способ.",[10,74,75],{},"Формулировки на втором экране важнее, чем кажется. «Позвоните на этот номер, трубку брать не нужно» пользователь понимает сразу. «Пройдите верификацию» — нет.",[14,77,79],{"id":78},"realizaciya-na-ios-i-android","Реализация на iOS и Android",[10,81,82],{},"Логика одинаковая, различается только открытие диалера.",[10,84,85,88,89,94,95,99],{},[22,86,87],{},"Общая часть."," Бэкенд создаёт проверку и получает выделенный номер; приложение показывает его и опрашивает статус. Сам механизм проверки разобран в статье про ",[90,91,93],"a",{"href":92},"\u002Fblog\u002Fpodtverzhdenie-nomera-zvonkom","подтверждение номера телефона звонком"," — он одинаков для всех платформ. Ключ проекта в приложении хранить нельзя: его место на сервере, а мобильный клиент ходит в ваш собственный API. Веб-версия того же сценария описана в материале про ",[90,96,98],{"href":97},"\u002Fblog\u002Fpodtverzhdenie-nomera-na-sayte","подтверждение номера на сайте",".",[10,101,102,105,106,110],{},[22,103,104],{},"Открытие набора."," На iOS — системная ссылка вида ",[107,108,109],"code",{},"tel:",", на Android — намерение набора номера. В обоих случаях открывается штатный диалер с подставленным номером; сам вызов инициирует пользователь. Автоматически совершать звонок за него не нужно и не следует: это требует отдельного разрешения и выглядит подозрительно.",[10,112,113,116,117,99],{},[22,114,115],{},"Разрешения не нужны."," Здесь ключевое отличие от обычного flash call, при котором приложение считывает номер входящего вызова из журнала. Такой доступ ограничен политиками магазинов: в Google Play выдача разрешения на журнал вызовов требует обоснования, а в iOS публичного API для чтения журнала нет вовсе. При обратном сценарии читать нечего — звонок видит сервис на своей стороне. Разбор разницы — в статье ",[90,118,120],{"href":119},"\u002Fblog\u002Fchto-takoe-flash-call","что такое flash call",[10,122,123,126,127,130,131,134,135,99],{},[22,124,125],{},"Опрос статуса."," Периодический запрос с разумным интервалом плюс обязательная внеочередная проверка при возврате приложения на передний план. Опрос прекращается по ",[107,128,129],{},"CONFIRMED",", по ",[107,132,133],{},"EXPIRED"," или по истечении таймера. Детали запросов — в материале про ",[90,136,138],{"href":137},"\u002Fblog\u002Fapi-podtverzhdeniya-nomera","API подтверждения номера",[14,140,142],{"id":141},"obrabotka-granichnyh-sluchaev","Обработка граничных случаев",[144,145,148],"div",{"className":146},[147],"md-table",[149,150,151,164],"table",{},[152,153,154],"thead",{},[155,156,157,161],"tr",{},[158,159,160],"th",{},"Ситуация",[158,162,163],{},"Что делать",[165,166,167,176,184,192,200,208,216],"tbody",{},[155,168,169,173],{},[170,171,172],"td",{},"Приложение свёрнуто во время вызова",[170,174,175],{},"проверять статус при возврате на передний план, не только по таймеру",[155,177,178,181],{},[170,179,180],{},"Пользователь отменил вызов в диалере",[170,182,183],{},"оставить экран активным, таймер продолжает идти — он может позвонить снова",[155,185,186,189],{},[170,187,188],{},"Звонок с другого номера",[170,190,191],{},"проверка не подтвердится; в подсказке заранее написать, что звонить нужно с указанного номера",[155,193,194,197],{},[170,195,196],{},"Нет сигнала сотовой сети",[170,198,199],{},"предложить запасной способ подтверждения",[155,201,202,205],{},[170,203,204],{},"Диалер не открылся",[170,206,207],{},"номер показан текстом, дать кнопку копирования",[155,209,210,213],{},[170,211,212],{},"Истекли 60 секунд",[170,214,215],{},"показать «Позвонить ещё раз», создать новую проверку",[155,217,218,221],{},[170,219,220],{},"Приложение закрыто до подтверждения",[170,222,223],{},"при следующем запуске начинать сценарий заново",[14,225,227],{"id":226},"chto-proverit-pered-otpravkoy-v-magazin","Что проверить перед отправкой в магазин",[10,229,230],{},"Короткий чек-лист по местам, где мобильная реализация обычно ломается.",[232,233,234,240,246,252,264,270,276,282],"ul",{},[43,235,236,239],{},[22,237,238],{},"Диалер открывается на реальном устройстве",", а не только в эмуляторе. На части прошивок поведение отличается.",[43,241,242,245],{},[22,243,244],{},"Номер показан текстом рядом с кнопкой."," Если системный набор не открылся, пользователю нужен запасной путь — скопировать и набрать вручную.",[43,247,248,251],{},[22,249,250],{},"Статус проверяется при возврате на передний план."," Без этого пользователь возвращается на экран ожидания, который уже неактуален.",[43,253,254,257,258,260,261,263],{},[22,255,256],{},"Опрос останавливается."," Три условия: ",[107,259,129],{},", ",[107,262,133],{},", истёкший таймер. Иначе запросы продолжатся в фоне и посадят батарею.",[43,265,266,269],{},[22,267,268],{},"Ключ проекта не лежит в приложении."," Даже в обфусцированном виде: мобильный клиент разбирается, а ключ тратит ваш баланс. Приложение ходит в ваш собственный API.",[43,271,272,275],{},[22,273,274],{},"Экран переживает поворот и сворачивание."," Идентификатор проверки и остаток таймера должны сохраняться.",[43,277,278,281],{},[22,279,280],{},"Есть запасной способ подтверждения"," для тех, у кого номер не определяется.",[43,283,284,287],{},[22,285,286],{},"Тексты понятны без терминов."," «Позвоните на этот номер, трубку брать не нужно» вместо «пройдите верификацию».",[10,289,290,291,293],{},"Отдельно про повторные попытки: они ничего не стоят. Тарифицируется только состоявшийся звонок, проверка в статусе ",[107,292,133],{}," не списывает баланс — поэтому предлагать позвонить ещё раз можно без оглядки на расходы.",{"title":295,"searchDepth":296,"depth":296,"links":297},"",2,[298,299,300,301,302],{"id":16,"depth":296,"text":17},{"id":37,"depth":296,"text":38},{"id":78,"depth":296,"text":79},{"id":141,"depth":296,"text":142},{"id":226,"depth":296,"text":227},"Реализация",{"title":305,"text":306,"label":307,"href":308},"Встройте подтверждение в своё приложение","Два HTTP-запроса, никаких SDK и разрешений. Ключ проекта выдаётся сразу после регистрации.","Начать бесплатно","\u002Fregister","Как реализовать подтверждение номера в мобильном приложении: сценарий со звонком вместо SMS, работа без разрешений, экраны, обработка граничных случаев.",false,"md",[313,316,319,322],{"q":314,"a":315},"Нужны ли разрешения на чтение SMS или журнала вызовов?","Нет, и это ключевое отличие сценария. Приложение только открывает системный\nдиалер и опрашивает статус проверки по сети. Читать сообщения и журнал\nвызовов не требуется, поэтому и запрашивать соответствующие разрешения\nне нужно.\n",{"q":317,"a":318},"Пройдёт ли такое приложение модерацию в магазинах?","С этой стороны придираться не к чему: чувствительные разрешения не запрашиваются,\nфоновой активности нет, всё общение с сервисом идёт обычными HTTP-запросами.\nИменно из-за разрешений обычный flash call часто и не проходит.\n",{"q":320,"a":321},"Что если пользователь свернул приложение во время звонка?","Так и будет — набор номера сворачивает приложение по определению. Поэтому\nстатус нужно проверять и при возврате на передний план, а не только по таймеру:\nк этому моменту проверка обычно уже подтверждена.\n",{"q":323,"a":324},"Нужен ли отдельный код для iOS и Android?","Отличается только способ открыть диалер — системная ссылка на iOS и намерение\nнабора на Android. Вся логика проверки одинаковая: создать, показать номер,\nопросить статус.\n","Подтверждение номера телефона в мобильном приложении",{},true,8,"\u002Fblog\u002Fpodtverzhdenie-nomera-v-prilozhenii","2026-08-08",[332,333,334],"podtverzhdenie-nomera-zvonkom","podtverzhdenie-nomera-na-sayte","chto-takoe-flash-call",{"title":5,"description":309},"blog\u002Fpodtverzhdenie-nomera-v-prilozhenii","В мобильном приложении подтверждение номера звонком удобнее, чем где-либо ещё: набор\nоткрывается одним касанием через системный диалер, пользователю не нужно ничего\nпереписывать и вводить. Главное преимущество перед обычным flash call — приложению\nне требуются разрешения на чтение SMS и журнала вызовов, а их выдачу ограничивают\nи Google Play, и App Store. Проверка живёт 60 секунд, стоит 0,20 ₽ за состоявшийся звонок.\n","SzYBtnQ2PPpUxp6ImUb7w9yWpfYtOF4vzcvV-g9wfsk",[340,860,1193],{"id":341,"title":342,"body":343,"category":826,"cta":827,"description":830,"draft":310,"extension":311,"faq":831,"h1":850,"meta":851,"navigation":327,"order":852,"path":92,"published":330,"related":853,"seo":856,"stem":857,"summary":858,"updated":330,"__hash__":859},"blog\u002Fblog\u002Fpodtverzhdenie-nomera-zvonkom.md","Подтверждение номера телефона звонком — верификация без SMS",{"type":7,"value":344,"toc":817},[345,348,351,355,358,361,364,449,452,456,459,502,509,512,516,519,525,528,534,617,623,627,630,633,636,643,646,650,657,663,716,719,731,735,738,774,781,785,788,811],[10,346,347],{},"Способ выглядит непривычно ровно один раз — пока не увидишь его в деле. Пользователь не ждёт SMS, не переключается в приложение сообщений, не копирует шесть цифр и не возвращается обратно в форму. Он нажимает одну кнопку, телефон начинает набор, через мгновение вызов обрывается — и регистрация продолжается сама.",[10,349,350],{},"Ниже — что происходит под капотом, чем это отличается от обычного flash call, почему звонок доходит там, где SMS теряется, и сколько всё это стоит.",[14,352,354],{"id":353},"chto-takoe-proverka-telefona-zvonkom","Что такое проверка телефона звонком",[10,356,357],{},"Задача любой телефонной верификации одна: убедиться, что человек, который вводит номер в форму, действительно имеет к этому номеру доступ. Классическое решение — отправить на него одноразовый код и попросить ввести обратно. Раз код дошёл и был введён, значит, телефон у пользователя в руках.",[10,359,360],{},"Проверка номера звонком решает ту же задачу с другой стороны. Вместо того чтобы отправлять что-то абоненту и ждать, что он это получит и перепечатает, сервис просит его сделать исходящий вызов. Телефонная сеть передаёт номер вызывающего абонента вместе с вызовом — это тот же механизм, благодаря которому вы видите, кто вам звонит. Сервис сравнивает определившийся номер с тем, который пользователь ввёл в форму. Совпало — номер подтверждён.",[10,362,363],{},"Разница принципиальная. В SMS-сценарии доказательством служит доставленное сообщение, а его доставка зависит от цепочки посредников. В сценарии со звонком доказательством служит сам факт исходящего вызова с проверяемого номера, и никакого содержимого передавать не требуется.",[144,365,367],{"className":366},[147],[149,368,369,381],{},[152,370,371],{},[155,372,373,375,378],{},[158,374],{},[158,376,377],{},"SMS-код",[158,379,380],{},"Звонок на выделенный номер",[165,382,383,394,405,416,427,438],{},[155,384,385,388,391],{},[170,386,387],{},"Что делает пользователь",[170,389,390],{},"ждёт сообщение, открывает его, запоминает или копирует код, возвращается в форму, вводит",[170,392,393],{},"нажимает кнопку вызова и сбрасывает",[155,395,396,399,402],{},[170,397,398],{},"Число действий",[170,400,401],{},"пять",[170,403,404],{},"два",[155,406,407,410,413],{},[170,408,409],{},"Что подтверждает факт",[170,411,412],{},"что сообщение дошло и было прочитано",[170,414,415],{},"что вызов совершён с проверяемого номера",[155,417,418,421,424],{},[170,419,420],{},"Где ломается",[170,422,423],{},"сообщение не дошло, пришло с задержкой, код введён с ошибкой",[170,425,426],{},"номер вызывающего не определяется, звонок с другого телефона",[155,428,429,432,435],{},[170,430,431],{},"За что списываются деньги",[170,433,434],{},"за отправку, независимо от доставки",[170,436,437],{},"за состоявшийся звонок",[155,439,440,443,446],{},[170,441,442],{},"Ввод кода",[170,444,445],{},"обязателен",[170,447,448],{},"не нужен",[10,450,451],{},"У способа есть и обратная сторона, о ней честно в разделе про ограничения: он работает, только пока номер вызывающего абонента передаётся сетью, и только для российских номеров.",[14,453,455],{"id":454},"kak-prohodit-podtverzhdenie-chetyre-shaga","Как проходит подтверждение: четыре шага",[10,457,458],{},"Со стороны интеграции всё сводится к двум запросам к API — на создание проверки и на получение её результата.",[40,460,461,471,480,486],{},[43,462,463,466,467,470],{},[22,464,465],{},"Ваша система создаёт проверку."," Отправляет ключ проекта и номер пользователя в формате E.164 (",[107,468,469],{},"+79161234567","). В ответ приходит идентификатор проверки и выделенный номер, на который нужно позвонить.",[43,472,473,476,477,479],{},[22,474,475],{},"Вы показываете этот номер пользователю."," На мобильных — ссылкой ",[107,478,109],{},", чтобы набор открывался в одно касание и номер не пришлось переписывать руками. Рядом полезен таймер: у проверки есть срок.",[43,481,482,485],{},[22,483,484],{},"Пользователь звонит."," Отвечать на вызов не нужно и невозможно — сервис фиксирует входящий и сбрасывает соединение. Звонок сопоставляется с проверкой по паре «выделенный номер + номер вызывающего абонента».",[43,487,488,491,492,495,496,498,499,501],{},[22,489,490],{},"Ваша система забирает результат."," Опрашивает статус проверки по её идентификатору: ",[107,493,494],{},"PENDING"," — звонка ещё не было, ",[107,497,129],{}," — номер подтверждён, ",[107,500,133],{}," — 60 секунд истекли, звонка не поступило.",[10,503,504,505,508],{},"Важная деталь, которую часто понимают неправильно: ",[22,506,507],{},"выделенный номер не закрепляется за пользователем",". Один и тот же номер из пула одновременно обслуживает проверки разных людей — уникальной должна быть только пара «номер плюс звонящий». Поэтому пул не «заканчивается» при всплеске регистраций и не требует запаса номеров под пиковую нагрузку: сервис сам подбирает свободную комбинацию и распределяет вызовы по пулу.",[10,510,511],{},"Вторая деталь — про 60 секунд. Это срок жизни проверки, а не срок аренды номера. Если пользователь отвлёкся и позвонил через две минуты, вызов уже ни к чему не привяжется: проверка к тому моменту помечена как истёкшая. Правильная реакция интерфейса — не «ошибка», а кнопка «Позвонить ещё раз», создающая новую проверку.",[14,513,515],{"id":514},"chem-eto-otlichaetsya-ot-obychnogo-flash-call","Чем это отличается от обычного flash call",[10,517,518],{},"Термин flash call описывает два зеркальных сценария, и путаница между ними — главный источник недопонимания при выборе провайдера.",[10,520,521,524],{},[22,522,523],{},"Обычный flash call."," Звонит сервис. Пользователь видит входящий вызов, который тут же обрывается, а приложение читает номер входящего и подставляет его последние цифры как код подтверждения. Пользователю иногда даже не нужно ничего делать — но только если приложение получило доступ к журналу вызовов.",[10,526,527],{},"Здесь и находится слабое место. Доступ к журналу вызовов — чувствительное разрешение: в Google Play его выдача ограничена и требует обоснования, в iOS публичного API для чтения журнала нет вообще, а в браузере такой сценарий недоступен по определению. На практике обычный flash call — это история про Android-приложение с одобренным разрешением, и больше почти нигде.",[10,529,530,533],{},[22,531,532],{},"Обратный (reverse) flash call."," Звонит пользователь. Сервису не нужен доступ ни к журналу вызовов, ни к SMS — он видит вызов на своей стороне, потому что вызов пришёл к нему. Отсюда следует, что сценарий одинаково работает и в мобильном приложении, и на обычном сайте в браузере, и никаких особых разрешений не требует.",[144,535,537],{"className":536},[147],[149,538,539,551],{},[152,540,541],{},[155,542,543,545,548],{},[158,544],{},[158,546,547],{},"Обычный flash call",[158,549,550],{},"Обратный flash call",[165,552,553,564,575,586,595,606],{},[155,554,555,558,561],{},[170,556,557],{},"Кто звонит",[170,559,560],{},"сервис пользователю",[170,562,563],{},"пользователь сервису",[155,565,566,569,572],{},[170,567,568],{},"Разрешения в приложении",[170,570,571],{},"доступ к журналу вызовов",[170,573,574],{},"не нужны",[155,576,577,580,583],{},[170,578,579],{},"Работает на сайте",[170,581,582],{},"нет",[170,584,585],{},"да",[155,587,588,591,593],{},[170,589,590],{},"Работает на iOS",[170,592,582],{},[170,594,585],{},[155,596,597,600,603],{},[170,598,599],{},"Что вводит пользователь",[170,601,602],{},"цифры из номера (или автоподстановка)",[170,604,605],{},"ничего",[155,607,608,611,614],{},[170,609,610],{},"Что может помешать",[170,612,613],{},"отказ в разрешении, ограничения магазинов приложений",[170,615,616],{},"номер вызывающего не определяется",[10,618,619,620,99],{},"FlashCall работает по второй схеме. Подробный разбор терминологии — включая написания «флеш колл» и синоним call to auth — в отдельном материале ",[90,621,622],{"href":119},"что такое flash call и обратный flash call",[14,624,626],{"id":625},"pochemu-zvonok-dohodit-tam-gde-sms-ne-doshla","Почему звонок доходит там, где SMS не дошла",[10,628,629],{},"Чтобы SMS с кодом оказалась на экране, она проходит цепочку: ваш сервис → агрегатор → оператор получателя → устройство. На каждом переходе есть очередь, фильтр и возможность потерять сообщение. Массовые рассылки фильтруются как спам, роуминг и запрет на приём международных сообщений отсекают часть абонентов, переполненная память устройства не даёт сообщение принять, а задержка на стороне агрегатора превращает код в бесполезный — к моменту доставки он уже истёк.",[10,631,632],{},"Для бизнеса это не абстрактная проблема, а прямые потери: недоставленная SMS — это не отправленный впустую рубль, а несостоявшаяся регистрация. Причём отправка тарифицируется независимо от того, дошло сообщение или нет.",[10,634,635],{},"Исходящий вызов идёт по голосовой сети напрямую. Там нет ни фильтрации массовых рассылок, ни очереди на доставку, ни спам-папки — соединение либо устанавливается, либо нет, и результат виден мгновенно. Отдельно важно, что инициатива на стороне пользователя: он не ждёт, пока до него что-то доедет, а сам совершает действие и сразу видит результат.",[10,637,638,639,99],{},"Подробный разбор причин, по которым коды не доходят, и что с этим делать пользователю — в материале ",[90,640,642],{"href":641},"\u002Fblog\u002Fne-prihodit-kod-podtverzhdeniya","почему не приходит код подтверждения",[10,644,645],{},"Обещать стопроцентную доставляемость было бы нечестно, поэтому назовём и границы. Верификация телефона звонком не сработает в трёх случаях: у абонента скрыт номер, звонок идёт через корпоративную АТС с подменой исходящего номера, или пользователь находится за пределами России — пул состоит из российских номеров. Разумная архитектура оставляет запасной способ подтверждения: звонок как основной сценарий, SMS как резервный для тех, у кого он не прошёл.",[14,647,649],{"id":648},"skolko-stoit-podtverzhdenie-nomera","Сколько стоит подтверждение номера",[10,651,652,653,656],{},"Одно подтверждение — ",[22,654,655],{},"0,20 ₽",". Абонентской платы нет, минимального ежемесячного объёма нет, за подключение платить не нужно.",[10,658,659,660,662],{},"Ключевое отличие от SMS — в модели списания. Деньги списываются в момент, когда звонок зафиксирован, то есть за результат. Проверка, по которой звонка не было и которая ушла в ",[107,661,133],{},", не тарифицируется вообще. Вы не платите за попытки, за недоставку и за пользователей, которые передумали на середине формы.",[144,664,666],{"className":665},[147],[149,667,668,681],{},[152,669,670],{},[155,671,672,675,678],{},[158,673,674],{},"Подтверждений в месяц",[158,676,677],{},"Стоимость при 100 % дозвона",[158,679,680],{},"При 80 % дозвона",[165,682,683,694,705],{},[155,684,685,688,691],{},[170,686,687],{},"1 000",[170,689,690],{},"200 ₽",[170,692,693],{},"160 ₽",[155,695,696,699,702],{},[170,697,698],{},"10 000",[170,700,701],{},"2 000 ₽",[170,703,704],{},"1 600 ₽",[155,706,707,710,713],{},[170,708,709],{},"100 000",[170,711,712],{},"20 000 ₽",[170,714,715],{},"16 000 ₽",[10,717,718],{},"Второй столбец — не скидка, а прямое следствие модели: если из десяти тысяч запущенных проверок звонком завершились восемь тысяч, платить вы будете за восемь. В SMS-сценарии заплатить пришлось бы за все десять тысяч отправок.",[10,720,721,722,726,727,99],{},"Проверка не создастся, если на балансе меньше стоимости одного подтверждения — API вернёт ошибку о недостатке средств. Это стоит обработать в коде заранее и завести оповещение о низком балансе. Актуальные цены и условия — на странице ",[90,723,725],{"href":724},"\u002Fpricing","тарифов","; подробнее о том, как вообще выбирать провайдера и на что смотреть кроме цены, — в разборе ",[90,728,730],{"href":729},"\u002Fblog\u002Fservis-podtverzhdeniya-nomera","сервисов подтверждения номера",[14,732,734],{"id":733},"gde-primenyayut-verifikaciyu-nomera-zvonkom","Где применяют верификацию номера звонком",[10,736,737],{},"Сценариев ровно столько же, сколько у SMS-кода, — способ подтверждения меняется, задача остаётся.",[232,739,740,746,756,762,768],{},[43,741,742,745],{},[22,743,744],{},"Регистрация."," Отсечь фейковые аккаунты и получить рабочий контакт. Здесь короткий сценарий даёт больше всего: чем меньше шагов между «ввёл номер» и «зарегистрирован», тем меньше отвалов.",[43,747,748,751,752,99],{},[22,749,750],{},"Вход в аккаунт."," Замена SMS-кода при авторизации, в том числе полностью без пароля. Как это устроено — в материале про ",[90,753,755],{"href":754},"\u002Fblog\u002Favtorizaciya-po-zvonku","авторизацию по звонку",[43,757,758,761],{},[22,759,760],{},"Подтверждение операции."," Смена пароля, изменение реквизитов, подтверждение заказа — там, где нужно доказать, что действие совершает владелец аккаунта.",[43,763,764,767],{},[22,765,766],{},"Оформление заказа и доставка."," Проверка контактного номера до того, как заказ уйдёт в сборку, а курьер — по адресу с неверным телефоном.",[43,769,770,773],{},[22,771,772],{},"Объявления и маркетплейсы."," Верификация продавца, борьба с мультиаккаунтами и фейковыми регистрациями.",[10,775,776,777,99],{},"Разбор по отраслям с конкретными задачами — в статье ",[90,778,780],{"href":779},"\u002Fblog\u002Fgde-nuzhna-verifikaciya-telefona","где нужна верификация телефона",[14,782,784],{"id":783},"kak-podklyuchit","Как подключить",[10,786,787],{},"Интеграция занимает несколько часов и не требует SDK: это два HTTP-запроса к REST API.",[40,789,790,793,796,802],{},[43,791,792],{},"Зарегистрируйтесь и создайте проект — он получит собственный ключ.",[43,794,795],{},"На бэкенде вызовите создание проверки, передав ключ проекта и номер пользователя. Ключ хранится только на сервере: во фронтенде его размещать нельзя.",[43,797,798,799,801],{},"Отдайте выделенный номер во фронтенд и покажите его пользователю ссылкой ",[107,800,109],{}," с таймером на 60 секунд.",[43,803,804,805,807,808,810],{},"Опрашивайте статус проверки, пока он не станет ",[107,806,129],{}," или ",[107,809,133],{},", и обработайте оба исхода.",[10,812,813,814,816],{},"Пошаговое описание запросов, форматов и типичных ошибок интеграции — в материале про ",[90,815,138],{"href":137},". Инструкция с вашим собственным ключом открывается в кабинете на странице проекта сразу после регистрации.",{"title":295,"searchDepth":296,"depth":296,"links":818},[819,820,821,822,823,824,825],{"id":353,"depth":296,"text":354},{"id":454,"depth":296,"text":455},{"id":514,"depth":296,"text":515},{"id":625,"depth":296,"text":626},{"id":648,"depth":296,"text":649},{"id":733,"depth":296,"text":734},{"id":783,"depth":296,"text":784},"Как это работает",{"title":828,"text":829,"label":307,"href":308},"Попробуйте на своём проекте","Регистрация занимает минуту, ключ проекта выдаётся сразу. Тестовую проверку можно запустить с первого же запроса.","Разбираем, как подтвердить номер телефона звонком вместо SMS-кода: схема проверки, отличие от обычного flash call, стоимость и порядок подключения.",[832,835,838,841,844,847],{"q":833,"a":834},"Что будет, если пользователь позвонит с другого номера?","Проверка не подтвердится. Совпадение ищется по паре «выделенный номер + номер\nвызывающего абонента», и звонок с телефона, который не был указан при создании\nпроверки, к ней не привяжется. Через 60 секунд она перейдёт в статус `EXPIRED`,\nи деньги за неё списаны не будут.\n",{"q":836,"a":837},"Звонок платный для пользователя?","Оператор тарифицирует его как обычный вызов на российский номер, по тарифу абонента.\nНо соединение сбрасывается до ответа, а неотвеченные вызовы операторы не тарифицируют —\nна практике подтверждение обходится пользователю бесплатно.\n",{"q":839,"a":840},"Сработает ли проверка, если у вызывающего скрыт номер?","Нет. Определение номера вызывающего абонента — основа всего способа: если номер\nне передаётся, сопоставить звонок с проверкой не с чем. Так бывает при включённом\nантиопределителе и на корпоративных АТС, которые подменяют исходящий номер.\nДля таких пользователей нужен запасной способ подтверждения.\n",{"q":842,"a":843},"Что делать, если звонка так и не было?","Через 60 секунд после создания проверка сама переходит в `EXPIRED` — опрос статуса\nвернёт его вместо `PENDING`. Это штатная ситуация: покажите пользователю кнопку\n«Позвонить ещё раз» и создайте новую проверку. Тарифицируется только состоявшийся\nзвонок, поэтому повторные попытки ничего не стоят.\n",{"q":845,"a":846},"Сколько проверок можно запускать одновременно?","Ограничения на общее число параллельных проверок в проекте нет. Единственное\nтребование — уникальность пары «выделенный номер + номер звонящего» среди\nожидающих. Сервис сам подбирает подходящий номер из пула и распределяет по нему\nнагрузку, так что со стороны интеграции об этом думать не нужно.\n",{"q":848,"a":849},"Что произойдёт, если на балансе закончатся деньги?","Проверка просто не создастся: запрос на выдачу номера вернёт ошибку о недостатке\nсредств. Уже созданные проверки при этом дорабатывают штатно. Обработайте эту\nошибку в коде заранее — иначе форма регистрации молча перестанет работать,\nкогда баланс дойдёт до нуля.\n","Подтверждение номера телефона звонком: как это работает",{},1,[854,855,334],"avtorizaciya-po-zvonku","servis-podtverzhdeniya-nomera",{"title":342,"description":830},"blog\u002Fpodtverzhdenie-nomera-zvonkom","Подтверждение номера звонком — способ проверить телефон без SMS и без одноразового кода.\nСервис выдаёт выделенный номер, пользователь звонит на него со своего телефона, вызов\nсбрасывается, а система по номеру вызывающего абонента понимает, что телефон принадлежит\nименно ему. Вводить ничего не нужно, отвечать на звонок тоже. Проверка живёт 60 секунд\nи стоит 0,20 ₽, причём списание происходит только за состоявшийся звонок.\n","Vs3hHENdsOH5tdu4ypInD_PfVG5qPC2vwutGGv1h_7s",{"id":861,"title":862,"body":863,"category":303,"cta":1166,"description":1169,"draft":310,"extension":311,"faq":1170,"h1":1183,"meta":1184,"navigation":327,"order":1185,"path":97,"published":330,"related":1186,"seo":1189,"stem":1190,"summary":1191,"updated":330,"__hash__":1192},"blog\u002Fblog\u002Fpodtverzhdenie-nomera-na-sayte.md","Подтверждение номера телефона на сайте — как реализовать",{"type":7,"value":864,"toc":1159},[865,868,872,902,907,911,975,978,988,992,1032,1037,1041,1044,1094,1097,1101,1104,1107],[10,866,867],{},"Форма с подтверждением телефона нужна в трёх местах почти любого сайта: при регистрации, при оформлении заказа и при публикации объявления. Разбираем, какие есть варианты реализации, сколько они стоят и как собрать сценарий со звонком.",[14,869,871],{"id":870},"gde-na-sayte-nuzhno-podtverzhdat-nomer","Где на сайте нужно подтверждать номер",[232,873,874,879,885,891,897],{},[43,875,876,878],{},[22,877,744],{}," Отсечь фейковые аккаунты и получить рабочий контакт.",[43,880,881,884],{},[22,882,883],{},"Оформление заказа."," Убедиться, что курьер дозвонится, и отсечь ложные заказы — особенно при оплате при получении.",[43,886,887,890],{},[22,888,889],{},"Публикация объявления."," Подтверждённый контакт продавца снижает долю мошеннических размещений.",[43,892,893,896],{},[22,894,895],{},"Восстановление доступа."," Телефон как доказательство, что аккаунт принадлежит вам.",[43,898,899,901],{},[22,900,760],{}," Смена реквизитов, крупная покупка, изменение доставки.",[10,903,904,905,99],{},"Разбор задач по отраслям — в статье ",[90,906,780],{"href":779},[14,908,910],{"id":909},"varianty-realizacii-i-chto-oni-stoyat","Варианты реализации и что они стоят",[144,912,914],{"className":913},[147],[149,915,916,932],{},[152,917,918],{},[155,919,920,923,926,929],{},[158,921,922],{},"Вариант",[158,924,925],{},"Срок внедрения",[158,927,928],{},"За что платите",[158,930,931],{},"Что ломается",[165,933,934,947,961],{},[155,935,936,939,942,944],{},[170,937,938],{},"Своя интеграция с SMS-агрегатором",[170,940,941],{},"от недели",[170,943,434],{},[170,945,946],{},"доставляемость, фильтры операторов, роуминг",[155,948,949,952,955,958],{},[170,950,951],{},"Готовый виджет с кодом",[170,953,954],{},"день-два",[170,956,957],{},"по тарифу виджета, обычно за попытку",[170,959,960],{},"чужой интерфейс на вашем сайте, ограниченная кастомизация",[155,962,963,966,969,972],{},[170,964,965],{},"Подтверждение звонком",[170,967,968],{},"день",[170,970,971],{},"только за состоявшийся звонок",[170,973,974],{},"не проходит при скрытом номере и у зарубежных SIM",[10,976,977],{},"У первых двух вариантов общая слабость: результат зависит от доставки сообщения, на которую вы не влияете. У третьего зависимость другая — от того, передаётся ли номер вызывающего абонента. Она затрагивает меньшую долю аудитории и, в отличие от доставляемости, предсказуема.",[10,979,980,981,983,984,987],{},"Как именно устроена проверка звонком — в статье про ",[90,982,93],{"href":92},". Если ваш продукт живёт не только в вебе, посмотрите отличия мобильного сценария в материале про ",[90,985,986],{"href":329},"подтверждение номера в приложении",": там набор открывается одним касанием, и экран ожидания строится иначе.",[14,989,991],{"id":990},"kak-vstroit-podtverzhdenie-zvonkom-5-shagov","Как встроить подтверждение звонком: 5 шагов",[40,993,994,1000,1006,1014,1020],{},[43,995,996,999],{},[22,997,998],{},"Зарегистрируйтесь и создайте проект."," Он получит собственный ключ. Ключ живёт в переменных окружения на сервере — не в репозитории и не во фронтенде.",[43,1001,1002,1005],{},[22,1003,1004],{},"Добавьте эндпоинт «начать проверку» на своём бэкенде."," Он принимает номер от фронтенда, валидирует его, вызывает создание проверки и возвращает во фронтенд только идентификатор и выделенный номер.",[43,1007,1008,1011,1012,99],{},[22,1009,1010],{},"Покажите номер пользователю."," Крупно, с таймером на 60 секунд, на мобильных — ссылкой ",[107,1013,109],{},[43,1015,1016,1019],{},[22,1017,1018],{},"Добавьте эндпоинт «статус проверки»."," Фронтенд опрашивает его, а он проксирует запрос с ключом. Наружу отдавайте только статус — ни ключ, ни лишние поля клиенту не нужны.",[43,1021,1022,1025,1026,1028,1029,1031],{},[22,1023,1024],{},"Обработайте результат на бэкенде."," По ",[107,1027,129],{}," — помечайте номер подтверждённым и продолжайте сценарий, по ",[107,1030,133],{}," — предлагайте повторить.",[10,1033,1034,1035,99],{},"Запросы, форматы ответов и примеры кода — в материале про ",[90,1036,138],{"href":137},[14,1038,1040],{"id":1039},"chto-pokazat-polzovatelyu-v-forme","Что показать пользователю в форме",[10,1042,1043],{},"Экран ожидания звонка решает больше, чем кажется: именно на нём пользователь либо делает нужное действие, либо закрывает вкладку.",[232,1045,1046,1056,1062,1070,1076,1082,1088],{},[43,1047,1048,1051,1052,1055],{},[22,1049,1050],{},"Номер — самый крупный элемент экрана."," С разделителями, в привычном виде: ",[107,1053,1054],{},"+7 495 000-00-00",". Его будут набирать руками с другого устройства.",[43,1057,1058,1061],{},[22,1059,1060],{},"Кнопка копирования"," рядом с номером — на десктопе она нужнее, чем кажется.",[43,1063,1064,1069],{},[22,1065,1066,1067],{},"Ссылка ",[107,1068,109],{}," на мобильных: одно касание вместо переписывания.",[43,1071,1072,1075],{},[22,1073,1074],{},"Понятная инструкция."," «Позвоните на этот номер с телефона, который подтверждаете. Трубку брать не нужно — вызов оборвётся сам». Без слова «верификация».",[43,1077,1078,1081],{},[22,1079,1080],{},"Таймер на 60 секунд."," Показывает, что процесс идёт, и задаёт рамку ожидания.",[43,1083,1084,1087],{},[22,1085,1086],{},"Автопереход при подтверждении."," Пользователь не должен нажимать «Проверить» — экран меняется сам.",[43,1089,1090,1093],{},[22,1091,1092],{},"После истечения таймера"," — «Позвонить ещё раз» и ссылка «Подтвердить другим способом».",[10,1095,1096],{},"Отдельно про звонок с того же номера: предупредите об этом заранее, одной строкой под номером. Иначе часть пользователей позвонит с рабочего телефона, проверка не подтвердится, и причина будет неочевидна.",[14,1098,1100],{"id":1099},"kak-obrabotat-rezultat-na-bekende","Как обработать результат на бэкенде",[10,1102,1103],{},"Вебхуков в сервисе нет — результат забирается опросом статуса. Это упрощает интеграцию: не нужен публично доступный обработчик, не нужна проверка подписи, не нужно думать о повторных доставках.",[10,1105,1106],{},"Что учесть:",[232,1108,1109,1115,1126,1132,1141,1147,1153],{},[43,1110,1111,1114],{},[22,1112,1113],{},"Интервал опроса."," Раз в одну-две секунды достаточно. Чаще — бессмысленно, реже — заметная задержка на экране.",[43,1116,1117,1120,1121,260,1123,1125],{},[22,1118,1119],{},"Условия остановки."," Три штуки: ",[107,1122,129],{},[107,1124,133],{},", истёк локальный таймер. Без явных условий опрос продолжится после ухода пользователя со страницы.",[43,1127,1128,1131],{},[22,1129,1130],{},"Доверять только своему серверу."," Решение «номер подтверждён» принимается на бэкенде по ответу API, а не по тому, что прислал фронтенд.",[43,1133,1134,1137,1138,1140],{},[22,1135,1136],{},"Идемпотентность на своей стороне."," Один и тот же ",[107,1139,129],{}," может быть увиден несколькими запросами подряд — привязка номера должна отрабатывать один раз.",[43,1142,1143,1146],{},[22,1144,1145],{},"Проверка баланса."," Если средств не хватает, проверка не создастся и API вернёт ошибку. Обработайте её явно и заведите оповещение о низком балансе: иначе форма молча перестанет работать.",[43,1148,1149,1152],{},[22,1150,1151],{},"Ограничение частоты на своём эндпоинте."," Создание проверок стоит денег, поэтому лимит на число попыток с одного адреса или сессии нужен обязательно.",[43,1154,1155,1158],{},[22,1156,1157],{},"Валидация номера до отправки."," Приведите введённое к формату E.164 на своей стороне — так вы не потратите запрос на заведомо некорректный номер и покажете пользователю понятную ошибку сразу в форме.",{"title":295,"searchDepth":296,"depth":296,"links":1160},[1161,1162,1163,1164,1165],{"id":870,"depth":296,"text":871},{"id":909,"depth":296,"text":910},{"id":990,"depth":296,"text":991},{"id":1039,"depth":296,"text":1040},{"id":1099,"depth":296,"text":1100},{"title":1167,"text":1168,"label":307,"href":308},"Добавьте подтверждение на свой сайт","Два запроса к REST API, без SDK и лишних зависимостей. Ключ проекта выдаётся сразу после регистрации.","Как добавить на сайт подтверждение номера телефона: варианты реализации и их цена, сценарий со звонком, что показывать в форме и как обработать результат.",[1171,1174,1177,1180],{"q":1172,"a":1173},"Пользователь на десктопе — как он позвонит?","С телефона, глядя на экран компьютера. Поэтому номер нужно показывать крупно\nи с разделителями, чтобы его было легко набрать вручную, а не мелким шрифтом\nв одну строку. На мобильных браузерах номер должен быть ссылкой `tel:`.\n",{"q":1175,"a":1176},"Можно ли обойтись без бэкенда?","Нет. Ключ проекта нельзя размещать во фронтенде — из браузера его заберёт кто\nугодно и начнёт тратить ваш баланс. Создание проверки и опрос статуса должны\nидти через ваш собственный сервер.\n",{"q":1178,"a":1179},"Как часто опрашивать статус?","Достаточно раза в пару секунд: сценарий укладывается в 60 секунд, и более\nчастый опрос ничего не ускоряет. Прекращать опрос нужно по `CONFIRMED`,\nпо `EXPIRED` и по истечении таймера, иначе запросы будут идти вечно.\n",{"q":1181,"a":1182},"Что делать с пользователями, у которых звонок не проходит?","Оставить в форме ссылку «Подтвердить другим способом». Скрытый номер,\nзарубежная SIM и корпоративная АТС встречаются нечасто, но без запасного\nварианта такие пользователи не пройдут дальше.\n","Как сделать подтверждение номера телефона на сайте",{},7,[332,1187,1188],"podtverzhdenie-nomera-v-prilozhenii","api-podtverzhdeniya-nomera",{"title":862,"description":1169},"blog\u002Fpodtverzhdenie-nomera-na-sayte","Подтверждение номера на сайте делается тремя способами: своя интеграция с SMS-агрегатором,\nготовый виджет или проверка звонком. Последний вариант не требует доставки сообщения —\nпользователь сам звонит на выделенный номер, и вводить ему нечего. На бэкенде это два\nHTTP-запроса и три статуса, во фронтенде — кликабельный номер и таймер на 60 секунд.\nПодтверждение стоит 0,20 ₽, несостоявшееся не тарифицируется.\n","E4A1c-OYXZBIRTAoVrLxmuUT_fr8E9_Q658zLnHCN8E",{"id":1194,"title":1195,"body":1196,"category":1486,"cta":1487,"description":1490,"draft":310,"extension":311,"faq":1491,"h1":1504,"meta":1505,"navigation":327,"order":1506,"path":119,"published":330,"related":1507,"seo":1509,"stem":1510,"summary":1511,"updated":330,"__hash__":1512},"blog\u002Fblog\u002Fchto-takoe-flash-call.md","Что такое Flash Call — и чем отличается reverse flash call",{"type":7,"value":1197,"toc":1478},[1198,1201,1205,1208,1211,1214,1221,1225,1231,1245,1252,1255,1259,1264,1278,1285,1290,1294,1387,1390,1394,1397,1423,1433,1437,1440,1475],[10,1199,1200],{},"Термин flash call встречается в двух противоположных значениях, и разница между ними определяет, заработает сценарий в вашем продукте или нет. Разбираем оба, чтобы при разговоре с провайдером было понятно, о чём именно речь.",[14,1202,1204],{"id":1203},"chto-takoe-flash-call-prostymi-slovami","Что такое flash call простыми словами",[10,1206,1207],{},"Flash call — это подтверждение номера телефона с помощью короткого вызова, который сбрасывается до ответа. Соединение не устанавливается, разговора не происходит, тарификация как за разговор не наступает. Полезную информацию несёт не содержание звонка, а сам факт вызова и номер, который при этом определился.",[10,1209,1210],{},"Название переводится буквально: flash — «вспышка», call — «вызов». То есть «вызов-вспышка», мелькнувший звонок. В русских текстах пишут по-разному — флеш колл, флэш колл, флешколл, — и все варианты означают одно и то же. Встречается также описательное «звонок-сброс».",[10,1212,1213],{},"Смысл в сравнении с SMS: там нужно доставить сообщение и заставить пользователя переписать код, здесь достаточно установить и оборвать вызов. Меньше шагов, меньше зависимости от доставки.",[10,1215,1216,1217,1220],{},"Синоним, который стоит знать, — ",[22,1218,1219],{},"call to auth"," (иногда call2auth), «звонок для аутентификации». Термин описывает ту же идею: вызов вместо кода как способ подтвердить владение номером. В маркетинговых материалах он встречается наравне с flash call.",[14,1222,1224],{"id":1223},"kak-rabotaet-obychnyy-flash-call","Как работает обычный flash call",[10,1226,1227,1228,99],{},"Направление вызова: ",[22,1229,1230],{},"сервис звонит пользователю",[40,1232,1233,1236,1239,1242],{},[43,1234,1235],{},"Пользователь вводит номер в приложении.",[43,1237,1238],{},"Сервис инициирует вызов на этот номер с заранее известного номера и сразу сбрасывает.",[43,1240,1241],{},"Приложение видит входящий вызов и считывает номер звонившего.",[43,1243,1244],{},"Последние цифры этого номера играют роль кода: приложение подставляет их само либо просит пользователя ввести.",[10,1246,1247,1248,1251],{},"Схема выглядит изящно, но у неё есть жёсткое ограничение: ",[22,1249,1250],{},"приложению нужен доступ к журналу вызовов",". Это чувствительное разрешение, и платформы его ограничивают. В Google Play выдача разрешения на журнал вызовов требует обоснования и проходит отдельную проверку, а в iOS публичного интерфейса для чтения журнала нет вовсе. В браузере такой сценарий невозможен по определению — веб-страница к журналу вызовов доступа не имеет.",[10,1253,1254],{},"На практике это означает, что обычный flash call применим в одном случае: Android-приложение с одобренным разрешением. Всё остальное — веб, iOS, мобильная версия сайта — остаётся за бортом.",[14,1256,1258],{"id":1257},"chto-takoe-obratnyy-reverse-flash-call","Что такое обратный (reverse) flash call",[10,1260,1227,1261,99],{},[22,1262,1263],{},"пользователь звонит сервису",[40,1265,1266,1269,1272,1275],{},[43,1267,1268],{},"Пользователь вводит номер в форме.",[43,1270,1271],{},"Сервис выдаёт выделенный номер и показывает его пользователю.",[43,1273,1274],{},"Пользователь звонит на этот номер со своего телефона. Отвечать не нужно — соединение сбрасывается автоматически.",[43,1276,1277],{},"Сервис определяет номер вызывающего абонента и сопоставляет вызов с ожидающей проверкой.",[10,1279,1280,1281,1284],{},"Ключевое следствие: ",[22,1282,1283],{},"читать ничего не нужно",". Звонок приходит к сервису, и он видит его на своей стороне — никакого доступа к журналу вызовов или сообщениям на устройстве пользователя не требуется. Поэтому сценарий одинаково работает в мобильном приложении, в мобильном браузере и на десктопе, и не упирается в политики магазинов приложений.",[10,1286,1287,1288,99],{},"Именно по этой схеме работает FlashCall. Подробный разбор механизма — в статье про ",[90,1289,93],{"href":92},[14,1291,1293],{"id":1292},"obychnyy-i-obratnyy-flash-call-sravnenie","Обычный и обратный flash call: сравнение",[144,1295,1297],{"className":1296},[147],[149,1298,1299,1309],{},[152,1300,1301],{},[155,1302,1303,1305,1307],{},[158,1304],{},[158,1306,547],{},[158,1308,550],{},[165,1310,1311,1319,1330,1339,1348,1356,1366,1376],{},[155,1312,1313,1315,1317],{},[170,1314,557],{},[170,1316,560],{},[170,1318,563],{},[155,1320,1321,1324,1327],{},[170,1322,1323],{},"Что служит доказательством",[170,1325,1326],{},"входящий вызов на номер",[170,1328,1329],{},"исходящий вызов с номера",[155,1331,1332,1335,1337],{},[170,1333,1334],{},"Разрешения приложению",[170,1336,571],{},[170,1338,574],{},[155,1340,1341,1344,1346],{},[170,1342,1343],{},"Работает в браузере",[170,1345,582],{},[170,1347,585],{},[155,1349,1350,1352,1354],{},[170,1351,590],{},[170,1353,582],{},[170,1355,585],{},[155,1357,1358,1360,1363],{},[170,1359,387],{},[170,1361,1362],{},"ничего либо вводит цифры номера",[170,1364,1365],{},"нажимает вызов",[155,1367,1368,1371,1374],{},[170,1369,1370],{},"Основной риск",[170,1372,1373],{},"отказ в разрешении, ограничения магазинов",[170,1375,616],{},[155,1377,1378,1381,1384],{},[170,1379,1380],{},"Строгость доказательства",[170,1382,1383],{},"подтверждает приём вызова",[170,1385,1386],{},"подтверждает совершение вызова",[10,1388,1389],{},"Последняя строка часто остаётся за кадром, а она содержательна: исходящий вызов доказывает больше, чем входящий. Принять вызов на номер проще, чем совершить вызов с него.",[14,1391,1393],{"id":1392},"chto-vybrat","Что выбрать",[10,1395,1396],{},"Ответ зависит от того, где живёт ваш продукт.",[232,1398,1399,1405,1411,1417],{},[43,1400,1401,1404],{},[22,1402,1403],{},"Только Android-приложение, разрешение уже есть"," — обычный flash call допустим, пользователь не делает вообще ничего.",[43,1406,1407,1410],{},[22,1408,1409],{},"Есть веб-версия или iOS"," — обычный flash call не покроет их, нужен обратный.",[43,1412,1413,1416],{},[22,1414,1415],{},"Хочется одну реализацию на все платформы"," — обратный, других вариантов нет.",[43,1418,1419,1422],{},[22,1420,1421],{},"Не хочется зависеть от политик магазинов"," — обратный: он не запрашивает чувствительных разрешений и не рискует при очередном ужесточении правил.",[10,1424,1425,1426,1430,1431,99],{},"Сравнение с SMS по стоимости и доставляемости — в материале ",[90,1427,1429],{"href":1428},"\u002Fblog\u002Fflash-call-ili-sms","flash call или SMS",". Особенности реализации на мобильных — в статье про ",[90,1432,986],{"href":329},[14,1434,1436],{"id":1435},"gde-primenyaetsya","Где применяется",[10,1438,1439],{},"Механизм один, а поводов подтвердить номер несколько:",[232,1441,1442,1452,1460,1466],{},[43,1443,1444,1447,1448,99],{},[22,1445,1446],{},"Регистрация"," — отсечь фейковые аккаунты, см. ",[90,1449,1451],{"href":1450},"\u002Fblog\u002Fregistraciya-po-zvonku-bez-koda","регистрацию по звонку",[43,1453,1454,1457,1458,99],{},[22,1455,1456],{},"Вход в аккаунт"," — вместо пароля или как второй фактор, см. ",[90,1459,755],{"href":754},[43,1461,1462,1465],{},[22,1463,1464],{},"Подтверждение операции"," — смена реквизитов, оформление заказа.",[43,1467,1468,1471,1472,99],{},[22,1469,1470],{},"Проверка контакта"," — перед доставкой или публикацией объявления, см. ",[90,1473,1474],{"href":779},"сценарии по отраслям",[10,1476,1477],{},"Общее ограничение у обеих схем одно и о нём стоит помнить при планировании: они работают, пока номер вызывающего абонента передаётся сетью, и в пределах той страны, чьи номера есть в пуле провайдера.",{"title":295,"searchDepth":296,"depth":296,"links":1479},[1480,1481,1482,1483,1484,1485],{"id":1203,"depth":296,"text":1204},{"id":1223,"depth":296,"text":1224},{"id":1257,"depth":296,"text":1258},{"id":1292,"depth":296,"text":1293},{"id":1392,"depth":296,"text":1393},{"id":1435,"depth":296,"text":1436},"Разбираемся",{"title":1488,"text":1489,"label":307,"href":308},"Обратный flash call на своём продукте","Работает в вебе и в приложениях, разрешений не требует. Ключ проекта выдаётся сразу после регистрации.","Flash call простыми словами: как работает подтверждение номера сбрасываемым звонком, чем от него отличается обратный (reverse) flash call и что выбрать для продукта.",[1492,1495,1498,1501],{"q":1493,"a":1494},"Как правильно писать — flash call, flashcall или флеш колл?","Все написания встречаются и означают одно и то же. В англоязычной документации\nчаще «flash call» в два слова, в русских текстах — «флеш колл», «флэш колл»\nи слитное «флешколл». Устоявшейся нормы для русского написания нет.\n",{"q":1496,"a":1497},"Flash call — это то же самое, что звонок-сброс?","Да, «звонок-сброс» и «сбрасываемый вызов» — русские описательные названия\nтого же механизма. Общее у всех вариантов одно: соединение не устанавливается,\nразговор не происходит, а информацию несёт сам факт вызова и номер.\n",{"q":1499,"a":1500},"Почему обычный flash call не работает в браузере?","Потому что он требует прочитать номер входящего вызова из журнала, а веб-страница\nк журналу вызовов доступа не имеет и иметь не может. Это ограничение самой\nплатформы, а не конкретной реализации.\n",{"q":1502,"a":1503},"Обратный flash call дороже обычного?","Не по природе механизма — обе схемы это один короткий вызов. Разница\nв модели тарификации у конкретного провайдера: важнее не тип flash call,\nа списывают ли деньги за попытку или за результат.\n","Что такое Flash Call и чем отличается обратный Flash Call",{},11,[332,1508,1187],"flash-call-ili-sms",{"title":1195,"description":1490},"blog\u002Fchto-takoe-flash-call","Flash call — подтверждение номера телефона сбрасываемым звонком вместо SMS-кода.\nТермин описывает два зеркальных сценария, и их постоянно путают. При обычном flash call\nзвонит сервис, а приложение считывает номер входящего вызова — для этого ему нужен доступ\nк журналу вызовов. При обратном (reverse) flash call звонит сам пользователь, и никаких\nразрешений не требуется, поэтому сценарий работает и в браузере, и на iOS.\n","203EjzAVRkoDjYAsBaU82tUjkJ47sQQRHBg9EaP47c0",{"data":1514,"body":1515},{},{"type":1516,"children":1517},"root",[1518],{"type":1519,"tag":10,"props":1520,"children":1521},"element",{},[1522],{"type":1523,"value":1524},"text","В мобильном приложении подтверждение номера звонком удобнее, чем где-либо ещё: набор\nоткрывается одним касанием через системный диалер, пользователю не нужно ничего\nпереписывать и вводить. Главное преимущество перед обычным flash call — приложению\nне требуются разрешения на чтение SMS и журнала вызовов, а их выдачу ограничивают\nи Google Play, и App Store. Проверка живёт 60 секунд, стоит 0,20 ₽ за состоявшийся звонок.",{"data":1526,"body":1527},{},{"type":1516,"children":1528},[1529],{"type":1519,"tag":10,"props":1530,"children":1531},{},[1532],{"type":1523,"value":1533},"Нет, и это ключевое отличие сценария. Приложение только открывает системный\nдиалер и опрашивает статус проверки по сети. Читать сообщения и журнал\nвызовов не требуется, поэтому и запрашивать соответствующие разрешения\nне нужно.",{"data":1535,"body":1536},{},{"type":1516,"children":1537},[1538],{"type":1519,"tag":10,"props":1539,"children":1540},{},[1541],{"type":1523,"value":1542},"С этой стороны придираться не к чему: чувствительные разрешения не запрашиваются,\nфоновой активности нет, всё общение с сервисом идёт обычными HTTP-запросами.\nИменно из-за разрешений обычный flash call часто и не проходит.",{"data":1544,"body":1545},{},{"type":1516,"children":1546},[1547],{"type":1519,"tag":10,"props":1548,"children":1549},{},[1550],{"type":1523,"value":1551},"Так и будет — набор номера сворачивает приложение по определению. Поэтому\nстатус нужно проверять и при возврате на передний план, а не только по таймеру:\nк этому моменту проверка обычно уже подтверждена.",{"data":1553,"body":1554},{},{"type":1516,"children":1555},[1556],{"type":1519,"tag":10,"props":1557,"children":1558},{},[1559],{"type":1523,"value":1560},"Отличается только способ открыть диалер — системная ссылка на iOS и намерение\nнабора на Android. Вся логика проверки одинаковая: создать, показать номер,\nопросить статус.",1787687891645]