Создание платежной системы с нуля. Как сделать оплату в интернет-магазине через платежные системы? Варианты приема платежей

Глава 4. Платежные системы как элементы национальной платежной системы России

§ 1. Порядок создания платежной системы

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

Оператор платежной системы - это юридическое лицо, создавшее платежную систему. Оператором платежной системы может являться кредитная организация, организация, не являющаяся кредитной организацией и созданная в соответствии с законодательством Российской Федерации, Банк России или Внешэкономбанк (ст. 15 Закона о национальной платежной системе). Из текста нормы данной статьи следует, что оператором платежной системы не может быть иностранное юридическое лицо. Данная норма является одним из проявлений принципа национального характера национальной платежной системы России. Все иностранные организации, которые предоставляли на территории России платежные услуги в любой форме, теперь обязаны привести свою деятельность в соответствие с требованиями Закона о национальной платежной системе. Наиболее простым способом является получение такой организацией статуса оператора платежной системы.

Банк России осуществляет деятельность оператора платежной системы на основании Закона о национальной платежной системе. Все остальные организации должны получить статус оператора платежной системы в установленном Законом о национальной платежной системе порядке.

Организация, намеревающаяся стать оператором платежной системы, должна направить в Банк России регистрационное заявление. Порядок направления указанного заявления регламентирован Положением Банка России о порядке направления в Банк России заявления о регистрации оператора платежной системы от 2 мая 2012 г. № 378-П.

Если оператором платежной системы намеревается стать кредитная организация, то к регистрационному заявлению следует приложить следующие документы:

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

Если оператором платежной системы намеревается стать организация, не являющаяся кредитной, то она должна соответствовать следующим требованиям:

  • обладать чистыми активами в размере не менее 10 млн. руб.;
  • физические лица, занимающие должности единоличного исполнительного органа и главного бухгалтера такой организации, должны иметь высшее экономическое, высшее юридическое образование или высшее образование в сфере информационных и коммуникационных технологий, а при наличии иного высшего образования - опыт руководства отделом или иным подразделением кредитной организации или оператора платежной системы не менее двух лет;
  • физические лица, занимающие должности единоличного исполнительного органа и главного бухгалтера такой организации, не должны иметь судимости за преступления в сфере экономики, а также фактов расторжения трудового договора с ними по инициативе работодателя на основании, предусмотренном п. 7 ч. 1 ст. 81 Трудового кодекса Российской Федерации, в течение двух лет, предшествовавших дню подачи в Банк России регистрационного заявления.

К регистрационному заявлению организации, не являющейся кредитной организацией, намеревающейся стать оператором платежной системы, прилагаются следующие документы:

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

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

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

Платежная система должна иметь наименование, указанное в правилах платежной системы, содержащее слова "платежная система". Ни одна организация в Российской Федерации, за исключением организации, зарегистрированной в реестре операторов платежных систем, не может использовать в своем наименовании (фирменном наименовании) слова "платежная система" или иным образом указывать на осуществление деятельности оператора платежной системы. Операторы услуг платежной инфраструктуры, участники платежной системы вправе указывать на принадлежность к платежной системе в соответствии с правилами платежной системы. Банк России вправе использовать слова "платежная система" в отношении платежной системы Банка России.

Банк России отказывает кредитной организации в регистрации в качестве оператора платежной системы в случае:

Банк России отказывает организации, не являющейся кредитной организацией, в регистрации в качестве оператора платежной системы в случае:

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

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

Оператор платежной системы может быть исключен Банком России из реестра операторов платежных систем. Это может произойти:

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

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

Для оператора платежной системы, являющегося кредитной организацией, Банком России или Внешэкономбанком, допускается совмещение деятельности оператора платежной системы с деятельностью оператора по переводу денежных средств, оператора услуг платежной инфраструктуры и с иной деятельностью, если это не противоречит законодательству Российской Федерации. Оператор платежной системы, не являющийся кредитной организацией, может совмещать свою деятельность с деятельностью оператора услуг платежной инфраструктуры (за исключением расчетного центра) и с иной деятельностью, если это не противоречит законодательству Российской Федерации. Это представляется абсолютно логичным. Так, перевод денежных средств является банковской операцией, осуществлять которую могут кредитные организации на основании лицензии Банка России; Банк России и Внешэкономбанк осуществляют эту операцию на основании законов, определяющих их статус. Что касается операторов услуг платежной инфраструктуры, то применительно к каждому из трех их видов установлены конкретные требования и ограничения в отношении лиц, имеющих право осуществлять деятельность конкретного оператора. Так, например, расчетный центр исполняет распоряжения участников платежной системы посредством списания и зачисления денежных средств по банковским счетам участников платежной системы, что является банковской операцией, поэтому расчетным центром может быть только кредитная организация, Банк России или Внешэкономбанк. А функции операционного центра может исполнять и организация, не являющаяся кредитной, поскольку его деятельность состоит в обеспечении обмена электронными сообщениями между участниками платежной системы и иными заинтересованными лицами и не связана с оказанием банковских услуг.

