Интеграция API OKX в мобильное криптоприложение

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Интеграция API OKX в мобильное криптоприложение
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Интеграция API OKX в мобильное криптоприложение

OKX — одна из немногих бирж, где REST и WebSocket живут в разных URL-пространствах и с разной логикой аутентификации. REST идёт на https://www.okx.com/api/v5/, WebSocket — на wss://ws.okx.com:8443/ws/v5/public и /private. Если команда раньше работала с Binance и переносит архитектуру «как есть» — будут сюрпризы.

Подпись: три поля в заголовках, не в параметрах

OKX аутентифицирует запросы через HTTP-заголовки, а не через query string или body:

  • OK-ACCESS-KEY — API key
  • OK-ACCESS-SIGN — Base64(HMAC-SHA256(timestamp + method + requestPath + body))
  • OK-ACCESS-TIMESTAMP — ISO 8601 (например 2024-01-15T10:30:00.123Z)
  • OK-ACCESS-PASSPHRASE — третий секрет, задаётся при создании ключа

requestPath включает query string: для GET /api/v5/account/balance?ccy=BTC подписываем /api/v5/account/balance?ccy=BTC. Тело для GET-запросов — пустая строка "". Ошибка {"code":"50113","msg":"Invalid Sign"} почти всегда означает проблему с requestPath — либо забыли query string, либо добавили лишний слэш.

Временна́я метка в формате ISO 8601 с миллисекундами — редкость для бирж. На Android Instant.now().toString() даёт нужный формат начиная с API 26. Для более старых версий — SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US) с UTC timezone.

WebSocket Private: аутентификация сессии

{
  "op": "login",
  "args": [{
    "apiKey": "...",
    "passphrase": "...",
    "timestamp": "1705312200",
    "sign": "..."
  }]
}

Signature для WebSocket отличается от REST: HMAC-SHA256(timestamp + "GET" + "/users/self/verify"), где timestamp — Unix seconds (не миллисекунды, не ISO). Эта разница — частый источник ошибок при рефакторинге общего auth-модуля.

OKX отключает WebSocket-сессию через 30 секунд без activity. Ping/pong — нестандартный: отправляем строку "ping", получаем строку "pong". Не JSON-объект, именно raw string. Библиотеки, которые работают только с text-frame JSON, ломаются на этом месте.

Нюансы продуктовой логики

OKX поддерживает instType (instrument type): SPOT, MARGIN, SWAP, FUTURES, OPTION. Один и тот же тикер, например BTC-USDT, существует в нескольких instType с разными правилами торговли. При реализации ордерной формы нужно явно передавать instType — иначе биржа вернёт {"code":"51001","msg":"Instrument ID does not exist"} для инструментов, которые существуют в другом типе.

Ещё одна особенность — tdMode (trade mode): cash для Spot, cross или isolated для маржи. Мобильные UI часто скрывают этот выбор «для простоты», что приводит к случайному открытию маржинальных позиций. Рекомендуем явный UI-выбор с предупреждением.

Работа с историческими данными

OKX лимитирует кандлы: GET /api/v5/market/candles возвращает максимум 300 записей. Для подгрузки истории при скролле графика назад нужен пагинационный запрос с параметром before (ID свечи). Стандартная ошибка — использовать after вместо before и получать данные в обратном порядке, потом инвертировать массив в UI с визуальным артефактом.

Стек и подход

Для React Native: axios с request interceptor для подписи + reconnecting-websocket с кастомным pingInterval. Состояние рынка — в Redux Toolkit с RTK Query для REST и кастомным middleware для WebSocket событий.

Для Flutter: dio + web_socket_channel, BLoC для управления состоянием торговых экранов. Разделяем PublicStreamBloc и PrivateStreamBloc — разные жизненные циклы (публичные стримы живут всё время, приватные — только при авторизованной сессии).

Тестирование: OKX Demo Trading (www.okx.com/demo-trading) — полноценная среда с реальными стаканами и возможностью выставлять ордера без реальных средств. Существенно лучше, чем у некоторых конкурентов.

Срок интеграции: базовая (маркет-данные + spot trading) — 2–4 недели. Деривативы + margin — добавьте ещё 3–4 недели на бизнес-логику и тестирование edge cases.