POST
v1.1.0stable

تجديد عضوية الجهاز

تحديث انتهاء عضوية الأجهزة دفعة واحدة مع أوضاع مطابقة وتجديد مرنة.

POST/api/device/membership/renew
المصادقة:API Key
الحد:30/دقيقة

معلمات الطلب

يمكن تمرير جميع المعلمات عبر Query أو Body

اسم المعلمةالنوعمطلوبالوصف
token
stringمطلوب
رمز API للمستخدم
مثال: your_api_token_here
mode
stringاختياري
وضع التجديد: extend أو set أو permanent
extendsetpermanent
مثال: extend
base
stringاختياري
أساس التمديد: auto أو current أو now
autocurrentnow
مثال: auto
days
numberاختياري
عدد الأيام للإضافة
مثال: 30
seconds
numberاختياري
الثواني للإضافة، لها أولوية أعلى من days
مثال: 2592000
duration
stringاختياري
صيغة المدة: 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 للأجهزة
مثال: 00008030-001234567890002E
items
arrayاختياري
عناصر دفعية متقدمة مع إعدادات مستقلة لكل جهاز
مثال: [{"kid":"KID001","mode":"extend","days":30},{"udid":"00008030-001234567890002E","mode":"permanent"}]
match
stringاختياري
معالجة التطابق المتعدد: all أو first أو error
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مطلوب
وقت الانتهاء السابق
مثال: 1769675945
data.results[].new_expire_time
numberمطلوب
وقت الانتهاء الجديد
مثال: 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"
}

تمديد 30 يوماً عبر KID

استخدم kids مفصولة بفواصل

تمديد 30 يوماً عبر KID
{
"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"
}

استراتيجية لكل جهاز

يمكن لكل عنصر تجاوز الخيارات العامة

استراتيجية لكل جهاز
{
"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
{
"token":"your_api_token_here",
"udid":"00008030-001234567890002E",
"mode":"extend",
"days":30,
"match":"first"
}

رموز الخطأ

رموز الخطأ4 معرّف
12
الرمز مطلوب
معامل token مفقود
20
يرجى تقديم جهاز واحد على الأقل
لم يتم تقديم أجهزة
21
وضع غير صالح
وضع التجديد غير صالح

لغة الاستجابة

خصص لغة استجابة API باستخدام ترويسة X-Lang. تستخدم أمثلة الكود أدناه لغة الموقع الحالية تلقائيًا.

الترويسة الموصى بها
X-Lang: ar
اللغات المدعومة
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: ar" \
  -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 تبقى الأجهزة الدائمة دائمة افتراضياً
  • عند مطابقة UDID لعدة شهادات، يقوم match=all بتحديثها كلها افتراضياً
  • تدعم JSON والنماذج، ويمكن تمرير items كسلسلة JSON في النموذج

جرّب في وحدة التحكم

املأ المعلمات أدناه ثم أرسل الطلب للاختبار. تُرسَل الطلبات إلى واجهة هذا الموقع فقط؛ العنوان مقفل ولا يمكن تغييره، ويُرفَق ملف تعريف الارتباط لتسجيل دخولك الحالي.

POSThttps://testypro.iwai.cc/api/device/membership/renewمقفل على هذا الموقع
stringمطلوب

رمز API للمستخدم

string

وضع التجديد: extend أو set أو permanent

string

أساس التمديد: auto أو current أو now

number

عدد الأيام للإضافة

number

الثواني للإضافة، لها أولوية أعلى من days

string

صيغة المدة: 30d أو 12h أو 60m أو 3600s

number

وقت انتهاء جديد لوضع set، بالثواني أو المللي ثانية. 0 يعني دائم

string

KID لجهاز واحد

string

UDID لجهاز واحد

array

قائمة KID للأجهزة

array

قائمة UDID للأجهزة

array

عناصر دفعية متقدمة مع إعدادات مستقلة لكل جهاز

string

معالجة التطابق المتعدد: all أو first أو error

boolean

هل يستمر بعد فشل عنصر واحد، الافتراضي true