PHP实现微信小程序状态检测(违规、暂停服务、维护中、正在修复)

实现原理

进入那些状态不正常的小程序会被重定向至一个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
相关推荐
yashunan2 小时前
Web_php_unserialize
android·前端·php
奥顺互联V2 小时前
yes镜像站群/PHP驱动的镜像站群架构实践
开发语言·架构·开源·php
小咕聊编程8 小时前
【含文档+PPT+源码】基于微信小程序农家乐美食餐厅预约推广系统
微信小程序·小程序·美食
字节全栈_rJF17 小时前
概述、 BGP AS 、BGP 邻居、 BGP 更新源 、BGP TTL 、BGP路由表、 BGP 同步
网络·智能路由器·php
计算机-秋大田17 小时前
基于微信小程序的电子竞技信息交流平台设计与实现(LW+源码+讲解)
spring boot·后端·微信小程序·小程序·课程设计
dal118网工任子仪19 小时前
92,[8] 攻防世界 web Web_php_wrong_nginx_config
开发语言·php
aaaweiaaaaaa1 天前
php的使用及 phpstorm环境部署
android·web安全·网络安全·php·storm
Stanford_11061 天前
C++中常用的十大排序方法之4——希尔排序
c++·算法·微信小程序·排序算法·微信公众平台·twitter·微信开放平台
doubt。1 天前
3.攻防世界Web_php_unserialize
网络·安全·web安全·网络安全·php·代码复审