Skip to content

Получение стратегии обновления Android-приложения

Описание интерфейса: Получение соответствующей стратегии обновления на основе номера версии клиента

📮Информация о запросе

URL запроса

POST https://api.upgrade.toolsetlink.com/v1/apk/upgrade

Заголовки запроса

Название параметраОбязательныйТипПример значенияОписание
X-TimestampДаstring2025-02-17T10:34:55+08:00Время запроса в формате RFC3339
X-NonceДаstringfc812cc0b9b51e8cУникальная случайная строка (минимум 16 символов)
X-AccessKeyДаstringmui2W50H1j-OC4xD6PgQagСекретный ключ AccessKey
X-SignatureДаstring3603437250c2df51fc46426ac79d8995Подпись запроса Правила подписи
Content-TypeДаstringapplication/json

🔐 Механизм защиты от повторных атак

  1. Сервер проверяет, что разница между временными метками и временем сервера не превышает ±5 минут
  2. Сервер проверяет, существует ли уже значение Nonce (чтобы предотвратить повторные запросы)

Тело запроса

json
{
  "apkKey": "isVZBUvkFhv6oHxk_X-D0Q",
  "versionCode": 1,
  "appointVersionCode": 0,
  "devModelKey": "stv1",
  "devKey": "LOYlLXNy7w",
  "patchAlgo": 0
}

Описание параметров тела запроса

Название параметраОбязательныйТипПример значенияОписание
apkKeyДаstringisVZBUvkFhv6oHxk_X-D0QУникальный идентификатор Android-приложения
versionCodeДаint1Код версии клиента
appointVersionCodeНетint0Ожидаемый код версии обновления, 0 или не переданный означает запрос последней версии
devModelKeyНетstringstv1Уникальный идентификатор модели устройства
devKeyНетstringLOYlLXNy7wУникальный идентификатор устройства (можно использовать MAC как уникальный идентификатор)
patchAlgoНетint0Алгоритм обновления: 0: Полное обновление; 1: Алгоритм HDiffPatch

📮Информация о ответе

Тело успешного ответа

json
{
  "code": 200,
  "msg": "Получена новая версия",
  "data": {
    "apkKey": "isVZBUvkFhv6oHxk_X-D0Q",
    "packageName": "com.a.c",
    "versionName": "v2",
    "versionCode": 2,
    "urlPath": "http://file.com/2.apk",
    "urlFileSize": 7213,
    "urlFileMd5": "36ee2a36b5d20d1008507d253423eea7",
    "patchAlgo": 0,
    "patchUrlPath": "http://file.com/1-2.patch",
    "patchUrlFileSize": 203,
    "patchUrlFileMd5": "36ee2a36b5d20d1008507d253423eea7",
    "upgradeType": 1,
    "promptUpgradeContent": "Содержимое подсказки"
  }
}

Описание параметров тела ответа

Название параметраТипПример значенияОписание
apkKeystringisVZBUvkFhv6oHxk_X-D0QУникальный идентификатор Android-приложения
packageNamestringcom.a.cИмя пакета Android-приложения
versionNamestringv1Название версии
versionCodeint1Код версии
urlPathstringhttp://file.com/2.apkАдрес загрузки файла
urlFileSizeint7213Размер файла (в байтах)
urlFileMd5string36ee2a36b5d20d1008507d253423eea7MD5 файла
patchAlgoint0Алгоритм обновления: 0: Полное обновление; 1: Алгоритм HDiffPatch
patchUrlPathstringhttp://file.com/1-2.patchАдрес загрузки файла патча
patchUrlFileSizeint7213Размер файла патча (в байтах)
patchUrlFileMd5string36ee2a36b5d20d1008507d253423eea7MD5 файла патча
upgradeTypeint1Метод обновления: 1: Обновление с подтверждением; 2: Тихое обновление; 3: Принудительное обновление
promptUpgradeContentstringPrompt contentСодержимое описания обновления с подтверждением

Типичное тело ответа об ошибке

json
{
  "code": 404001,
  "msg": "Доступная версия не получена",
  "docs": "Соответствующая версия приложения не найдена. Пожалуйста, подтвердите, была ли она правильно создана в системе. Пожалуйста, обратитесь к документации: https://upgrade.toolsetlink.com/ru/upgrade/recommend/apk/app-version.html",
  "data": null
}

📊Коды состояния

HTTP-код состоянияcodeОписание сценарияРешение
2000Запрос успешен, уже установлена последняя версия
200200Запрос успешен, получена стратегия обновления версии
400400001Недопустимый запрос
400400002Отсутствующие параметры
400400003Недопустимые параметры
400400004Недопустимый заголовок
400400005Недопустимое тело
401401001Неудачная аутентификация
401401002Неудачная проверка подписи
404404001Ресурс не найден
404404002Запись запроса не найдена
404404003Метод обработки не найден
404404004Запрос не найден
429429001Ограничение контроля трафика запроса стратегии задачи приложенияОграничение контроля трафика для текущей задачи обновления достигнуто, пожалуйста, попробуйте позже.
500500001Внутренняя ошибка сервераПожалуйста, свяжитесь с нами Связаться с нами
500500002Ошибка валидации данных сервераПожалуйста, свяжитесь с нами Связаться с нами

toolsetlink@163.com