Оператор платежной системы обязан:

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

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

От автора: здравствуйте, друзья! По статистике, около 10% посетителей интернет-магазина отсеиваются еще на этапе оплаты покупки, потому что элементарно не могут понять, как им рассчитаться за товар или услугу, либо представленная на сайте форма оплаты для них неудобна. В нашей сегодняшней статье вы узнаете, как сделать оплату в интернет-магазине. И это, пожалуй, самый простой способ увеличить количество продаж без вложений.

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

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

Техническая сторона вопроса

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

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

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

Выбор платежной системы

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

Робокасса

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

контактных данных с представителями магазина.

Комиссия за платеж разнится в зависимости от выбранной платежной системы и может достигать 12%.

W1

Подключение происходит аналогичным образом: регистрация, указание персональных данных, настройка параметров под собственные нужды. Комиссия - от 3%.

Qiwi-кошелек

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

Комиссия Киви составляет 1% со всех переводов.

Яндекс.Деньги

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

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

WebMoney

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

После этого добавляете интернет-магазин в каталог сайтов на megastock.ru. Это займет еще 1-3 дня. Плюс системы заключается в том, что вы можете протестировать платеж (по факту все проходит стандартным образом, только деньги не снимаются). Это преимущество позволяет заранее отловить ошибки в коде.

Переведенные клиентом средства попадают на указанный при регистрации кошелек WebMoney. Комиссия предусмотрена только за совершение самого платежа (изымается с клиента).

В чем ценность подключения онлайн-оплаты?

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

Стоит отметить, что мы с вами изучили не все существующие платежные системы, а лишь самые популярные.

Как быть юридическим лицам?

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

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

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

Без электронных платежных систем не сможет обойтись ни один человек, который работает в интернете. Ведь нужно же где-то хранить заработанные деньги и как-то получить их наличными! Многие сайты для заработка предоставляют несколько платежных систем для вывода денег, а уже с платежной системы деньги можно с легкостью вывести на любую карту банка.

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

Лучший электронный кошелек для граждан РФ. После регистрации вам необходимо идентифицировать свою личность для того, чтобы пользоваться всеми привилегиями данной платежной системы. Вы будете получать различные бонусы и скидки на многие товары, а так же оплачивать большинство услуг. Но самое главное, можно оформить карту Яндекс.Деньги и снимать наличку в любом банкомате без комисси! Заказать карту можно в разделе "Карты Яндекс.Денег".

Самая распространённая платежная система, основанная в 1998 году. В настоящее время число ее пользователей превышает 30 миллионов человек. Эта платежная система идеально подойдет для вывода денег со всех русскоязычных сайтов для заработка. В платежной системе Webmoney вы сможете зарегистрировать электронные кошельки многих валют: рубли (WMR), гривны (WMU), доллары (WMZ), евро (WME) и другие. Webmoney очень серьезная система, которая имеет много ступеней защиты для безопасности денежных счетов своих клиентов. Поэтому процесс регистрации имеет достаточно много этапов, но это того стоит!

Эта платежная система была основана в Грузии 4 года назад и имеет свои представительства в России и Великобритании. За этот небольшой срок, стала очень популярной и имеет ряд существенных преимуществ, по сравнению с другими платежными системами. Вывод денежных средств на Payeer кошелек доступен на русскоязычных сайтах для заработка и на некоторых зарубежных. После простой регистрации в этой системе вам будет доступен электронный счет, на который можно переводить рубли, доллары и евро. Так же платежная система Payeer имеет свой внутренний обменник, что позволит обменять валюту различных электронных кошельков.

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

Универсальная платежная система, которая используется во многих зарубежных и русскоязычных сайтах для заработка. На Perfect Money вам будут доступны электронные счета в долларах, евро, драгоценных металлах (золото) и Bitcoin, которые можно обменивать между собой. Электронная платежная система очень удобная и простая в использовании, к тому же в ней есть русский интерфейс. Советую всем зарегистрироваться на Perfect Money, так как, исходя из практики, этой платежной системой приходится пользоваться довольно часто.

29 октября 2010 в 17:28

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

  • Блог компании Mail.ru Group

