Предыстория
Клиент загружает в банк совершенно новые SIM-карты. Для выгодной терминации звонков с этой карты ему нужно запросить бонусы от GSM-оператора. Цена бонуса составляет 4000 единиц. Условие: перед запросом бонусов, с карт запрещено звонить. По исчерпании бонусов, клиент должен проделать такие же действия: пополнить карты, сделать запрос на бонусы, а затем звонить до исчерпания бонусов.
Решение
ШАГ 1: Пополнение счёта
- Требования:
Сервис GoAntiFraud производит автоматическое пополнение баланса через USSD запросы.
Допустим, сумма 1 ваучерной карты составляет 1000 единиц. Следовательно, нам нужно совершить 4 запроса для пополнения счёта (1000 х 4), чтобы иметь возможность запрашивать бонусы.
- Выполнение:
Нам необходимо создать USSD-запрос для пополнения счёта и закрепить его за тарифом и не звонить до тех пор, пока баланс не достигнет 4000 единиц.
После того, как баланс в норме, мы должны установить логику ещё одного USSD-запроса. Мы можем разделить данную логику на два шага USSD ответа:
- Первый шаг: баланс меньше 4000 единиц -> нет изменений / обновить баланс и сделать запрос снова;
- Второй шаг: баланс превышает 4000 единиц -> переключить тариф на другой и запросить бонусы.
Вкратце, нам просто нужно добавить 2 случая и обработать их используя различные действия.
Пример: USSD ответ на запрос о пополнении счета:
Ваш баланс пополнен на 1000;
Текущий баланс составляет 2800;
*** и т.д. ****
Используя возможности регулярного выражения, мы можем разделить ответ, содержащий различные значения баланса, на 2 случая:
([\w\W])*Текущий баланс составляет (?P<sim__balance>-?[1-9]?[4-9]\d\d\d+(\.\d*)?)([\w\W])*
В первом случае обработки баланса не произойдёт, если баланс меньше 4000 единиц.
([\w\W])*Текущий баланс составляет (?P<sim__balance>-?(([1-3]\d{3}|[0-9]{1,3}\))(\s*|\.\d*)?)([\w\W])*
Во втором случае обработки баланса не произойдёт, если баланс больше 4000 единиц .
!Если вы не знаете, как использовать шаблон регулярного выражения, наш специалист call-центра может помочь вам разобраться!
Выглядеть это будет так:
В успешном случае баланс составляет больше 4000 -> включить тариф
style="margin: 0 0 0 40px; border: none; padding: 0px;">
В противном случае, баланс, по-прежнему, меньше 4000 ->
повторно запросить пополнение.
Теперь давайте сохраним эти USSD-запросы и закрепим их за тарифом
вместе с запросами на пополнение счёта.
Сначала нужно создать пополнение:
и закрепить за стартовым тарифом без звонков:
ШАГ 2: Запрос на баланс
Создаём ещё один тариф без звонков. Основная цель - отправить
запрос на бонусы.
Поэтому нужно создать пустой тариф с одной опцией:
Для данной опции необходимо закрепить запрос на бонус.
Пример: Если ответ выглядит подобным образом
Теперь вам доступны бонусы!
У вас 1000 минут до 2016-02-25.
Тогда, редактор USSD будет выглядеть так:
Таким образом, после того как бонус уже доступен, мы переходим к третьему тарифу – WORK и он будет обрабатывать наши основные вызовы, пока бонусы доступны.
ШАГ 3: Откат
Остался один момент: по исчерпании бонусов мы должны вернуться к START. Делаем это так же, как и в других случаях.
Нам необходимо принять неудачные ответы и переключить их на тариф START.
Пример: По окончании бонусов, вы получите следующий ответ от оператора
Бонусов не осталось.
Чтобы запросить бонус, отправьте *222#
Цена составляет 4000
***и т. д.***
Редактор USSD будет выглядеть следующим образом:
Итак, мы имеем расширяемую и гибкую логику для реализации любой из ваших потребностей.
Удачи :)