做微信小程序开发、运营或者投放时,有时候需要判断一个小程序当前是否仍然可以正常使用。
仅仅知道AppID存在并不能代表小程序当前状态正常,因为小程序可能仍然保留AppID,但已经因为平台规则等原因被限制或者封禁。
这里可以通过下面这个接口进行检测:
https://api.wxapi.work/xcx/checkxcx.PHP?appid=
例如检测:
wx81894c6dbb81c2e2
完整请求:
https://api.wxapi.work/xcx/checkxcx.PHP?appid=wx81894c6dbb81c2e2
接口可能返回:
{"code":0,"appid":"wx81894c6dbb81c2e2","status":"已被封禁,封禁原因:存在绕开、规避或对抗平台审核监管的行为"}
返回规则:
code = 1 小程序正常
code = 0 小程序被封禁
下面封装成一个PHP接口。
PHP代码
<?php
header('Content-Type: application/json; charset=utf-8');
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
if ($appid === '') {
echo json_encode([
'code' => 0,
'appid' => '',
'status' => '请传入appid'
], JSON_UNESCAPED_UNICODE);
exit;
}
// AppID基础格式验证
if (!preg_match('/^wx[a-zA-Z0-9]{16}$/', $appid)) {
echo json_encode([
'code' => 0,
'appid' => $appid,
'status' => 'appid格式错误'
], JSON_UNESCAPED_UNICODE);
exit;
}
$apiUrl = 'https://api.wxapi.work/xcx/checkxcx.PHP?appid=' . urlencode($appid);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $apiUrl,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 10,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2
]);
$response = curl_exec($ch);
if ($response === false) {
curl_close($ch);
echo json_encode([
'code' => 0,
'appid' => $appid,
'status' => '检测接口请求失败'
], JSON_UNESCAPED_UNICODE);
exit;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode != 200) {
echo json_encode([
'code' => 0,
'appid' => $appid,
'status' => '检测接口返回异常'
], JSON_UNESCAPED_UNICODE);
exit;
}
$data = json_decode($response, true);
if (!is_array($data) || !isset($data['code'])) {
echo json_encode([
'code' => 0,
'appid' => $appid,
'status' => '检测结果解析失败'
], JSON_UNESCAPED_UNICODE);
exit;
}
echo json_encode([
'code' => intval($data['code']),
'appid' => isset($data['appid']) ? $data['appid'] : $appid,
'status' => isset($data['status']) ? $data['status'] : ''
], JSON_UNESCAPED_UNICODE);
使用方法
把代码保存为:
check_xcx.php
访问:
https://你的域名/check_xcx.php?appid=wx81894c6dbb81c2e2
如果返回:
{"code":0,"appid":"wx81894c6dbb81c2e2","status":"已被封禁,封禁原因:存在绕开、规避或对抗平台审核监管的行为"}
说明当前检测结果为封禁状态。
如果返回:
{"code":1,"appid":"wx81894c6dbb81c2e2","status":"正常"}
则说明当前小程序状态正常。
这个接口后续同样可以增加数据库记录和定时检测功能。例如每天定时检查一批AppID,一旦状态从正常变成封禁,就记录异常状态并发送提醒。
网硕互联帮助中心







评论前必须登录!
注册