Летом 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 #как это было
-
Вы Заражены Вредоносным По?
19 Oct, 24 -
Малыш Асус + Везде Какая-То Реклама Или Еее!
19 Oct, 24 -
База Данных Классификатора. Обновлять.
19 Oct, 24 -
Как Ии Сделает Вас Стройнее. Часть 2
19 Oct, 24 -
Выпуск Коган Агоры Отложен
19 Oct, 24 -
Теория Заговора
19 Oct, 24 -
Неофициальное Руководство По Алгоритму Digg
19 Oct, 24