Предыстория

В ответ на USSD-запрос о состоянии баланса клиент получает ответ в долларах (USD).

Текущая тарификация клиента осуществляется в злотых (PLN). Чтобы вести учет баланса и расходов на терминацию в единой валюте, необходимо совершить конвертацию к PLN.

Клиент получает сообщение следующего вида: “Your balance is 25 USD”.

Решение

Нам необходимо создать USSD-запрос для проверки баланса, присвоить его к активному тарифу и настроить алгоритм конвертации валюты.

  • Шаг 1: Необходимо "отпарсить" и распознать USSD-ответ о состоянии баланса.

Для этого используем следующее регулярное выражение:

Your balance is (?P<sim__balance>-?\d+(\.\d*)?) USD

  • Шаг 2: Конвертируем значение баланса в нужную валюту согласно актуальному обменному курсе.

Используем следующее выражение:

float({sim__balance})*3,9

Где 3,9 – текущий курс.


Система рассчитает изменение автоматически и занесет в статистику значение в нужной валюте (PLN).

Кейс будет выглядеть следующим образом:


Удачи :)