Платформа международных выплат фрилансерам
Выплата гонораров подрядчикам за границей требует работы с различными банковскими системами, платежными каналами и валютами одновременно. Большинство существующих инструментов либо привязаны исключительно к долларовым выплатам, либо требуют отдельной интеграции для каждой страны.
В этой статье мы рассмотрим создание платформы для выплаты вознаграждений фрилансерам через единый интерфейс Afriex SDK. Платформа построена на основе Next.js, Drizzle ORM, TiDB Cloud и Better Auth.
Архитектура приложения
Приложение использует многослойную архитектуру:
- Browser – пользовательский интерфейс.
- Hook – обертка над React Query, отвечающая за кэширование данных, состояния загрузки и инвалидацию кеша.
- Service – тонкий клиент для вызова собственных API маршрутов.
- API Route – проверяет входные данные, вызывает репозиторий и уровень доступа к данным (DAL), возвращает ответ в формате JSON.
- Repository – читает и записывает данные в базу данных через Drizzle ORM.
- Data Access Layer (DAL) – взаимодействует непосредственно с Afriex SDK для выполнения операций с внешними сервисами.
Основные функции платформы
Платформа позволяет выполнять следующие задачи:
- Регистрация фрилансеров как клиентов Afriex.
- Привязка банковских счетов или мобильных кошельков для получения выплат.
- Получение актуальных курсов обмена валют и инициирование трансграничных платежей.
- Прием обновлений статуса транзакций в реальном времени через вебхуки.
- Отправка уведомлений по электронной почте при инициации или завершении платежа.
Что потребуется?
Для начала работы вам понадобятся:
- Node.js версии не ниже 22.14.
- Бизнес-аккаунт Afriex с ключом API для песочницы.
- Серверный кластер TiDB Serverless (бесплатного уровня достаточно).
- Аккаунт Resend с ключом API (для отправки электронных писем).