实现原理
进入那些状态不失常的小程序会被重定向至一个Url,应用抓包软件抓取这个Url,剔除不必要参数,应用cURl函数申请网页取得HTML内容,依据内容解析出以后APPID的小程序的状态。
代码
<?php // 编码 header('Content-type:application/json'); // 获取appid $appid = trim($_GET['appid']); // appid正则表达式验证规定 $appid_pattern = '/^wx[a-f0-9]{16}$/'; if($appid) { // 验证appid是否合乎规定 if(!preg_match($appid_pattern, $appid)) { $result = array( 'code' => 201, 'msg' => 'appid不合乎规定' ); }else { // 指标URL $url = 'https://mp.weixin.qq.com/mp/waerrpage?appid='.$appid.'&type=offshelf'; // 初始化cURL会话 $ch = curl_init(); // 设置cURL选项 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行cURL并获取页面内容 $response = curl_exec($ch); // 敞开cURL会话 curl_close($ch); // 获取前面的内容 $str1 = substr($response, strripos($response, "weui-msg__title")); // 获取后面的内容 $str2 = substr($str1, 0, strrpos($str1, "weui-msg__desc")); // 不失常的类型 $close_type_1 = '小程序因违规已暂停服务'; $close_type_2 = '小程序系统故障,开发者正在修复'; $close_type_3 = '小程序已暂停服务'; $close_type_4 = '小程序零碎更新保护中'; // 判断 if(preg_match("/因违规已暂停服务/", $str2)) { $result = array( 'code' => 201, 'msg' => $close_type_1 ); }else if(preg_match("/正在修复/", $str2)) { $result = array( 'code' => 201, 'msg' => $close_type_2 ); }else if(preg_match("/小程序已暂停服务/", $str2)) { $result = array( 'code' => 201, 'msg' => $close_type_3 ); }else if(preg_match("/更新保护中/", $str2)) { $result = array( 'code' => 201, 'msg' => $close_type_4 ); }else{ $result = array( 'code' => 200, 'msg' => '小程序失常' ); } } }else { $result = array( 'code' => 201, 'msg' => '请传入appid' ); } // 输入 echo json_encode($result,JSON_UNESCAPED_UNICODE);?>
应用
上传miniProgramStatusCheck.php至服务器;
拜访:
https://域名/miniProgramStatusCheck.php?appid=被检测的小程序的APPID