基础信息
查看接口基本信息和返回格式
免责声明
本平台提供的API服务均来自互联网,可能包含生成式AI内容。所有返回内容仅供参考,平台不对内容的准确性、完整性、时效性或适用性做任何保证。使用者应自行判断并承担使用风险。
接口描述
检测P12证书有效状态以及描述权限信息
七日请求统计
接口地址
https://mdu.cc/api/AppleProfileCertCheck
请求方式
返回方式
返回预览
{
"code": 200,
"message": "检测成功",
"data": {
"certificates": {
"name": "iPhone Distribution: Ministere de I Emploi de la Protection Sociale",
"from": "2023-11-16 13:47:52",
"to": "2026-11-15 13:47:51",
"unit": "Apple Inc.",
"is_revoked": true,
"status": "已吊销",
"fingerprint": "51:F5:F2:7E:83:BD:51:73:BC:87:82:37:1F:24:DD:ED:AF:F4:6B:CD",
"serial": 76783665671638534154865607128819835567
},
"mobileprovision": {
"cert_type": "Individual",
"developers": [
"开发者账号 (Team ID: VV6YRRU69K)"
],
"app_id": "00008130-001845511A02001C65",
"id": "VV6YRRU69K.com.neicexiahh2303.sign9316",
"platform": [
"iOS",
"xrOS",
"visionOS"
],
"from": "2025-01-06 12:14:51",
"cert_end_date": 281,
"expiration_time": "2025-10-14 12:14:51",
"is_expired": false,
"certificates": [
"00008130-001845511A02001C"
],
"developer_certificates": [
{
"fingerprint": "51:F5:F2:7E:83:BD:51:73:BC:87:82:37:1F:24:DD:ED:AF:F4:6B:CD",
"serial": 76783665671638534154865607128819835567
}
],
"is_matching": false,
"uuid": "4cdfe7ea-7073-4f0f-ab81-5217dc48d990",
"version": 1,
"team_name": "Jing Tong"
},
"is_matching": false,
"permissions": {
"wifi": true,
"hotspot": false,
"aps": true,
"keychain": true,
"debug": false,
"siri": true,
"health": true,
"groups": true,
"purchase": true,
"domains": true,
"autofill": true,
"class": true,
"home": true,
"game": true,
"audio": true,
"multipath": true,
"networkextension": true,
"nfc": true,
"vpn": true,
"wireless": true,
"hls_low_latency": false,
"health_access": true,
"extended_virtual_addressing": true,
"increased_memory_limit": true
}
}
}
计费标准
了解接口计费方式和套餐价格
接口类型
免费接口:本接口对所有用户免费开放,每日有一定免费调用次数,超出后可继续使用或升级会员。
计费方式
QPS限制
普通用户不限制请求频率
会员用户不限制请求频率
每日请求次数
普通用户不限制每日请求次数
会员用户不限制每日请求次数
计费规则
安全认证
了解接口的认证方式和访问凭证管理
实名认证
本接口对所有用户开放,无需实名认证即可访问
认证方式
本接口对所有用户开放,无需任何认证即可访问
参数文档
了解接口的请求参数和响应字段说明
请求参数
| 参数名 | 类型 | 必填 | 默认值 | 可选值 | 说明 |
|---|---|---|---|---|---|
token |
string | 是 | 无 | 登录后显示你的请求token | 接口请求唯一认证标识! |
P12File |
file | 是 | .P12 | P12证书文件 | |
P12PassWord |
string | 是 | P12证书密码,用于解密证书文件 | ||
MobileProvisionFile |
string | 是 | .mobileprovision | 描述文件(.mobileprovision文件),用于解析应用和开发者信息 |
响应参数
| 字段名 | 类型 | 说明 |
|---|---|---|
code
|
int | 状态码,200表示成功 |
message
|
string | 检测成功 表示操作成功 |
data
|
object | 层级对象 |
|
│
certificates
|
object | 层级对象 |
|
│
│
├─
name
|
string | 证书名称 |
|
│
│
├─
from
|
string | 证书生效日期 |
|
│
│
├─
to
|
string | 证书过期日期 |
|
│
│
├─
unit
|
string | 签发机构 |
|
│
│
├─
is_revoked
|
boolean | 证书是否被吊销,false表示未吊销 |
|
│
│
├─
status
|
string | 状态,有效 或 已吊销 |
|
│
│
├─
fingerprint
|
string | 证书指纹 |
|
│
│
├─
serial
|
int | 证书序列号 |
|
│
mobileprovision
|
object | 层级对象 |
|
│
│
├─
cert_type
|
string | Enterprise企业,Individual个人 |
|
│
│
developers
|
array | 数组 |
|
│
│
│
├─
developers[0]
|
string | 配置名称 开发者账号信息,包含Team ID |
|
│
│
├─
app_id
|
string | 应用程序ID |
|
│
│
├─
id
|
string | 应用的Bundle ID |
|
│
│
platform
|
array | 数组 |
|
│
│
│
├─
platform[0]
|
string | 支持的平台,如iOS、xrOS、visionOS |
|
│
│
├─
from
|
string | 描述配置文件生效日期 |
|
│
│
├─
cert_end_date
|
int | 描述有效期剩余 |
|
│
│
├─
expiration_time
|
string | 描述配置文件过期时间 |
|
│
│
├─
is_expired
|
boolean | 配置文件是否过期,false表示未过期 |
|
│
│
certificates
|
array | 数组 |
|
│
│
│
├─
certificates[0]
|
string | 关联的证书UDID |
|
│
│
developer_certificates
|
array | 数组 |
|
│
│
│
developer_certificates[0]
|
object | 层级对象 |
|
│
│
│
│
├─
fingerprint
|
string | 开发者描述指纹 |
|
│
│
│
│
└─
serial
|
int | 描述序列号 |
|
│
│
├─
is_matching
|
boolean | 证书和描述是否匹配,false表示不匹配 |
|
│
│
├─
uuid
|
string | 配置文件的唯一标识符 |
|
│
│
├─
version
|
int | 配置文件版本 |
|
│
│
├─
team_name
|
string | 团队名称 |
|
│
├─
is_matching
|
boolean | 整体证书是否匹配,false表示不匹配 |
|
│
permissions
|
object | 层级对象 |
|
│
│
├─
wifi
|
boolean | WiFi访问 |
|
│
│
├─
hotspot
|
boolean | 热点 |
|
│
│
├─
aps
|
boolean | 推送通知 |
|
│
│
├─
keychain
|
boolean | 钥匙串访问 |
|
│
│
├─
debug
|
boolean | 调试 |
|
│
│
├─
siri
|
boolean | Siri |
|
│
│
├─
health
|
boolean | 健康数据 |
|
│
│
├─
groups
|
boolean | 应用组 |
|
│
│
├─
purchase
|
boolean | 应用内购买 |
|
│
│
├─
domains
|
boolean | 关联域 |
|
│
│
├─
autofill
|
boolean | 自动填充 |
|
│
│
├─
class
|
boolean | 课堂 |
|
│
│
├─
home
|
boolean | 家庭 |
|
│
│
├─
game
|
boolean | 游戏中心 |
|
│
│
├─
audio
|
boolean | 音频 |
|
│
│
├─
multipath
|
boolean | 多路径 |
|
│
│
├─
networkextension
|
boolean | 网络扩展 |
|
│
│
├─
nfc
|
boolean | NFC |
|
│
│
├─
vpn
|
boolean | VPN |
|
│
│
├─
wireless
|
boolean | 无线配置 |
|
│
│
├─
hls_low_latency
|
boolean | 低延迟HLS |
|
│
│
├─
health_access
|
boolean | 健康数据访问 |
|
│
│
├─
extended_virtual_addressing
|
boolean | 扩展虚拟地址 |
|
│
│
└─
increased_memory_limit
|
boolean | 增加内存限制 |
状态码
了解接口返回的状态码含义及处理方式
接口状态码
| 状态码 | 说明 |
|---|---|
200 |
请求成功 |
服务器状态码
| 状态码 | 说明 |
|---|---|
500 |
服务器错误 |
501 |
请求接口不存在 |
502 |
请求接口已下架 |
503 |
请求接口维护中 |
504 |
缺少请求token参数 |
505 |
请求token不存在 |
506 |
请求token已被封禁 |
507 |
请求token额度不足 |
508 |
今日请求token已达上限 |
509 |
请求ip不在token白名单内 |
510 |
请求token无权使用当前接口 |
511 |
接口请求频率过高,请稍后再试 |
512 |
该接口未开启在线测试功能 |
513 |
今日在线测试次数已达上限 |
514 |
今日该接口请求次数已达上限 |
515 |
该接口为会员专属接口,请携带会员token |
516 |
该接口为会员专属接口,请开通会员 |
517 |
接口请求过于频繁,已被临时限制 |
518 |
该接口需要实名认证,请先完成实名认证 |
519 |
当前Token今日请求次数已达上限 |
520 |
当前Token已被禁止使用 |
在线测试
在线调试接口,实时查看响应结果
在线测试未开启
该接口暂未开启在线测试功能
示例代码
查看多种编程语言的接口调用示例
/**
* API请求DEMO-PHP
*
* 本demo支持GET与POST请求。
*/
//你申请的token密钥
$API_TOKEN = 'YOUR_TOKEN';
//API接口地址
$API_URL = 'https://mdu.cc/api/AppleProfileCertCheck';
$get_post_data = array(
'token' => 'YOUR_TOKEN',
'P12File' => '参数值',
'P12PassWord' => '参数值',
'MobileProvisionFile' => '参数值',
);
/*发起请求API接口:
第1个参数:API接口地址URL,跟上面的同名变量相对应,无需更改。
第2个参数:API接口参数数组,跟上面的同名变量相对应,无需更改。
第3个参数:请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。
*/
$resdata = api::send($API_URL, $get_post_data, 'POST'); //发起请求,注意这里要选择接口支持的协议,默认GET,可选POST
//打印请求结果
print($resdata);
///////////////你的业务代码可写在这里处理API返回的数据
/**
* API请求类
*/
class api
{
public static function send($API_URL, $get_post_data, $type)
{
$get_post_data = http_build_query($get_post_data);
$res = self::send_curl($API_URL, $type, $get_post_data, null);
return $res;
}
//封装好的CURL请求函数,支持POST|GET
public static function send_curl($API_URL, $type, $get_post_data)
{
$ch = curl_init();
if ($type == 'POST') {
curl_setopt($ch, CURLOPT_URL, $API_URL);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $get_post_data);
} elseif ($type == 'GET') {
curl_setopt($ch, CURLOPT_URL, $API_URL . '?' . $get_post_data);
}
curl_setopt($ch, CURLOPT_REFERER, $API_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$resdata = curl_exec($ch);
curl_close($ch);
return $resdata;
}
}
/**
* API请求DEMO-JavaScript
*
* 本demo支持GET与POST请求。
*/
//jQuery-Ajax
$.ajax({
url: 'https://mdu.cc/api/AppleProfileCertCheck',
data: {
token: 'YOUR_TOKEN',
P12File: '参数值',
P12PassWord: '参数值',
MobileProvisionFile: '参数值',
},
type: 'POST', //请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。
dataType: 'json',
success: function(data) {
console.log(data); //请求成功,输出结果到控制台
},
timeout: 3000, //超时时间
error: function(data) {
console.log('请求失败'); //失败处理
}
});
/**
* API请求DEMO-NodeJs
*
* 本demo支持GET与POST请求。
*/
const https = require('https');
const querystring = require('querystring');
// 定义请求选项
const options = {
hostname: 'mdu.cc',
path: '/api/AppleProfileCertCheck',
method: 'POST'
};
// 发送POST请求
const postData = querystring.stringify({
'token': 'YOUR_TOKEN',
'P12File': '参数值',
'P12PassWord': '参数值',
'MobileProvisionFile': '参数值',
});
const postOptions = {
hostname: 'mdu.cc',
path: '/api/AppleProfileCertCheck',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(postData)
}
};
const postReq = https.request(postOptions, res => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', d => {
process.stdout.write(d);
});
});
postReq.on('error', error => {
console.error(error);
});
postReq.write(postData);
postReq.end();
import requests
url = "https://mdu.cc/api/AppleProfileCertCheck"
data = {
"token": "YOUR_TOKEN",
"P12File": "参数值",
"P12PassWord": "参数值",
"MobileProvisionFile": "参数值",
}
response = requests.post(url, data=data)
print(response.json())
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
func main() {
apiURL := "https://mdu.cc/api/AppleProfileCertCheck"
// POST请求
data := url.Values{}
data.Set("token", "YOUR_TOKEN")
data.Set("P12File", "参数值")
data.Set("P12PassWord", "参数值")
data.Set("MobileProvisionFile", "参数值")
resp, err := http.Post(apiURL, "application/x-www-form-urlencoded", strings.NewReader(data.Encode()))
if err != nil {
fmt.Println("请求失败:", err)
return
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class ApiRequest {
public static void main(String[] args) {
try {
String apiUrl = "https://mdu.cc/api/AppleProfileCertCheck";
URL url = new URL(apiUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
// 构建POST参数
StringBuilder postData = new StringBuilder();
postData.append("token=").append(URLEncoder.encode("YOUR_TOKEN", "UTF-8"));
postData.append("&"); postData.append("P12File=").append(URLEncoder.encode("参数值", "UTF-8"));
postData.append("&"); postData.append("P12PassWord=").append(URLEncoder.encode("参数值", "UTF-8"));
postData.append("&"); postData.append("MobileProvisionFile=").append(URLEncoder.encode("参数值", "UTF-8"));
byte[] postDataBytes = postData.toString().getBytes("UTF-8");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
try (OutputStream os = conn.getOutputStream()) {
os.write(postDataBytes);
}
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
string apiUrl = "https://mdu.cc/api/AppleProfileCertCheck";
using (HttpClient client = new HttpClient()) {
// POST请求
var formData = new Dictionary<string, string> {
{ "token", "YOUR_TOKEN" },
{ "P12File", "参数值" },
{ "P12PassWord", "参数值" },
{ "MobileProvisionFile", "参数值" },
};
var content = new FormUrlEncodedContent(formData);
HttpResponseMessage response = await client.PostAsync(apiUrl, content);
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
/**
* API请求DEMO-C
*
* 本demo支持GET与POST请求。
* 需要安装libcurl库
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
// API地址
const char* url = "https://mdu.cc/api/AppleProfileCertCheck";
// POST请求
void postRequest(CURL* curl) {
CURLcode res;
const char* postData = "token=YOUR_TOKEN&P12File=%E5%8F%82%E6%95%B0%E5%80%BC&P12PassWord=%E5%8F%82%E6%95%B0%E5%80%BC&MobileProvisionFile=%E5%8F%82%E6%95%B0%E5%80%BC";
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
}
}
int main() {
CURL* curl = curl_easy_init();
if(curl) {
postRequest(curl); curl_easy_cleanup(curl);
}
return 0;
}
/**
* API请求DEMO-C++
*
* 本demo支持GET与POST请求。
* 需要安装libcurl库
*/
#include <iostream>
#include <string>
#include <curl/curl.h>
int main() {
CURL* curl = curl_easy_init();
if(curl) {
std::string apiUrl = "https://mdu.cc/api/AppleProfileCertCheck";
// POST请求
std::string postData = "token=YOUR_TOKEN&P12File=%E5%8F%82%E6%95%B0%E5%80%BC&P12PassWord=%E5%8F%82%E6%95%B0%E5%80%BC&MobileProvisionFile=%E5%8F%82%E6%95%B0%E5%80%BC";
curl_easy_setopt(curl, CURLOPT_URL, apiUrl.c_str());
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData.c_str());
CURLcode res = curl_easy_perform(curl);
if(res != CURLE_OK) {
std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
}
return 0;
}
.版本 2
.支持库 spec
.子程序 _启动子程序
.局部变量 url, 文本型
.局部变量 data, 文本型
.局部变量 result, 文本型
url = "https://mdu.cc/api/AppleProfileCertCheck"
data = "token=YOUR_TOKEN&P12File=%E5%8F%82%E6%95%B0%E5%80%BC&P12PassWord=%E5%8F%82%E6%95%B0%E5%80%BC&MobileProvisionFile=%E5%8F%82%E6%95%B0%E5%80%BC"
result = 网页_访问 (url, 1, data, , , , , , , , , )
调试输出 (result)
常见问题
查找常见问题的解决方案
暂无常见问题
该接口暂未添加常见问题说明