Маркетплейс с безопасной сделкой: биржа AI-специалистов за три месяца
-
Вид услуги:
-
Технологии:
C#, ASP.NET Core 8, Blazor Server, PostgreSQL, Entity Framework Core, MediatR (CQRS)
Год:
2024
О проекте
Маркетплейс кажется простой задачей: каталог исполнителей, лента заказов, чат. Настоящая сложность начинается там, где появляются деньги — их надо принять, придержать, вернуть при отмене, выплатить исполнителю и на каждом шаге выдать фискальный чек. Мы построили такую площадку с нуля и вывели в промышленную эксплуатацию за три месяца. Два из них ушли на деньги.
Отрасль: фриланс-биржа для специалистов в области искусственного интеллекта Задача: разработать двусторонний маркетплейс с безопасной сделкой Старт: декабрь 2024 Запуск: февраль 2025 Роль Nabla Lab: проектирование, разработка, хостинг, сопровождение и развитие Права: исходный код и исключительные права переданы заказчику
Задача: биржа — это не каталог
Заказчик выводил на рынок площадку, где компании находят специалистов по искусственному интеллекту: тех, кто делает чат-ботов, обучает модели, генерирует контент, строит аналитику. Ниша молодая, специалисты разрозненные, а привычных способов проверить исполнителя до начала работы почти нет.
Из этого вырастает главная проблема любого маркетплейса — доверие. Заказчик не хочет платить вперёд человеку, которого видит впервые. Исполнитель не хочет работать без гарантии оплаты. Пока эта проблема не решена, площадка остаётся доской объявлений: люди находят друг друга и уходят договариваться в мессенджер, а биржа не зарабатывает ничего.
Решается это одним механизмом — безопасной сделкой. Деньги заказчика замораживаются в момент заказа и уходят исполнителю только после того, как работа принята. Механизм понятный на словах и тяжёлый в реализации.
Деньги: самая сложная часть проекта
Мы вынесли работу с платежами в отдельный модуль. Внутри — не «приём оплаты», а полный жизненный цикл денег на площадке.
Двухстадийная оплата. При заказе сумма не списывается, а блокируется на карте заказчика. Заказчик видит, что деньги ушли из доступного остатка, исполнитель видит, что оплата обеспечена, но фактического перевода ещё нет. Списание происходит отдельной операцией, когда работа принята.
Отмена и возврат — разные вещи. Если заказ отменён до начала работы, блокировка снимается и деньги возвращаются мгновенно, без движения средств. Если работа уже оплачена, а потом возникли претензии, запускается возврат — другая процедура с другими сроками. Мы поддержали обе.
Выплаты исполнителям. Отдельный контур: привязка карты для получения денег, вывод средств, отслеживание статуса перевода. Принять деньги технически проще, чем корректно отдать.
Фискальные чеки. На каждую операцию формируется чек с составом позиций и данными покупателя. Это не опция и не «сделаем потом» — это требование закона к любой площадке, принимающей платежи от физических лиц.
Каждый платёж проходит через десять состояний — от создания до подтверждения, отмены или возврата, — и система отслеживает переход между ними. Деньги на маркетплейсе не терпят приблизительности: платёж не может «наверное, прошёл».
Комиссия площадки удерживается автоматически при расчёте выплаты. Это и есть момент, в котором биржа начинает зарабатывать: не на подписках и не на платных откликах, а на каждой закрытой сделке, без единой ручной операции.
Сколько это заняло. Из трёх месяцев до запуска около двух ушло на платёжный контур. Каталог, профили, заказы, отклики и чат — вся видимая часть площадки — собрались быстрее, чем один механизм, который переводит деньги от одного человека к другому и не ошибается.
Это соотношение стоит запомнить всем, кто планирует маркетплейс. Смета обычно строится по экранам, а время уходит в контур, у которого экранов почти нет.
Один человек — две роли
Обычный маркетплейс делит пользователей на два лагеря. На фриланс-бирже так не работает: копирайтер сегодня выполняет заказ, а завтра сам заказывает дизайн обложки.
Мы заложили это в модель данных с самого начала. У одного аккаунта два профиля — заказчика и исполнителя, — с разными наборами данных, разными кабинетами и разной историей. Профиль исполнителя содержит специализацию, навыки, опыт, портфолио, документы об образовании и рейтинг. Профиль заказчика — размещённые задания и отзывы, оставленные исполнителям.
Переключение между ролями не требует второго аккаунта, а история в обеих ролях не смешивается.
Как площадка производит доверие
Безопасная сделка закрывает риск потери денег. Остаётся риск потерять время на неподходящем исполнителе, и здесь работают другие механизмы.
Каталог с настоящей структурой. Двадцать одна категория специализации и больше сорока конкретных навыков — от генерации субтитров до разработки рекомендательных систем. Поиск с фильтрами по стажу, специализации и тегам, избранное для тех, к кому хочется вернуться.
Портфолио и документы. Исполнитель прикладывает работы с изображениями и файлами, загружает сертификаты и дипломы. Заказчик смотрит не описание, а результат.
Отзывы и рейтинг после закрытия заказа, с возможностью дополнить отзыв позже.
Переписка внутри площадки. Полноценный чат с вложениями и компактная версия, которая открывается поверх страницы заказа. Общение не уходит в мессенджеры, а значит остаётся историей сделки.
Бонусный счёт. Пользователи получают бонусы за активность и качественную работу — механика удержания, которая на бирже работает лучше, чем скидки.
Как устроено внутри
Дальше — техническая сторона.
Приложение построено на .NET с интерфейсом на Blazor и разделено на шесть проектов: веб-слой, бизнес-логика, слой команд и запросов, слой данных, почтовый сервис и модуль платежей.
Бизнес-логика организована по схеме CQRS: операции чтения и операции изменения разведены и обрабатываются отдельно. Для маркетплейса это не архитектурное украшение. Чтения здесь на порядок больше, чем записей — люди листают каталог и заказы постоянно, а сделки совершают редко. Разделив эти пути, их можно оптимизировать и масштабировать независимо друг от друга. Плюс каждая операция изменения становится отдельным явным сценарием со своими правилами, а не строчкой внутри контроллера.
Удаление в системе мягкое: записи помечаются удалёнными, но не исчезают. На площадке с деньгами и спорами возможность восстановить историю дороже, чем чистая база.
Платёжный модуль вынесен отдельным проектом с собственными границами. На этапе отладки мы работали с одним провайдером, в промышленной эксплуатации — с другим. Смена не потребовала правок в бизнес-логике: переключение свелось к конфигурации. Это не теоретическое преимущество архитектуры, а то, что мы проверили на этом же проекте.
Почтовый сервис работает отдельным проектом: подтверждение регистрации, восстановление пароля, уведомления. Хостинг и два почтовых сервера были на нашей стороне.
Три месяца до запуска
Договор подписан второго декабря 2024 года, первое изменение структуры базы данных внесено в тот же день. К февралю площадка работала: регистрация, каталог, заказы, отклики, чат, оплата, выплаты, отзывы, блог, административная панель.
Дальше площадка полгода развивалась — мы добавляли функциональность, следили за работоспособностью, делали резервные копии и держали инфраструктуру.
Что получил заказчик
- Работающий маркетплейс с полным денежным контуром, а не витрину с кнопкой «написать в телеграм».
- Модель, где площадка зарабатывает на сделке, потому что сделка проходит через неё.
- Архитектуру, рассчитанную на рост нагрузки чтения без переписывания.
- Исключительные права и исходный код.
Почему это важно для вас
Маркетплейс — обманчиво простой продукт. Каталог и карточки делаются быстро, а потом выясняется, что вся ценность площадки держится на деньгах: холдирование, возвраты, выплаты, чеки, споры. Именно на этом этапе проекты застревают.
Мы этот контур уже построили и знаем, где в нём подводные камни. Если вы запускаете площадку, которая должна зарабатывать на сделках, — расскажите о задаче, обсудим.
Давайте создавать вместе!
Свяжитесь с нами и мы проконсультируем по вопросам реализации IT-решений и найдем лучший подход к разработке
Контакты
Офис: г. Казань, ул. Островского, 57Б, оф. 110
Почта: info@nabla-lab.ru
Телефон: +7 (965) 595-62-78