Рассмотрим взаимодействие с компанией SweetCard, которая представляет достаточно удобную платформу таргетированных предложений держателям карт. В «МКБ Онлайн» это раздел «Персональные предложения». Данная статья не преследует цели раскрыть все нюансы технического взаимодействия систем (это обусловлено политикой безопасности банка – по запрету предоставления программного кода в открытых источниках), а носит ознакомительный характер общих принципов взаимодействия со сторонними организациями и между подразделениями, у которых может быть своя среда разработки. Проект стартовал в июне 2018 года – и на тот момент еще слабо представлялось, какое дальнейшее развитие он может получить. Было запланировано взаимодействие с ритейлерами, список которых предоставляется в формате JSON со стороны компании-посредника – SweetСard. Единый формат позволяет подключать большое количество ритейлеров по унифицированному способу взаимодействия. Доходы обеих сторон – банка и ритейлеров – зависят от транзакционной активности клиентов. При этом промоматериалы размещаются на стороне банка (в данном случае в интерфейсе «МКБ Онлайн» «Персональные предложения»), а ритейлеры делятся частью прибыли от привлечения новых клиентов.  Обезличенные данные по транзакционной активности в банке поступают в виде текстовых файлов на sftp-сервер по защищенному каналу в установленном формате обмена. Далее платформа SweetCard обрабатывает полученные данные по транзакциям, сохраняет у себя в базе, и раз в месяц производится расчет суммы кешбэка для каждого счета клиента. После того как расчет произведен, SweetCard возвращает реестр со списком уникальных идентификаторов карты и суммой кешбэка – согласно условиям акции. После того как на стороне АБС банка появляется платежный документ на сумму, которая совпадает с суммой реестра, производится автоматизированное начисление кешбэка в рублях на карточный счет клиента. Формат JSON выбран не случайно – он имеет более компактный код и, следовательно, меньший размер файлов для передачи по sftp-каналу – если сравнивать с XML. Обмен осуществляется большими объемами  данных (более чем 5 млн записей), т. к. для каждого клиента свои, уникальные акции с учетом его возраста, пола, покупок на основе предыдущих транзакций. Также формат JSON позволяет реализовать более гибкое взаимодействие с веб-сервисами банка. В файлах с предлагаемыми акциями со стороны ритейлеров также учтен не только тип файла и процентная ставка кешбэка, но и детально прописаны почтовые адреса, мерчанты и терминалы, в которых действует та или иная акция. Пример файла акций со стороны SweetCard за прошлый год. Файлы фотографий для оформления акции в интерфейсе для мобильного приложения предоставляются со стороны ритейлера (сохраняются банком на сетевом ресурсе с ограниченным доступом). Можно также отметить, что формат JSON вполне читаемый даже для человека, который далек от разработки. Т. е. в случае необходимости даже контент-менеджер способен редактировать текст акции (если вдруг ритейлер изменил условия в последний момент или отказался от акции) в исходном файле, не прибегая к полной выгрузке программными средствами всех акций или полного объема предложений для клиентов. JSON-файл обрабатывается последовательно, что позволяет даже в случае ошибки в исходных данных сохранить ранее обработанные строки, потеряв данные только проблемной строки. Эта его особенность позволяет сэкономить время, что особенно важно при работе с большими объемами данных и необходимостью быстро предоставить клиентам оперативные данные по акциям. После того как файл передан посредством sftp-канала в сетевое хранилище банка, запускается робот обработки файлов. Содержимое файла загружается в CLOB-поле в темповой таблице в базе Oracle – реализовано посредством использования хранимых процедур Java в Oracle на языке PL/SQL. Полученный список файлов обрабатывается посредством функционала стандартного пакета dbms_lob. Не буду описывать последовательные вызовы, т. к. информации по этой теме более чем достаточно на просторах Рунета. Далее производится парсинг полученного CLOB-формата согласно формату, оговоренному банком и платформой SweetCard. Полученные данные в таблицах Oracle доступны для чтения посредством хранимых процедур – для функционала других систем банка, т. е. формирования справочников для ведения статистики через интерфейс – для сотрудников бэк-офиса и, соответственно, для вывода в интерфейс для клиентов. Ниже приведен скриншот из мобильного приложения банка.  Ритейлер заинтересован в том, чтобы клиент знал об участии в акции и осознанно совершил ту или иную покупку, а не случайно «попал под акцию», поэтому в 2021 году в дополнение к имеющемуся и работающему с 2018 года коду был добавлен  функционал активирования той или иной акции в интерфейсе. Конечно, это вызывает дополнительные действия со стороны клиентов, но это вынужденная необходимость. Также это помогает избежать вопросов в службу поддержки банка, что за суммы поступили на счет клиента. С октября 2021 года с начислений в рублях на карточный счет клиента планируется перейти на баллы банка. На первый взгляд может показаться, что это несет неудобства клиенту, т. к. деньги на его счету не требуют каких-то дополнительных действий, т. е. получается живой кешбэк – клиент оплатил покупку рублями (валютных выплат не предусмотрено в рамках акции «Персональные предложения») – в рублях же получил кешбэк. Но это только на первый взгляд. В рамках программ лояльности для любых покупок клиента действует программа лояльности «МКБ Бонус». Т. к. повышенный кешбэк для программы лояльности обычно составляет 5%, а кешбэк для остальных операций 1%, то у клиента, который недостаточно активно пользуется картой,  не всегда получается быстро накопить баллы для компенсации (необходимая сумма должна быть более 1000 баллов). Теперь же, когда программа «Персональные предложения» также переходит на баллы, сумма 1000 баллов может быть накоплена гораздо быстрее, поскольку в персональных предложениях бывает до 30% (!) кешбэка от ритейлеров. Соответственно, поучаствовав в акции из «Персональных предложений», клиент может увеличить свой доход, т. к. выведет из «МКБ Бонус» все баллы,  которые раньше могли бы быть потеряны (сгорали с течением времени), если клиент забыл о них. По факту клиент ничего не теряет с переходом на баллы, т. к. 1 балл равен 1 рублю. Вот такие изменения были предусмотрены технически, т. е. даже в них есть забота о клиенте, который будет более эффективно участвовать в акциях банка.  Соответственно, если по каким-то причинам клиент (отключена бонусная программа, например) не может получать баллы, в «МКБ Бонус» производится возврат на счет SweetCard в рублях. Конечно же, это указано в условиях акции – и информационные баннеры в приложении напомнят, как получить максимально выгодные предложения от партнеров банка. Казалось бы, очень хорошая программа – с большим количеством ритейлеров – предоставляется благодаря использованию платформы SweetCard. Но банк шагнул дальше: теперь у клиентов МКБ появились новые акции – больший список, чем был ранее, до 2021 года. А связано это с тем, что у банка есть своя платформа лояльности, которая предоставляет доступ к ритейлерам, которых не было у SweetCard. Т. е. заключаются отдельные договоры с ритейлерами напрямую, на очень выгодных условиях для клиентов, т. к. нет выплат посредникам. Среди партнеров банка развлекательные площадки, компании, предоставляющие медицинские услуги, турфирмы, распространенные сетевые магазины и многое другое. Разработчиками МКБ был реализован свой механизм взаимодействия с ритейлерами посредством интеграционной шины. Ритейлеры могут использовать платформу лояльности для внесения информации по акциям. В текущей версии приложения «МКБ Онлайн» многие пользователи уже оценили новые акции от платформы лояльности МКБ. Статистика переходов, кликов по рекламным баннерам свидетельствует об этом. Немаловажным является то, что в интерфейсе акции от платформы лояльности банка и от ритейлеров SweetCard для клиентов выглядят идентично, т. к. способ взаимодействия партнеров с банком – это избыточная информация для них. Статистика участия в акции и все действия клиентов сохраняются посредством иерархического логирования в хранилище данных на основе платформы Oracle. Реализован комплекс хранимых процедур для подробного журнализирования действий клиента. Т. е. если клиент обратится с вопросом, за что был начислен тот или иной кешбэк, то банк сможет предоставить информацию за все время существования проекта (более 3 лет). Но это уже тема для отдельной статьи.  Для пользователей Private Bank, которые, конечно же, ценят свое время, реализован специальный интерфейс, в котором отображаются только самые интересные и выгодные предложения с повышенным кешбэком. Эту доработку разработчики банка реализовали не так давно, но по статистике переходов можно видеть, что она помогла увеличить процент участников акции «Персональные предложения» именно со стороны vip-клиентов. Следите за новостями банка, не забывайте вовремя обновлять приложение «МКБ Онлайн». Вас ждет еще много интересных акций с повышенным кешбэком и специальные предложения по бонусам. Разработчик