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

2023-11-10

实现原理

进入那些状态不正常的小程序会被重定向至一个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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 如何使用 PHP 从 iframe 获取 url

    如何从下面的链接获取 YouTube 网址 您可以使用 regex 和 preg match 函数 preg match src iframe string match url match 1 UPDATE如果您有使用 php 生成的页面或
  • 使用 Graph API 删除 facebook 帖子 - 无法正常工作

    我使用以下命令在我的 Facebook 页面上发布消息 attachment array access token gt access token message gt This is a test Message 4 name gt Th
  • 解析错误:语法错误,意外的“”(T_ENCAPSED_AND_WHITESPACE)[重复]

    这个问题在这里已经有答案了 完整错误 解析错误 语法错误 意外的 T ENCAPSED AND WHITESPACE 需要标识符 T STRING 或 变量 T VARIABLE 或数字 T NUM STRING 它说错误出现在第 12 行
  • 如何使用 zend 导入 CSV

    如何使用 zend 框架导入 CSV 文件 我应该使用 zend file transfer 还是有任何我必须研究的特殊类 另外 如果我使用 zend file transfer 是否有任何特殊的 CSV 验证器 你不必使用任何 zend
  • PHP 将页面生成的标题放入

    我们在网站的所有页面中包含一个 header php 文件 因此 我们可以在 header php 文件中放置一个标题 该标题将应用于整个站点 或者在每个页面中添加一个自定义标题以更具描述性 问题是 这样做时 标题将位于 head 标签之外
  • Stripe API - 代理后面的 PHP Curl 请求

    我正在尝试使用 php 和curl 在代理后面向 stripe api 发出请求 如果我不在代理后面 则以下内容有效 ch curl init curl setopt ch CURLOPT URL https api stripe com
  • 列出某个类的所有对象

    好的 我的问题如下 我有一个用这个构造函数描述宠物的类 public function construct name type age 所以我想做的是制作一些宠物对象 然后我想打印这个类的所有对象的所有属性 这样它看起来像this http
  • 图像上的文字

    是否可以在 php 中动态地将文本放置在图像上 然后将其发送到 rss feed 是的 可以使用GD http www php net gd函数或图像魔术师 http www php net imagemagick功能 具体取决于您的服务器
  • 为什么不能将 MYSQL 函数传递到准备好的 PDO 语句中?

    在我看来 以下脚本应该有效 stmt db gt prepare UPDATE table SET status date modified stmt gt execute array 1 NOW 但经过时NOW 进入准备好的声明中 什么也
  • 我们在哪里/什么时候使用 JSON?

    你能告诉我 JSON 有什么用 在 Javascript 和 PHP 中 当我们需要 JSON 方法时 我从以下链接中阅读 但是 我没有获得有关任何项目的 JSON 实现的任何信息 http www json org js html htt
  • 使用 php 和 sendmail 发送有关测试 docker 容器的电子邮件

    我用的是ubuntu 16 04 我有一个 测试 docker docker compose 容器运行 php 5 6 和 apache 2 4 在生产平台 没有docker 上 邮件是通过sendmail发送的 如何在docker容器上发
  • Zend Framework 2 在视图中显示视图

    我有两个模块管理和登录 我想在管理视图 index html 中显示登录视图 login phtml 我在管理模块indexAction控制器中有以下内容 public function indexAction login new Logi
  • laravel 5:找不到类“输入”

    In my routes php我有的文件 Route get function return view login Route get index function return view index Route get register
  • 如何在没有数据库的情况下创建AJAX分页?

    是否可以在没有 MySQL 帮助的情况下获取 AJAX 分页页面 难道我不能只添加一个包含我需要显示的文本和标记的 PHP 文件 然后通过单击页码将该内容提供给用户吗 那么可以用纯 jQuery 和 PHP 来实现吗 您会使用什么代码方法来
  • 通过另一个二维数组中的行过滤二维数组的行

    我有两个数组 我正在使用array diff assoc 以获得差异 但它总是返回common set结果中的行 它应该返回new q sets排 我的方法有什么问题吗 样本数据 array1 12 gt new q sets 11 gt
  • 将程序存储在 phpMyAdmin 中

    我必须将存储过程添加到 MySQL 数据库 问题是托管提供php我的管理员来管理数据库 我在网上搜索了一下 想法是运行创建程序的MySQL本机语句 但由于程序的代码通常可能有 我们必须更改 MySQL 中的分隔符 php我的管理员没有这个选
  • PHP mysql_num_rows 死错误

    我想创建一个页面 用户可以在其中添加他们的信息 我已经创建了该页面 但我真正的问题是代码 我有一些问题 这部分代码
  • 单击文件下载后,成功后使用 AJAX 重定向到另一个页面

    In my WordPress project my Download button containing a zip file which onClick should be downloaded So the HTML producin
  • PHP 对象创建和内存使用

    一个基本的虚拟类 class foo var bar 0 function foo function boo echo memory get usage echo n foo new foo echo memory get usage ec
  • PHP 中的数据清理[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • java晋级赛 深入并发编程

    根据黑马java并发编程学习做的笔记 传送门 https www bilibili com video BV16J411h7Rd p 15 java晋级赛 深入并发编程 一 多线程基础 进程与线程 创建线程的方式及运行原理 创建线程的方式
  • 进程调度的控制—文件锁

    前言 在进程之间 我们不能决定应该先去调度哪一个进程 这时候我们就需要对一个文件加锁 来要求那个先来执行 整体文件锁 int flock int fd int operation fd 文件描述符 operation 定义的宏 也就是选项
  • STL标准模板库学习笔记一(STL序列容器)

    目录 STL 容器 STL迭代器 array vector deque功能 list 和 forward list 功能 vector emplace back 和push back 的区别 vector插入函数insert和emplace
  • ST7796S MIPI单通道, 320x480初始化代码

    ST7796S MIPI单通道接口 320x480分辨率初始化代码 代码示例 loadWidthSet 320 loadHeightSet 480 loadHBPSet 180 loadVBPSet 20 loadHFPSet 20 loa
  • 【C语言】统计素数并求和

    改名字了 2022 2 26之前叫 回到正题 由题可知 题目要求在用户自己输入的定整数M和N区间内求出素数的个数 并且对他们求和 要想解决编程题目 首先要知道题目问的是什么 素数一般指质数 质数是指在大于1的自然数中 除了1和它本身以外不再
  • 版本控制之最佳实践(Git版)

    现如今 应该每个开发者都在使用版本控制工具了吧 然而 如果你理解版本控制的基本规则 你便能更好地发挥它的效用 在此 我们汇总了一些最佳实践 希望你在使用Git做版本控制时能够了然于心 得心应手 1 相关的改动才放一起提交 一次提交 git
  • hi35 web服务器

    在hi3516A上移植好的boa嵌入式web服务器代码 boa有61k 一次只能处理一个请求 https download csdn net download ganxiaoyagn000 9239729 appweb Appweb 6 1
  • android 11 存储权限,Android 11存储权限强制申请

    private static final int REQUEST CODE 1024 private void requestPermission if Build VERSION SDK INT gt Build VERSION CODE
  • OC中的基本容器和基本数据类型

    基本数据类型 NSRange 是一个结构体 里面有两个数据成员数据类型都为NSUInteger 就是c语言中的无符号整形 一个是location表示集合的起始地址 另外一个变量是length表示从起始地址开始算多少个元素 NSRange的三
  • CTF-web 简介

    web部分是CTF的重要组成部分之一 素有WEB大魔王之称 题目种类繁多 关键是如何发现漏洞的类型和怎样构造特殊的负载绕过过滤 CTF分为三种模式 解题模式 攻防模式 混合模式 在线工具 https www ctftools com dow
  • JVM运行时数据区

    文章目录 JVM内存结构图 1 运行时数据区域 JDK 1 7 JDK 1 8 1 线程栈 虚拟机栈 2 本地方法栈 3 程序计数器 4 方法区 元空间 5 堆 6 运行时常量池 Runtime Constant Pool 7 直接内存 D
  • 新版MetaMask如何获取当前账户地址

    window addEventListener load async gt Modern dapp browsers if window ethereum let ethereum window ethereum window web3 n
  • C语言中 -> 和 . 的区别

    在C语言中 gt 和 都是用于访问结构体 struct 成员的运算符 但它们的使用场景略有不同 1 gt 运算符用于访问结构体指针的成员 当你有一个指向结构体的指针时 你可以使用 gt 运算符来访问该结构体的成员 例如 struct Per
  • Linux使用第三方库链接的使用方式——静态式

    目录 二 第三方库为静态库时 方法1 两个窗口去分别模拟两个窗口公司A 客户端 公司B 服务端 的视角案例实现 提前插播一条指令 生成静态库文件的指令 方法2 优化 该方法在上述方法1的第10步后开始进行 这里强调一个问题 今天我们来学习将
  • 记录一个AFR去嵌S参数异常的案例。

    最近在使用AFR去嵌一个S参数的时候 遇到了如下问题 首先介绍一下这个S参数 一端是MCIO连接器 另一端是CEM连接器 所以测试的时候一端接MCIO测试治具 一端接CEM测试治具 再通过线缆将测试治具连接到VNA上 我大概画了一个简图如下
  • Java 输出机制 数据类型 基本数据类型转换 基本数据类型和String类型的转换

    目录 一 输出机制 1 print和println的差别 2 可接收不同类型参数 3 输出函数中 符号的使用 二 数据类型 1 整型类型 2 浮点类型 3 字符类型 三 基本数据类型转换 1 自动类型转换 2 强制类型转换 3 练习题 四
  • 目标检测算法回顾之发展概览

    目标检测算法的发展时间线 发展历史轴 时间轴线图 算法方法概览 思维导图 说明 本文仅供学习 发展历史轴 时间轴线图 目标检测的算法发展可以追溯到很久之前 这里我根据前两年的综述论文加上这两年的发展也画了两个部分的相关模型发展轴 可以看到
  • linux命令之ssh详解

    ssh openssh套件中的客户端连接工具 Linux在线工具 linux命令在线工具 个人博客网站 博客 Java17中文文档 JDK17中文手册 Gradle8 1 1中文文档 Gradle中文文档 补充说明 ssh命令 是opens
  • (转载)Linux 系统内核的调试

    调试是软件开发过程中一个必不可少的环节 在 Linux 内核开发的过程中也不可避免地会面对如何调试内核的问题 但是 Linux 系统的开发者出于保证内核代码正确性的考虑 不愿意在 Linux 内核源代码树中加入一个调试器 他们认为内核中的调
  • PHP实现微信小程序状态检测(违规、暂停服务、维护中、正在修复)

    实现原理 进入那些状态不正常的小程序会被重定向至一个Url 使用抓包软件抓取这个Url 剔除不必要参数 使用cURl函数请求网页获得HTML内容 根据内容解析出当前APPID的小程序的状态 代码