Летом 2009 года компания Mail.Ru объявила о запуске новой платежной системы, созданной силами собственных разработчиков (напомним, что до этого технологическую и сервисную поддержку проекта Деньги@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
  • как это было
Добавить метки

Привет, Хабр! Мы в RBKmoney новый платежный процессинг написали. С нуля. Ну не мечта ли?



Мы расскажем, как написали весь процессинг RBKmoney Payments, так мы его назвали. Как делали его устойчивым к нагрузкам и сбоям оборудования, как придумали возможность его практически линейного горизонтального масштабирования.


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


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


Disclaimer

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


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


Суровая реальность такова, что за платежным процессингом находятся платежные организации, вовсе не с распростертыми объятиями принимающие такой трафик, а иногда даже просящие "присылать нам не более 3 запросов в секунду". А на интерфейсы смотрят люди, которые, может быть, впервые в интернете решились что-то оплатить. И любой косяк UX, непонятность и задержка - это повод запаниковать.

Корзина, в которую можно положить покупки даже во время торнадо


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


Подход звучит знакомо, не так ли?


Да, мы вдохновлялись концепцией, описанной в Amazon Dynamo Paper . Парни из Амазона тоже строили все так, что пользователь должен иметь возможность положить книжку в корзину, какая бы жуть ни творилась по ту сторону его монитора.


Конечно, мы не нарушаем законы физики и не придумали как опровергнуть CAP-теорему . Не факт, что платеж тут же и проведется - ведь могут быть неполадки и на стороне банков, но запрос сервис создаст, и пользователь увидит, что все сработало. Да и нам до идеала еще десяток листингов беклога с техническим долгом, чего греха таить, можем и 504 ответить изредка.

Заглянем в бункер, раз торнадо за окном


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


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


Сами приложения у нас крутятся в Docker-контейнерах, логи из которых мы надежно сливаем в центральное Elasticsearch-хранилище; друг друга они находят через Service Discovery, а данные передают по IPv6 внутри Макросервиса .


Все собранные и работающие совместно микросервисы вместе с сопутствующими службами являются Макросервисом, который предоставляет вам в итоге платежный шлюз, каким вы его видите снаружи в виде нашего публичного API.


За порядком приглядывает SaltStack, в котором описано все состояние Макросервиса.


Мы еще вернемся с подробным описанием всего этого хозяйства.


С приложениями легче.


А вот если хранить где-то состояние, то обязательно в такой базе, в которой минимальна цена выхода из строя части нод. Еще чтобы в ней не было мастер-нод с данными. Чтобы могла с предсказуемым временем ожидания на запросы отвечать. Это тут мечтают? Тогда еще чтобы ее обслуживать особо не надо было, и чтобы разработчикам-эрлангистам нравилась.


Да, разве мы еще не сказали, что вся онлайн-часть нашего процессинга на Эрланге написана?


Как многие уже, наверное, догадались выбора у нас как такового и не было.


Все состояние онлайн-части нашей системы хранится в Basho Riak . О том, как готовить Riak и не сломать себе пальцы (потому что мозг вы сломаете обязательно), мы еще расскажем, а пока продолжим дальше.

Где деньги, Лебовски?


Если взять бесконечное количество денег, возможно, удастся построить бесконечно надежный процессинг. Но это не точно. Да и денег нам особо не выделили. В аккурат на сервера уровня "качественный, но Китай".


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


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


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


Но с серверами легче.


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


Но с дисковыми массивами так не поступить! Выход из строя даже небольшого дискового хранилища - это отказ части платежного сервиса, чего мы себе позволить не можем. Дублировать СХД? Слишком нецелесообразно.


А дорогие брендовые дисковые массивы мы себе позволить не хотим. Даже из простого чувства прекрасного - они не будут смотреться рядом со стойками, где ровными рядами набиты ноунеймы. Да и неоправданно дорого это все стоит.


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


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


Таким образом у нас получилась удобная, отказоустойчивая и универсальная система - стойка, набитая простыми дешевыми серверами, несколько свитчей. Следующая стойка. И так далее.


Просто, удобно и в целом - очень надежно.

Прослушайте правила поведения на борту


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


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


Мы решили ничего не запрещать, а наоборот, поощрять все новое. Так у нас в продакшене построился Макросервис из огромной кучи приложений в докер-контейнерах, управляемый через SaltStack , кластеры Riak"а, Consul в качестве Service Discovery, оригинальная реализация трассировки запросов в распределенной системе и множество других замечательных технологий.

erlang/otp Добавить метки

В продолжение темы:
Устройства

можно не только отправлять сообщения и совершать аудиовызовы, но еще и создавать видеоконференции. Для использования этой возможности требуется веб-камера. В ноутбуках она...

Новые статьи
/
Популярные