Как Создаются Платежные Системы: Часть Первая

Летом 2009 года компания Mail.Ru объявила о запуске новой платежной системы, созданной собственными разработчиками (напомним, что до этого платежная система MoneyMail осуществляла технологическую и сервисную поддержку проекта Деньги@Mail.Ru).

Новый проект должен был, среди прочего, предложить пользователям портала единый, удобный и безопасный механизм оплаты различных услуг компании – от развлекательных проектов (Игры, Приложения в Моем Мире) до проектов электронной коммерции (Продукты, Недвижимость).

, Рассылки).

Прошел год. Деньги@Mail.Ru продолжают развиваться, увеличивая количество финансовых инструментов как для пользователей, так и для магазинов.

Для пользователей это возможность совершать переводы внутри системы, оплачивать различные услуги и товары (от оплаты многочисленных игр, сотовой связи, Интернета и ЖКХ до приобретения одежды и билетов), возможность внесения депозита в банке.

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

Например, сервисы портала и магазины, подключенные к Деньги@Mail.Ru, имеют возможность принимать платежи от пользователей, хранящих свои электронные средства в других платежных системах — WebMoney, Яндекс.

Деньги и ряде других.

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

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

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

Если вас интересуют какие-либо другие темы, касающиеся Деньги@Mail.Ru, спрашивайте, мы постараемся это осветить.



Как закалялась сталь

Задача начать работу над новым проектом была поставлена перед нашим отделом в конце 2008 года.

На тот момент платежные системы не были тем типом проектов, которые Mail.Ru привыкла разрабатывать, запускать и успешно эксплуатировать.

Однако уже на этапе постановки задачи появилось понимание Что должны были быть учтены и реализованы в процессе разработки.

Мы назвали эти требования «МММ» (это, конечно, шутить ) по первым буквам.

Вот они:

  • М масштабируемость
  • М мульти валюта
  • М новизна
Немного подробнее о каждом из них.



Масштабируемость

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

Покрытие проекта memcache, поднятие master-slave репликации — эти понятия знакомы многим людям, которые пытались что-то сделать, чтобы проект не тормозил.

К сожалению, даже эти простые методы обычно не могут помочь быстро — нужно научить компоненты системы обращаться к кешу, использовать один сервер базы данных для записи и множество для чтения и так далее.

Быстро обеспечить хорошее горизонтальное масштабирование (scale-out) — не всегда тривиальная задача.

.

И нам не хотелось столкнуться через неделю, месяц или год после запуска с тем, что для решения этой проблемы нам придется переписывать проект, который все это время не справлялся со своей основной задачей.

задача - электронные платежи.

Поэтому уже на этапе проектирования системы необходимо было заложить основу для простого масштабирования Деньги@Mail.Ru.

Мульти валюта

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

Ну не предусмотрена в коде работа с разными сущностями! Во многих виденных нами случаях проблема зачастую решалась путем создания нового набора таблиц для апельсинов, аналогичного «яблочным», и копирования ранее написанного кода с заменой $iApples на $iBananas .

В остальных случаях решение проблемы было более адекватным — в базе данных появлялись дополнительные поля, классы наследовались от готовых с добавлением некоторых новых методов и свойств (например, атрибут «кожура» для яблока — обрабатывается совершенно иначе, чем банан).

Но даже такое решение иногда требовало довольно больших изменений в коде.

Поэтому необходимо было немедленно внедрить в систему мультивалютность.



Несколько дисплеев

Самое загадочное на первый взгляд свойство, но объяснение очень и очень простое.

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

Запустить такую новую витрину тоже должно быть очень просто — не сложнее, чем добавить пару строк в файлы конфигурации системы и, при необходимости, новые шаблоны пользовательского интерфейса.

Конечно, это не все требования к платежной системе, но именно они больше всего повлияли на архитектуру системы.

Новый проект должен был быть достаточно гибким и отказоустойчивым.

Удалось ли нам это сделать? Да, это было полностью успешно.

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

Мы можем обрабатывать все валюты мира (национальные банки, ой!), не думая о том, как поведет себя система.

Чтобы не быть голословным — сейчас система использует уже несколько валют (ох уж эти юридические заморочки!).

Ну и в качестве примера витрин можно привести версию сайта для отладки магазинов, где используется тестовая валюта; мобильная версия сайта , который имеет собственный набор доступных действий и собственные шаблоны.

Другой пример — витрина для работы магазинов с API, где используется метод авторизации, отличный от того, который используется для идентификации пользователей портала в Деньги@Mail.Ru. Запуск этих витрин для системы действительно выглядел не чем иным, как появлением в конфигурационных файлах блоков с описанием витрин и пары папок с шаблонами.

Точно так же мы можем обеспечить, например, работу над нашим движком для платежной системы Деньги@ВКонтакте.

Ру или любой другой, изъявившей такое желание.

Думаю, многим интересно, как нам удалось все это реализовать с технической точки зрения.

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

Оставайтесь с нами! Команда Деньги@Mail.Ru Теги: #платежные системы #mail.ru #как это было

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.