POST
v1.1.0stable

Renovar Membresía del Dispositivo

Actualización por lotes de la expiración de la membresía del dispositivo con modos de coincidencia y renovación flexibles.

POST/api/device/membership/renew
Autenticación:API Key
Límite:30/minuto

Parámetros de solicitud

Todos los parámetros se pueden pasar vía Consulta o Cuerpo

ParámetroTipoRequeridoDescripción
token
stringRequerido
Token de API de usuario
Ejemplo: your_api_token_here
mode
stringOpcional
Modo de renovación: extender, establecer o permanente. Por defecto se establece en 'establecer' cuando se proporciona expire_time, de lo contrario 'extender'
extendsetpermanent
Ejemplo: extend
base
stringOpcional
Base de extensión: automático, actual o ahora
autocurrentnow
Ejemplo: auto
days
numberOpcional
Días a añadir en modo extender
Ejemplo: 30
seconds
numberOpcional
Segundos a añadir en modo extender. Prioridad más alta que los días
Ejemplo: 2592000
duration
stringOpcional
Expresión de duración: 30d, 12h, 60m o 3600s
Ejemplo: 30d
expire_time
numberOpcional
Nuevo sello de tiempo de expiración para el modo establecer, en segundos o milisegundos. 0 significa permanente
Ejemplo: 1772267945
kid
stringOpcional
KID de un solo dispositivo
Ejemplo: KID001
udid
stringOpcional
UDID de un solo dispositivo
Ejemplo: 00008030-001234567890002E
kids
arrayOpcional
Matriz de KID de dispositivos. También se admiten cadenas separadas por comas/espacios/nuevas líneas
Ejemplo: KID001,KID002
udids
arrayOpcional
Matriz de UDID de dispositivos. Si un UDID tiene varios certificados, match=all actualiza todos por defecto. También se admiten cadenas separadas por comas/espacios/nuevas líneas
Ejemplo: 00008030-001234567890002E
items
arrayOpcional
Elementos de lote avanzados. Cada elemento puede incluir kid o UDID y sobrescribir modo/base/días/segundos/duración/tiempo_de_expiración
Ejemplo: [{"kid":"KID001","mode":"extend","days":30},{"udid":"00008030-001234567890002E","mode":"permanent"}]
match
stringOpcional
Manejo múltiple de coincidencias: todos, primero o error. Por defecto: todos
allfirsterror
Ejemplo: all
continue_on_error
booleanOpcional
Indica si continuar después de que falle un elemento. Por defecto es true
Ejemplo: true

Respuesta

ParámetroTipoRequeridoDescripción
code
numberRequerido
Código de estado: 1=solicitud procesada
Ejemplo: 1
data.total
numberRequerido
Número de elementos de dispositivo solicitados
Ejemplo: 2
data.success
numberRequerido
Conteo de renovaciones exitosas
Ejemplo: 2
data.failed
numberRequerido
Conteo de renovaciones fallidas
Ejemplo: 0
data.results[].kid
stringRequerido
KID del dispositivo
Ejemplo: KID001
data.results[].old_expire_time
numberRequerido
Marca de tiempo de expiración de membresía anterior. 0 significa permanente
Ejemplo: 1769675945
data.results[].new_expire_time
numberRequerido
Marca de tiempo de nueva expiración de membresía. 0 significa permanente
Ejemplo: 1772267945
data.results[].new_expire_at
stringRequerido
Tiempo de expiración nuevo formateado
Ejemplo: 2026-02-28 15:04:05
Ejemplo de respuesta
{
"code":1,
"msg":"Renovación de membresía del dispositivo procesada",
"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"
}

Extensión por lote de 30 días por KID

Use KID separados por comas con modo de extensión

Extensión por lote de 30 días por KID
{
"token":"your_api_token_here",
"kids":"KID001,KID002",
"mode":"extend",
"days":30
}

Extensión por lote mediante UDID

