Как мы обрабатываем 400 платежей в секунду, чтобы спасать больше жизней

С какими сложностями сталкиваются благотворительные фонды при сборе пожертвований во время акции с участием телеканала? Как обеспечить высокую производительность платежной системы? Какой язык программирования позволяет обслуживать фонды в период акции на телевидении? Ответы — в нашем кейсе о работе с благотворительными фондами «Линия жизни» и «Адели».

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

Один из наших клиентов — благотворительный фонд «Линия жизни» помогает детям с тяжелыми заболеваниями. Чтобы собрать деньги на лечение, фонд проводит акции в эфире Пятого канала. Другой наш клиент — благотворительный фонд «Адели» помогает детям-инвалидам с ДЦП. Его акции проходят в эфире телеканала ОТР.

Сначала транслируется короткий ролик с призывом поучаствовать в благотворительности. Затем на экране появляется 4-значный номер, на который предлагается отправить СМС с суммой пожертвования в благотворительный фонд со счета мобильного телефона.

Проблема:

На прием пожертвований нам, как платежной системе, дается 24 часа. Сложности появляются в пики активности, которые из-за разных часовых поясов нашей страны возникают в течение суток с момента выхода эфира. Когда на экране крупного телеканала появляется номер для отправки СМС, на platbox обрушивается шквал запросов на пожертвования: от 50 рублей до куда более крупных сумм. Количество финансовых транзакций может доходить до 40-60 в секунду, и каждую нужно оперативно обработать.

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

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

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

Решение проблемы:

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

Как у нас это получилось:

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

А теперь про деньги:

За месяц через platbox проходят следующие суммы:

  • 26 млн рублей (январь 2019 года)
  • 23 млн рублей (апрель 2019 года)
  • 21 млн рублей (июль 2019 года)
  • 24 млн рублей (декабрь 2019 года)

Неравномерность цифр объясняется сезонностью. Меньше всего пожертвований благотворительные фонды получают летом — это связано с отпусками и роумингами.

Что дальше:

Сейчас мы работаем над увеличением конверсии и возможностью работать с еще более сложными кейсами с технической точки зрения. Для этого тестируем и планируем перейти на гиперконвергентную инфраструктуру от крупнейшего игрока рынка — Nutanix. Во всем мире она используется в космической и банковской промышленности. Систему выбирают лидеры отраслей: ее внедрила, например, крупнейшая европейская финансовая группа Société Générale, американская биржа Nasdaq, автопроизводители Hyundai и Toyota, бренды Xiaomi и Nintendo, сеть роскошных магазинов Nordstrom. В России система Nutanix применяется в одном из крупнейших банков с госучастием. Суть системы в таком способе организации серверов, который дает возможность создавать свои облака, защищая дата-центр от уязвимости в пиковые моменты. Что особенно актуально в такое ответственное время, когда проходит благотворительная акция с участием крупного телеканала.

Что получают фонды от работы с нами:

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

Связать электронную карту или кошелек с обычным телевизором невозможно. Даже от пользователей Smart TV с привязанной банковской картой для оплаты требуются усилия и время. В то время как ввести короткий номер — всего 1 секунда, а когда дело касается сложных заболеваний, каждая секунда на счету.

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

88
5 комментариев

Интересно! А почему фонды редко работают с мобильной коммерцией? Это вопрос информированности или есть какие-то подводные камни? 

1

Да вы правы, это вопрос информированности только не для самих фондов, а для людей, которые вносят пожертвования. Не у всех фондов, есть возможность трансляции коротких номеров в СМИ и ТВ. 

Да вы правы, это вопрос информированности только не для самих фондов, а для людей, которые вносят пожертвования. Не у всех фондов, есть возможность трансляции коротких номеров в СМИ и ТВ. 

На 400 транзакциях в секунду обрабатывать поток может любой язык программирования и не очень навороченный сервер. В 2009 году мы делали похожие задачи, там были голосования и вирусные механики. Один сервер обрабатывал от 10 до 30 тысяч запросов в секунду с помощью Python'а. И тогда еще не было асинхронного режима работы. Выбор специфического Erlang'а — это ваши личные предпочтения, а не реальные конкурентные преимущества. 

Речь идет о 400 финансовых транзакциях