POST
v1.1.0stable設備會員續期
批量更新設備會員到期時間,支援多種設備匹配方式和續期模式。
POST
/api/device/membership/renew驗證:API Key
速率限制:30/分鐘
請求參數
所有請求參數需透過 Query 或 Body 傳遞
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
token | string | 必填 | 用戶 API Token 範例: your_api_token_here |
mode | string | 選填 | 續期模式:extend=延長,set=設定到期時間,permanent=永久有效 extendsetpermanent 範例: extend |
base | string | 選填 | extend 基準:auto/current/now autocurrentnow 範例: auto |
days | number | 選填 | extend 模式延長天數 範例: 30 |
seconds | number | 選填 | extend 模式延長秒數,優先級高於 days 範例: 2592000 |
duration | string | 選填 | extend 模式時長表達式,支援 30d、12h、60m、3600s 範例: 30d |
expire_time | number | 選填 | set 模式的新到期時間戳,支援秒或毫秒;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 | 選填 | 多匹配處理:all/first/error,預設 all allfirsterror 範例: all |
continue_on_error | boolean | 選填 | 是否遇到單個設備失敗後繼續處理,預設 true 範例: true |
回應參數
| 參數名 | 類型 | 必填 | 說明 |
|---|---|---|---|
code | number | 必填 | 狀態碼 範例: 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"
按 KID 批量續期30天
使用逗號分隔 kids 並延長30天
按 KID 批量續期30天
{}
"token":"your_api_token_here",
"kids":"KID001,KID002",
"mode":"extend",
"days":30
按 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"
每台設備不同策略
items 中每台設備可以覆蓋全域續期參數
每台設備不同策略
{}
"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 個定義
12Token 不能為空
未提供 token 參數
20請提供至少一個設備
未提供設備列表
21mode 參數無效
續期模式不合法
回應語言
透過 X-Lang 請求標頭自訂介面回應語言。下方程式碼示例會自動使用您目前瀏覽系統的語言。
建議請求標頭
X-Lang: zh-TW支援的語言
zh, en, zh-TW, vi, ar也可以使用 Accept-Language;X-Lang 優先級更高。不支援的語言將回退為英文。
程式碼示例
curl -X POST "https://testypro.iwai.cc,https://cer.xyul.cn,https://cer.iwai.cc/api/device/membership/renew" \
-H "X-Lang: zh-TW" \
-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
}'注意事項
- 該接口僅更新設備會員/證書下載權益到期時間,不會重新簽名或扣款
- 0 表示永久有效;extend 遇到永久有效設備時預設保持永久,可用 base=now 強制改為從當前時間延長
- UDID 命中多條證書時預設 match=all 全部更新,可傳 first 或 error 改變行為
- 支援 JSON 請求,也支援表單參數;表單 items 可傳 JSON 陣列字串
在控制台試一試
在下方填寫參數後直接發送請求測試。請求只發往本站 API,地址已鎖定不可修改;會攜帶你當前登入的 Cookie。
POST
https://testypro.iwai.cc/api/device/membership/renew已鎖定本站string必填
用戶 API Token
string
續期模式:extend=延長,set=設定到期時間,permanent=永久有效
string
extend 基準:auto/current/now
number
extend 模式延長天數
number
extend 模式延長秒數,優先級高於 days
string
extend 模式時長表達式,支援 30d、12h、60m、3600s
number
set 模式的新到期時間戳,支援秒或毫秒;0 表示永久有效
string
單個設備 KID
string
單個設備 UDID
array
設備 KID 陣列,也支援逗號/空格/換行分隔字串
array
設備 UDID 陣列;同一 UDID 多證書時預設 match=all 全部更新,也支援逗號/空格/換行分隔字串
array
高級批量配置,每項可包含 kid 或 udid 並覆蓋續期策略
string
多匹配處理:all/first/error,預設 all
boolean
是否遇到單個設備失敗後繼續處理,預設 true