Para escenarios donde solo se disponen de UDIDs. Múltiples certificados bajo un UDID se actualizan por defecto

Extensión por lote mediante UDID
{
"token":"your_api_token_here",
"udids":"00008030-001234567890002E,00008030-009876543210002E",
"mode":"extend",
"duration":"60d"
}

Establecer tiempo de vencimiento explícito

Usar mode=set para establecer un timestamp de vencimiento de membresía explícito

Establecer tiempo de vencimiento explícito
{
"token":"your_api_token_here",
"kid":"KID001",
"mode":"set",
"expire_time":1772267945
}

Establecer permanente

Usar mode=permanent para hacer la membresía permanente

Establecer permanente
{
"token":"your_api_token_here",
"kid":"KID001",
"mode":"permanent"
}

Estrategia por dispositivo

Cada ítem puede sobrescribir las opciones globales de renovación

Estrategia por dispositivo
{
"token":"your_api_token_here",
"items":
[
{
"kid":"KID001",
"mode":"extend",
"days":30
}
,
{
"kid":"KID002",
"mode":"set",
"expire_time":1772267945
}
,
{
"udid":"00008030-001234567890002E",
"mode":"permanent"
}
]
}

Solo actualizar la coincidencia más reciente para un UDID

Con match=first, solo se actualiza el certificado más reciente coincidente bajo el mismo UDID

Solo actualizar la coincidencia más reciente para un UDID
{
"token":"your_api_token_here",
"udid":"00008030-001234567890002E",
"mode":"extend",
"days":30,
"match":"first"
}

Códigos de error

Códigos de error4 definido
12
Se requiere token
Parámetro de token faltante
20
Por favor, proporcione al menos un dispositivo
Faltan kid, kids, UDID, udids o items
21
Modo inválido, valores válidos: extend/set/permanent
Modo de renovación inválido

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

Ejemplos de código

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
  }'

Notas

  • Esta API solo actualiza la membresía del dispositivo/caducidad de la descarga del certificado. No vuelve a firmar ni carga saldo
  • 0 significa permanente. En modo extendido, los dispositivos permanentes permanecen permanentes por defecto; use base=now para forzar una expiración finita
  • Cuando un UDID coincide con múltiples certificados, match=all actualiza todos por defecto. Use first o error para cambiar el comportamiento
  • Se admiten tanto solicitudes JSON como de formulario. Los elementos del formulario pueden ser una cadena de arreglo JSON

Pruébalo en la Consola

Complete los parámetros a continuación y envíe una solicitud para probar. Las solicitudes solo van a la API de este sitio; la URL está bloqueada y no se puede cambiar, y se incluye su cookie de inicio de sesión actual.

POSThttps://testypro.iwai.cc/api/device/membership/renewBloqueado a este sitio
stringRequerido

Token de API de usuario

string

Modo de renovación: extender, establecer o permanente. Por defecto se establece en 'establecer' cuando se proporciona expire_time, de lo contrario 'extender'

string

Base de extensión: automático, actual o ahora

number

Días a añadir en modo extender

number

Segundos a añadir en modo extender. Prioridad más alta que los días

string

Expresión de duración: 30d, 12h, 60m o 3600s

number

Nuevo sello de tiempo de expiración para el modo establecer, en segundos o milisegundos. 0 significa permanente

string

KID de un solo dispositivo

string

UDID de un solo dispositivo

array

Matriz de KID de dispositivos. También se admiten cadenas separadas por comas/espacios/nuevas líneas

array

Matriz de UDID de dispositivos. Si un UDID tiene varios certificados, match=all actualiza todos por defecto. También se admiten cadenas separadas por comas/espacios/nuevas líneas

array

Elementos de lote avanzados. Cada elemento puede incluir kid o UDID y sobrescribir modo/base/días/segundos/duración/tiempo_de_expiración

string

Manejo múltiple de coincidencias: todos, primero o error. Por defecto: todos

boolean

Indica si continuar después de que falle un elemento. Por defecto es true