POST
v1.1.0stable

Renovar Associação do Dispositivo

Atualização em lote da expiração da associação de dispositivos com correspondência flexível e modos de renovação.

POST/api/device/membership/renew
Autenticação:API Key
Limite:30/minuto

Parâmetros da Requisição

Todos os parâmetros podem ser passados via Query ou Body

ParâmetroTipoObrigatórioDescrição
token
stringObrigatório
Token de API do usuário
Exemplo: your_api_token_here
mode
stringOpcional
Modo de renovação: estender, definir ou permanente. O padrão é definir quando expire_time é fornecido, caso contrário, estender
extendsetpermanent
Exemplo: extend
base
stringOpcional
Base de extensão: automático, atual ou agora
autocurrentnow
Exemplo: auto
days
numberOpcional
Dias a adicionar no modo de extensão
Exemplo: 30
seconds
numberOpcional
Segundos a adicionar no modo de extensão. Maior prioridade que dias
Exemplo: 2592000
duration
stringOpcional
Expressão de duração: 30d, 12h, 60m ou 3600s
Exemplo: 30d
expire_time
numberOpcional
Novo timestamp de expiração para o modo definir, em segundos ou milissegundos. 0 significa permanente
Exemplo: 1772267945
kid
stringOpcional
KID de dispositivo único
Exemplo: KID001
udid
stringOpcional
UDID de dispositivo único
Exemplo: 00008030-001234567890002E
kids
arrayOpcional
Array de dispositivos KID. Strings separadas por vírgula/espaço/linha nova também são suportadas
Exemplo: KID001,KID002
udids
arrayOpcional
Array de dispositivos UDID. Se um UDID tiver múltiplos certificados, match=all atualiza todos por padrão. Strings separadas por vírgula/espaço/linha nova também são suportadas
Exemplo: 00008030-001234567890002E
items
arrayOpcional
Itens de lote avançados. Cada item pode incluir kid ou UDID e substituir modo/base/dias/segundos/duração/tempo_de_expiração
Exemplo: [{"kid":"KID001","mode":"extend","days":30},{"udid":"00008030-001234567890002E","mode":"permanent"}]
match
stringOpcional
Manipulação de múltiplos matches: all, first ou error. Padrão all
allfirsterror
Exemplo: all
continue_on_error
booleanOpcional
Se deve continuar após a falha de um item. Padrão verdadeiro
Exemplo: true

Resposta

ParâmetroTipoObrigatórioDescrição
code
numberObrigatório
Código de status: 1=solicitação processada
Exemplo: 1
data.total
numberObrigatório
Número de itens de dispositivo solicitados
Exemplo: 2
data.success
numberObrigatório
Contagem de renovações bem-sucedidas
Exemplo: 2
data.failed
numberObrigatório
Contagem de renovações falhadas
Exemplo: 0
data.results[].kid
stringObrigatório
KID do dispositivo
Exemplo: KID001
data.results[].old_expire_time
numberObrigatório
Carimbo de data/hora de expiração da associação anterior. 0 significa permanente
Exemplo: 1769675945
data.results[].new_expire_time
numberObrigatório
Novo carimbo de data/hora de expiração da associação. 0 significa permanente
Exemplo: 1772267945
data.results[].new_expire_at
stringObrigatório
Novo tempo de expiração formatado
Exemplo: 2026-02-28 15:04:05
Exemplo de Resposta
{
"code":1,
"msg":"Renovação de associação de dispositivo processada",
"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"
}

Extensão em lote de 30 dias por KID

Use KIDs separados por vírgula com modo de extensão

Extensão em lote de 30 dias por KID
{
"token":"your_api_token_here",
"kids":"KID001,KID002",
"mode":"extend",
"days":30
}

Extensão em lote por UDID

Para cenários onde apenas UDIDs estão disponíveis. Vários certificados sob um UDID são atualizados por padrão

Extensão em lote por UDID
{
"token":"your_api_token_here",
"udids":"00008030-001234567890002E,00008030-009876543210002E",
"mode":"extend",
"duration":"60d"
}

Definir tempo de expiração explícito

Use mode=set para definir um carimbo de data/hora de expiração de associação explícito

Definir tempo de expiração explícito
{
"token":"your_api_token_here",
"kid":"KID001",
"mode":"set",
"expire_time":1772267945
}

Tornar permanente

Use mode=permanent para tornar a associação permanente

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

Estratégia por dispositivo

Cada item pode substituir as opções globais de renovação

Estratégia 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"
}
]
}

Atualize apenas a correspondência mais recente para um UDID

Com match=first, apenas o certificado mais recente correspondente sob o mesmo UDID é atualizado

Atualize apenas a correspondência mais recente para um UDID
{
"token":"your_api_token_here",
"udid":"00008030-001234567890002E",
"mode":"extend",
"days":30,
"match":"first"
}

Códigos de Erro

Códigos de Erro4 definido
12
Token é obrigatório
Parâmetro de token ausente
20
Por favor, forneça pelo menos um dispositivo
Faltando kid, kids, UDID, udids ou itens
21
Modo inválido, valores válidos: extend/set/permanent
Modo de renovação inválido

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

Exemplos 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 apenas atualiza a validade da associação do dispositivo/baixa do certificado. Não realiza nova assinatura nem cobra saldo
  • 0 significa permanente. No modo de extensão, dispositivos permanentes permanecem permanentes por padrão; use base=now para forçar uma expiração finita
  • Quando um UDID corresponde a vários certificados, match=all atualiza todos por padrão. Use first ou error para alterar o comportamento
  • São suportadas requisições JSON e de formulário. Itens de formulário podem ser uma string de array JSON

Tente no Console

Preencha os parâmetros abaixo e envie uma solicitação para testar. As solicitações vão apenas para a API deste site; a URL está bloqueada e não pode ser alterada, e seu cookie de login atual é incluído.

POSThttps://testypro.iwai.cc/api/device/membership/renewBloqueado para este site
stringObrigatório

Token de API do usuário

string

Modo de renovação: estender, definir ou permanente. O padrão é definir quando expire_time é fornecido, caso contrário, estender

string

Base de extensão: automático, atual ou agora

number

Dias a adicionar no modo de extensão

number

Segundos a adicionar no modo de extensão. Maior prioridade que dias

string

Expressão de duração: 30d, 12h, 60m ou 3600s

number

Novo timestamp de expiração para o modo definir, em segundos ou milissegundos. 0 significa permanente

string

KID de dispositivo único

string

UDID de dispositivo único

array

Array de dispositivos KID. Strings separadas por vírgula/espaço/linha nova também são suportadas

array

Array de dispositivos UDID. Se um UDID tiver múltiplos certificados, match=all atualiza todos por padrão. Strings separadas por vírgula/espaço/linha nova também são suportadas

array

Itens de lote avançados. Cada item pode incluir kid ou UDID e substituir modo/base/dias/segundos/duração/tempo_de_expiração

string

Manipulação de múltiplos matches: all, first ou error. Padrão all

boolean

Se deve continuar após a falha de um item. Padrão verdadeiro