实现原理

进入那些状态不失常的小程序会被重定向至一个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