Как проверить SMS-код при выдаче заказа и исключить повторную выдачу

Как проверить SMS-код при выдаче заказа и исключить повторную выдачу

Начните с правила: сотрудник выдаёт заказ только после того, как система принимает SMS-код и закрывает возможность использовать его снова. Для этого свяжите код с конкретным заказом, проверяйте его текущий статус и подтверждайте выдачу одним действием в рабочем интерфейсе. Ниже разберём, что настроить в программе магазина, как действовать при повторном вводе и что делать, если сообщение задержалось. Такой порядок подойдёт небольшому магазину в Беларуси с собственной точкой выдачи.

Что нужно настроить до отправки SMS-кода?

Определите, какая программа принимает окончательное решение о выдаче: система заказов, CRM или отдельный интерфейс сотрудника. Именно она должна проверять код. Сервис SMS передаёт сообщение клиенту и возвращает статус доставки, но сам по себе не подтверждает право забрать товар.

Начните с одного сценария: заказ собрали, сотрудник отметил готовность, система отправила SMS. Если отправлять код сразу после оформления покупки, клиент придёт раньше, чем магазин подготовит товар. Для запуска без CRM пригодится схема автоматических SMS о поступлении заказа в пункт выдачи.

Для каждого заказа задайте понятные условия проверки:

  • Код относится только к этому заказу, поэтому сотрудник сначала открывает его карточку.
  • Выдача доступна только в подходящем статусе: товар готов и ещё находится в точке.
  • После успешного подтверждения система больше не принимает код.
  • Если магазин выпускает новый код взамен прежнего, прежний сразу теряет силу.
  • Система ограничивает попытки ввода, чтобы код нельзя было подбирать без остановки.

Код получения подтверждает доступ к заказу в рамках выбранного магазином сценария. Он не подтверждает оплату. Если клиент платит при получении, сотрудник отдельно проверяет расчёт, прежде чем передать товар.

Как сотруднику проверять код при выдаче?

Сделайте проверку частью обычного рабочего экрана. Сотрудник должен видеть заказ, его статус и результат ввода кода без переходов между несколькими программами. Сверка с текстом SMS на телефоне клиента не заменяет проверку в системе: сообщение остаётся на экране и после выдачи.

  1. Найдите заказ по его номеру и откройте карточку.
  2. Сверьте состав заказа и проверьте, что он готов к выдаче.
  3. Введите код клиента в поле проверки.
  4. Дождитесь ответа системы, которая одновременно принимает код и фиксирует выдачу.
  5. Передайте товар после успешного подтверждения и выполнения условий оплаты.

Назовите кнопку так, чтобы сотрудник понимал последствия, например «Подтвердить выдачу». Если она лишь проверяет совпадение кода, а закрывать заказ нужно другой кнопкой, между действиями остаётся промежуток для ошибки. Для завершения выдачи лучше использовать одну команду.

При отказе система должна объяснять причину: «Код не подходит к этому заказу», «Заказ уже выдан» или «Действует новый код». Общая надпись «Ошибка» заставляет сотрудника гадать и повторять запрос. Текст ответа должен подсказывать следующее действие: проверить номер заказа, запросить актуальное сообщение или обратиться к ответственному сотруднику.

Как исключить повторное использование кода?

Передайте разработчику конкретное требование: проверка кода и фиксация выдачи должны проходить как одна неделимая операция. Программа сначала убеждается, что заказ ещё можно выдать и код подходит, а затем сразу отмечает выдачу и прекращает принимать этот код. Другой запрос не должен вклиниться между этими действиями.

Это нужно даже небольшой точке. Один сотрудник нажал кнопку повторно, другой открыл тот же заказ на соседнем рабочем месте. Если оба экрана успели показать «Код верный» до смены статуса, магазин получит два разрешения на выдачу.

Блокировка кнопки после нажатия помогает сотруднику, но не решает задачу полностью. Защита должна работать в программе, которая принимает запросы: после первого успешного подтверждения все следующие обращения получают ответ о завершённой выдаче.

Отдельно предусмотрите ситуацию, когда связь оборвалась после нажатия. Система уже могла закрыть заказ, хотя сотрудник ещё не увидел ответ. При повторном запросе интерфейс должен показать текущее состояние заказа. Надпись «Выдача подтверждена» не должна превращаться в новое разрешение передать ещё один комплект товара.

Если заказ отметили как выданный, но товар остался у сотрудника, нужен отдельный порядок исправления. Не возвращайте прежний код в действие обычной сменой статуса. Пусть ответственный сотрудник проверит ситуацию и оформит исправление через отдельную команду с понятной причиной.

Что делать, если SMS не пришло или код потерян?

Разделите повторную отправку сообщения и выпуск нового кода. В первом случае клиент снова получает действующий код, а состояние заказа не меняется. Во втором система создаёт замену и сразу прекращает принимать прежний код. Сотруднику нужно понимать, какое действие выполняет кнопка «Отправить повторно».

Сначала проверьте результат отправки. Ответ SMS-сервиса о приёме запроса ещё не означает доставку сообщения на телефон. Для разбора задержки нужен конечный статус доставки; такой подход описан и в материале о настройке SMS при задержке заказа (smsinfo.by).

В рабочем интерфейсе полезно разделить состояния «Запрос принят», «Сообщение доставлено» и «Ошибка доставки», если сервис возвращает такие сведения. Даже статус «Доставлено» не доказывает, что клиент прочитал SMS. Поэтому сотрудник уточняет, видит ли клиент сообщение, прежде чем запускать повторную отправку.

При интеграции по API предусмотрите защиту от повторных событий. Если программа дважды сообщила о готовности одного заказа, это не повод автоматически создавать разные действующие коды. Отправка уведомления и управление кодом должны следовать одному сценарию.

Если клиент потерял сообщение, предложите повторную отправку по правилам магазина. Когда доступа к телефону нет, сотрудник действует по отдельному порядку проверки получателя. Свободная кнопка «Выдать без кода» для любой ситуации обесценивает всю схему.

После отмены заказа прекратите принимать код и отключите напоминания о получении. Сообщения об отмене и возврате денег лучше настроить как отдельный сценарий: как отправлять SMS при отмене заказа и возврате денег. Позднее сообщение о готовности не должно возвращать отменённый заказ к выдаче.

Типичные ошибки при проверке SMS-кода

  • Сотрудник сравнивает код с записью в карточке вручную. Исправление: вводить код в поле, где программа проверяет и совпадение, и состояние заказа.
  • Код принимают без выбора заказа. Исправление: сначала открывать конкретный заказ, затем проверять код в его карточке.
  • Повторный клик запускает ещё одну выдачу. Исправление: повторный запрос должен возвращать уже известный результат без нового действия.
  • После замены работают оба кода. Исправление: выпуск нового кода сразу прекращает действие прежнего.
  • Уведомление об успешной отправке считают подтверждением получения товара. Исправление: отдельно показывать доставку SMS и результат выдачи заказа.

Перед запуском проверьте сценарий на тестовом заказе: правильный код проходит, повторный ввод получает отказ, а старый код после замены больше не действует. Затем проверьте одновременное подтверждение с разных рабочих мест и повтор запроса после обрыва связи. Результат должен оставаться одним: заказ выдан только один раз.

Следующий шаг на две минуты: добавьте в задачу разработчику критерий приёмки — «После успешной выдачи повторный ввод того же кода на любом рабочем месте не разрешает выдать заказ снова».