POST
v1.1.0stable

Продлить Членство Устройства

Массовое обновление срока действия членства устройства с гибкими режимами сопоставления и продления.

POST/api/device/membership/renew
Аутентификация:API Key
Лимит:30/минут

Параметры запроса

Все параметры можно передавать через Query или Body

ПараметрТипОбязательныйОписание
token
stringОбязательный
Токен API пользователя
Пример: your_api_token_here
mode
stringОпционально
Режим продления: продлить, установить или постоянный. По умолчанию устанавливается режим «установить», если указано expire_time, иначе — «продлить»
extendsetpermanent
Пример: extend
base
stringОпционально
База продления: авто, текущая или сейчас
autocurrentnow
Пример: auto
days
numberОпционально
Количество дней для добавления в режиме продления
Пример: 30
seconds
numberОпционально
Количество секунд для добавления в режиме продления. Имеет более высокий приоритет, чем дни
Пример: 2592000
duration
stringОпционально
Выражение продолжительности: 30д, 12ч, 60м или 3600с
Пример: 30d
expire_time
numberОпционально
Новая метка времени истечения для режима установки, в секундах или миллисекундах. 0 означает постоянный
Пример: 1772267945
kid
stringОпционально
KID одного устройства
Пример: KID001
udid
stringОпционально
UDID одного устройства
Пример: 00008030-001234567890002E
kids
arrayОпционально
Массив идентификаторов устройств (KID). Поддерживаются строки, разделенные запятыми, пробелами или переносами строк
Пример: KID001,KID002
udids
arrayОпционально
Массив UDID устройств. Если один UDID имеет несколько сертификатов, match=all обновляет все по умолчанию. Поддерживаются строки, разделенные запятыми, пробелами или переносами строк
Пример: 00008030-001234567890002E
items
arrayОпционально
Расширенные элементы пакета. Каждый элемент может включать kid или UDID и переопределять режим/базу/дни/секунды/продолжительность/время истечения
Пример: [{"kid":"KID001","mode":"extend","days":30},{"udid":"00008030-001234567890002E","mode":"permanent"}]
match
stringОпционально
Обработка множественных совпадений: все, первое или ошибка. По умолчанию все
allfirsterror
Пример: all
continue_on_error
booleanОпционально
Продолжать ли выполнение после ошибки элемента. По умолчанию true
Пример: true

Ответ

ПараметрТипОбязательныйОписание
code
numberОбязательный
Код состояния: 1=запрос обработан
Пример: 1
data.total
numberОбязательный
Количество запрошенных элементов устройства
Пример: 2
data.success
numberОбязательный
Количество успешных продлений
Пример: 2
data.failed
numberОбязательный
Количество неудачных продлений
Пример: 0
data.results[].kid
stringОбязательный
KID устройства
Пример: KID001
data.results[].old_expire_time
numberОбязательный
Временная метка истечения предыдущего членства. 0 означает постоянно
Пример: 1769675945
data.results[].new_expire_time
numberОбязательный
Временная метка истечения нового членства. 0 означает постоянно
Пример: 1772267945
data.results[].new_expire_at
stringОбязательный
Отформатированное новое время истечения
Пример: 2026-02-28 15:04:05
Пример ответа
{
"code":1,
"msg":"Обновление членства устройства обработано",
"time":1769675945,
"data":
{
"total":2,
"processed_results":2,
"success":2,
"failed":0,
"continue_on_error":true,
"match":"all",
"results":
[
{
"index":0,
"kid":"KID001",
"udid":"00008030-001234567890002E",
"success":true,
"code":1,
"msg":"续期成功",
"old_expire_time":1769675945,
"new_expire_time":1772267945,
"old_expire_at":"2026-01-29 15:04:05",
"new_expire_at":"2026-02-28 15:04:05",
"changed":true,
"matched_count":1
}
,
{
"index":1,
"kid":"KID002",
"udid":"00008030-009876543210002E",
"success":true,
"code":1,
"msg":"续期成功",
"old_expire_time":0,
"new_expire_time":0,
"old_expire_at":"permanent",
"new_expire_at":"permanent",
"changed":false,
"matched_count":1
}
]
}
,
"ip":"192.168.1.100",
"ysucc":"Ysucc"
}

Массовое продление на 30 дней по KID

Используйте KID через запятую с режимом продления

Массовое продление на 30 дней по KID
{
"token":"your_api_token_here",
"kids":"KID001,KID002",
"mode":"extend",
"days":30
}

Массовое продление по UDID

Для сценариев, когда доступны только UDID. По умолчанию обновляются несколько сертификатов под одним UDID

