Система лояльности
Взгляд пользователя.
Покупатель перед оплатой покупки запускает на своём телефоне Java приложение (Midlet) которое после некоторой задержки отображает на экране мобильного телефона штрих-код. Продавец, посчитав сумму сделанной покупки, сканирует этот штрих-код и видит, какую скидку магазин должен предоставить этому покупателю. Всё.
Закулисье.
Java мидлет после запуска запрашивает одноразовый числовой или символьный код у агрегатора услуги мобильного дисконта. Каналы могут быть различными - SMS запрос-ответ, USSD запрос - SMS ответ, GPRS запрос-ответ и т.д. Затем полученный код преобразуется в штрих-код и отображается на экране мобильного устройства.
Сервер агрегатора услуг ожидает запросы от Java мидлетов и от терминалов, установленных в магазинах. При получении запроса с мобильного телефона, по номеру абонента ищется запись в таблице клиентов, затем генерируется уникальный на момент выдачи идентификатор, который сохраняется в записи пользователя и отправляется в ответе. Если пришёл запрос от терминала, установленного в одной из точек продаж, то полученный идентификатор ищется в той же таблице пользователей. В случае наличия записи с таким идентификатором (идентификатор действительно выдавался), терминалу отправляется ответ, содержащий информацию о соответствующем клиенте дисконтно-бонусной системы, а временный идентификатор удаляется из записи пользователя.
Терминал в точке продаж после вычисления суммы покупки и считывания идентификатора с экрана мобильного телефона отправляет идентификатор на сервер агрегатора и ожидает ответа. Ответ интерпретируется и выдаётся на экран терминала.
Как запись пользователя, так и сообщения между терминалом и сервером агрегатора могут быть расширены любой дополнительной информацией. Так же, как на сервере, так и на терминале могут быть проведены любые дополнительные бизнес процессы особенные для конкретной программы лояльности, для конкретного брэнда, конкретной точки продаж, конкретного времени суток и т.д.