设备会员续期
批量更新设备会员到期时间,支持多种设备匹配方式和续期模式。
/api/device/membership/renew请求参数
所有请求参数需通过 Query 或 Body 传递
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
token | string | 必填 | 用户 API Token 示例: your_api_token_here |
mode | string | 可选 | 续期模式:extend=延长,set=设置到期时间,permanent=永久有效。默认根据 expire_time 自动判断,否则 extend 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,并可覆盖 mode/base/days/seconds/duration/expire_time 示例: [{"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=请求处理完成 示例: 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 |
按 KID 批量续期30天
kids=KID001,KID002&mode=extend&days=30
按 UDID 批量续期
适合只有设备 UDID 的场景;同一 UDID 多证书时默认全部更新
设置指定到期时间
mode=set 直接设置新的会员到期时间戳
设置永久有效
mode=permanent 将设备会员设为永久有效
每台设备不同策略
items 中每台设备可以覆盖全局续期参数
UDID 多证书只处理最新一条
match=first 时同一 UDID 命中多个证书只更新最新一条
错误码
122021响应语言
通过 X-Lang 请求头自定义接口返回语言。下方代码示例会自动使用您当前访问系统的语言。
X-Lang: zhzh, 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" \
-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 数组字符串
在控制台试一试
填好参数后直接点发送测试,接口地址固定为本站,会带上当前登录状态
https://testypro.iwai.cc/api/device/membership/renew已锁定本站用户 API Token
续期模式:extend=延长,set=设置到期时间,permanent=永久有效。默认根据 expire_time 自动判断,否则 extend
extend 基准:auto=未过期从原到期延长,已过期从当前时间延长;current=总是从原到期时间延长;now=总是从当前时间延长
extend 模式延长天数
extend 模式延长秒数,优先级高于 days
extend 模式时长表达式,支持 30d、12h、60m、3600s
set 模式的新到期时间戳,支持秒或毫秒;0 表示永久有效
单个设备 KID
单个设备 UDID
设备 KID 数组,也支持逗号/空格/换行分隔字符串
设备 UDID 数组;同一 UDID 多证书时默认 match=all 全部更新,也支持逗号/空格/换行分隔字符串
高级批量配置,每项可包含 kid 或 udid,并可覆盖 mode/base/days/seconds/duration/expire_time
多匹配处理:all=全部更新,first=只更新最新一条,error=多匹配时报错。默认 all
是否遇到单个设备失败后继续处理,默认 true