POST
v1.1.0stable

Gia hạn thành viên thiết bị

Cập nhật hạn thành viên thiết bị hàng loạt với nhiều cách khớp và chế độ gia hạn.

POST/api/device/membership/renew
Xác thực:API Key
Giới hạn:30/phút

Tham số yêu cầu

Tất cả tham số có thể truyền qua Query hoặc Body

Tham sốLoạiBắt buộcMô tả
token
stringBắt buộc
API Token người dùng
Ví dụ: your_api_token_here
mode
stringTùy chọn
Chế độ gia hạn: extend, set hoặc permanent
extendsetpermanent
Ví dụ: extend
base
stringTùy chọn
Mốc gia hạn: auto, current hoặc now
autocurrentnow
Ví dụ: auto
days
numberTùy chọn
Số ngày gia hạn
Ví dụ: 30
seconds
numberTùy chọn
Số giây gia hạn, ưu tiên hơn days
Ví dụ: 2592000
duration
stringTùy chọn
Biểu thức thời lượng: 30d, 12h, 60m hoặc 3600s
Ví dụ: 30d
expire_time
numberTùy chọn
Timestamp hết hạn mới cho chế độ set, giây hoặc mili giây. 0 là vĩnh viễn
Ví dụ: 1772267945
kid
stringTùy chọn
KID của một thiết bị
Ví dụ: KID001
udid
stringTùy chọn
UDID của một thiết bị
Ví dụ: 00008030-001234567890002E
kids
arrayTùy chọn
Danh sách KID thiết bị
Ví dụ: KID001,KID002
udids
arrayTùy chọn
Danh sách UDID thiết bị
Ví dụ: 00008030-001234567890002E
items
arrayTùy chọn
Danh sách nâng cao, mỗi thiết bị có thể có cấu hình riêng
Ví dụ: [{"kid":"KID001","mode":"extend","days":30},{"udid":"00008030-001234567890002E","mode":"permanent"}]
match
stringTùy chọn
Xử lý nhiều kết quả: all, first hoặc error
allfirsterror
Ví dụ: all
continue_on_error
booleanTùy chọn
Có tiếp tục khi một thiết bị lỗi không, mặc định true
Ví dụ: true

Phản hồi

Tham sốLoạiBắt buộcMô tả
code
numberBắt buộc
Mã trạng thái
Ví dụ: 1
data.total
numberBắt buộc
Số thiết bị yêu cầu
Ví dụ: 2
data.success
numberBắt buộc
Số lượng gia hạn thành công
Ví dụ: 2
data.failed
numberBắt buộc
Số lượng gia hạn thất bại
Ví dụ: 0
data.results[].kid
stringBắt buộc
KID thiết bị
Ví dụ: KID001
data.results[].old_expire_time
numberBắt buộc
Timestamp hết hạn trước đó
Ví dụ: 1769675945
data.results[].new_expire_time
numberBắt buộc
Timestamp hết hạn mới
Ví dụ: 1772267945
data.results[].new_expire_at
stringBắt buộc
Thời gian hết hạn mới đã định dạng
Ví dụ: 2026-02-28 15:04:05
Ví dụ phản hồi
{
"code":1,
"msg":"Đã xử lý gia hạn thành viên thiết bị",
"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"
}

Gia hạn 30 ngày bằng KID

Dùng kids phân tách bằng dấu phẩy

Gia hạn 30 ngày bằng KID
{
"token":"your_api_token_here",
"kids":"KID001,KID002",
"mode":"extend",
"days":30
}

Gia hạn hàng loạt bằng UDID

Phù hợp khi chỉ có UDID

Gia hạn hàng loạt bằng UDID
{
"token":"your_api_token_here",
"udids":"00008030-001234567890002E,00008030-009876543210002E",
"mode":"extend",
"duration":"60d"
}

Đặt thời gian hết hạn cụ thể

Dùng mode=set để đặt timestamp hết hạn cụ thể