Массовое продление по UDID
{
"token":"your_api_token_here",
"udids":"00008030-001234567890002E,00008030-009876543210002E",
"mode":"extend",
"duration":"60d"
}

Установите явное время истечения срока действия

Используйте mode=set, чтобы установить явную временную метку истечения членства

Установите явное время истечения срока действия
{
"token":"your_api_token_here",
"kid":"KID001",
"mode":"set",
"expire_time":1772267945
}

Установите постоянное действие

Используйте mode=permanent, чтобы сделать членство постоянным

Установите постоянное действие
{
"token":"your_api_token_here",
"kid":"KID001",
"mode":"permanent"
}

Стратегия для каждого устройства

Каждый элемент может переопределять глобальные параметры обновления

Стратегия для каждого устройства
{
"token":"your_api_token_here",
"items":
[
{
"kid":"KID001",
"mode":"extend",
"days":30
}
,
{
"kid":"KID002",
"mode":"set",
"expire_time":1772267945
}
,
{
"udid":"00008030-001234567890002E",
"mode":"permanent"
}
]
}

Обновляйте только последнее совпадение для UDID

С параметром match=first обновляется только последний совпавший сертификат с тем же UDID

Обновляйте только последнее совпадение для UDID
{
"token":"your_api_token_here",
"udid":"00008030-001234567890002E",
"mode":"extend",
"days":30,
"match":"first"
}

Коды ошибок

Коды ошибок4 определено
12
Требуется токен
Отсутствует параметр токена
20
Пожалуйста, предоставьте хотя бы одно устройство
Отсутствует kid, kids, UDID, udids или items
21
Недопустимый режим, допустимые значения: extend/set/permanent
Недопустимый режим обновления

X-Lang: en
zh, en, zh-TW, vi, ar

Примеры кода

curl -X POST "https://testypro.iwai.cc,https://cer.xyul.cn,https://cer.iwai.cc/api/device/membership/renew" \
  -H "X-Lang: en" \
  -H "Content-Type: application/json" \
  -d '{
    "token": "your_api_token_here",
    "mode": "extend",
    "base": "auto",
    "days": 30,
    "seconds": 2592000,
    "duration": "30d",
    "expire_time": 1772267945,
    "kid": "KID001",
    "udid": "00008030-001234567890002E",
    "kids": "KID001,KID002",
    "udids": "00008030-001234567890002E",
    "items": "[{\"kid\":\"KID001\",\"mode\":\"extend\",\"days\":30},{\"udid\":\"00008030-001234567890002E\",\"mode\":\"permanent\"}]",
    "match": "all",
    "continue_on_error": true
  }'

Примечания

  • Этот API только обновляет членство устройства / срок действия загрузки сертификата. Он не выполняет повторную подпись и не списывает баланс
  • 0 означает постоянный. В режиме расширения постоянные устройства по умолчанию остаются постоянными; используйте base=now, чтобы задать конечный срок истечения
  • Когда UDID соответствует нескольким сертификатам, match=all обновляет все по умолчанию. Используйте first или error, чтобы изменить поведение
  • Поддерживаются как JSON, так и формы запросов. Элементы формы могут быть строкой JSON-массива

Попробуйте в Консоли

Заполните параметры ниже и отправьте запрос для тестирования. Запросы отправляются только на API этого сайта; URL зафиксирован и не может быть изменен, а текущий файл cookie для входа включен.

POSThttps://testypro.iwai.cc/api/device/membership/renewЗаблокировано для этого сайта
stringОбязательный

Токен API пользователя

string

Режим продления: продлить, установить или постоянный. По умолчанию устанавливается режим «установить», если указано expire_time, иначе — «продлить»

string

База продления: авто, текущая или сейчас

number

Количество дней для добавления в режиме продления

number

Количество секунд для добавления в режиме продления. Имеет более высокий приоритет, чем дни

string

Выражение продолжительности: 30д, 12ч, 60м или 3600с

number

Новая метка времени истечения для режима установки, в секундах или миллисекундах. 0 означает постоянный

string

KID одного устройства

string

UDID одного устройства

array

Массив идентификаторов устройств (KID). Поддерживаются строки, разделенные запятыми, пробелами или переносами строк

array

Массив UDID устройств. Если один UDID имеет несколько сертификатов, match=all обновляет все по умолчанию. Поддерживаются строки, разделенные запятыми, пробелами или переносами строк

array

Расширенные элементы пакета. Каждый элемент может включать kid или UDID и переопределять режим/базу/дни/секунды/продолжительность/время истечения

string

Обработка множественных совпадений: все, первое или ошибка. По умолчанию все

boolean

Продолжать ли выполнение после ошибки элемента. По умолчанию true