Đặt thời gian hết hạn cụ thể
{
"token":"your_api_token_here",
"kid":"KID001",
"mode":"set",
"expire_time":1772267945
}

Đặt vĩnh viễn

Dùng mode=permanent để đặt vĩnh viễn

Đặt vĩnh viễn
{
"token":"your_api_token_here",
"kid":"KID001",
"mode":"permanent"
}

Chiến lược riêng từng thiết bị

Mỗi item có thể ghi đè tùy chọn chung

Chiến lược riêng từng thiết bị
{
"token":"your_api_token_here",
"items":
[
{
"kid":"KID001",
"mode":"extend",
"days":30
}
,
{
"kid":"KID002",
"mode":"set",
"expire_time":1772267945
}
,
{
"udid":"00008030-001234567890002E",
"mode":"permanent"
}
]
}

Chỉ cập nhật bản mới nhất cho UDID

Với match=first chỉ cập nhật chứng chỉ mới nhất

Chỉ cập nhật bản mới nhất cho UDID
{
"token":"your_api_token_here",
"udid":"00008030-001234567890002E",
"mode":"extend",
"days":30,
"match":"first"
}

Mã lỗi

Mã lỗi4 được định nghĩa
12
Token không được để trống
Thiếu tham số token
20
Vui lòng cung cấp ít nhất một thiết bị
Thiếu danh sách thiết bị
21
mode không hợp lệ
Chế độ gia hạn không hợp lệ

Ngôn ngữ phản hồi

Tùy chỉnh ngôn ngữ phản hồi API bằng header X-Lang. Ví dụ mã bên dưới tự động sử dụng ngôn ngữ trang hiện tại của bạn.

Header đề xuất
X-Lang: vi
Ngôn ngữ được hỗ trợ
zh, en, zh-TW, vi, ar

Bạn cũng có thể dùng Accept-Language; X-Lang có ưu tiên cao hơn. Ngôn ngữ không được hỗ trợ sẽ chuyển sang tiếng Anh.

Ví dụ mã

curl -X POST "https://testypro.iwai.cc,https://cer.xyul.cn,https://cer.iwai.cc/api/device/membership/renew" \
  -H "X-Lang: vi" \
  -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
  }'

Lưu ý

  • API này chỉ cập nhật hạn thành viên/quyền tải chứng chỉ của thiết bị, không ký lại và không trừ tiền
  • 0 nghĩa là vĩnh viễn. Ở chế độ extend, thiết bị vĩnh viễn vẫn giữ vĩnh viễn mặc định
  • Khi UDID khớp nhiều chứng chỉ, match=all cập nhật tất cả theo mặc định
  • Hỗ trợ JSON và form; form items có thể là chuỗi JSON array

Thử trong Console

Điền các tham số bên dưới rồi gửi yêu cầu để kiểm tra. Yêu cầu chỉ gửi đến API của trang này; địa chỉ đã bị khóa và không thể thay đổi, đồng thời kèm theo Cookie đăng nhập hiện tại của bạn.

POSThttps://testypro.iwai.cc/api/device/membership/renewĐã khóa vào trang này
stringBắt buộc

API Token người dùng

string

Chế độ gia hạn: extend, set hoặc permanent

string

Mốc gia hạn: auto, current hoặc now

number

Số ngày gia hạn

number

Số giây gia hạn, ưu tiên hơn days

string

Biểu thức thời lượng: 30d, 12h, 60m hoặc 3600s

number

Timestamp hết hạn mới cho chế độ set, giây hoặc mili giây. 0 là vĩnh viễn

string

KID của một thiết bị

string

UDID của một thiết bị

array

Danh sách KID thiết bị

array

Danh sách UDID thiết bị

array

Danh sách nâng cao, mỗi thiết bị có thể có cấu hình riêng

string

Xử lý nhiều kết quả: all, first hoặc error

boolean

Có tiếp tục khi một thiết bị lỗi không, mặc định true