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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库被攻击需要注意什么

没想到自己用了一个简单的腾讯虚拟机&#xff0c;里面自己安装了一个 MySQL 数据库也会被黑客攻击。 一、问题现象 小程序访问不了&#xff0c;后台程序报数据库相关的错误。 查看数据库&#xff0c;发现数据库被篡改。 二、问题原因 1、为了可以远程能够访问数据库&#xf…

Deno vs. Bun vs. Node.js功能比较

本文比较了 Deno、Bun 和 Node.js 作为 JavaScript 运行时的功能、易用性和安全性&#xff1a; Deno 提供了一套全面的功能&#xff0c;并且默认情况下是安全的。 Bun 优先考虑简单性和速度&#xff0c;重点关注开发人员体验。 Node.js 虽然在开发者体验方面落后&#xff0c;…

基于Qt4开发曲线绘制交互软件Plotter

目前市面上有很多曲线绘制软件,但其交互功能较差。比如,想要实现数据的交互,同步联动等,都需要大量繁琐的人工操作。所以讲想开发一款轻量级的曲线绘制交互软件。下面就以此为案例,记录一下基于Qt4的开发过程。 目录 1 需求 2 技术路线 3 开发流程 1 框架搭建 2 菜单…

首家!亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试

近日&#xff0c;在中国信通院“可信数据库”数据库迁移工具专项测试中&#xff0c;湖南亚信安慧科技有限公司&#xff08;简称&#xff1a;亚信安慧科技&#xff09;数据库数据同步平台V2.1产品依据《数据库迁移工具能力要求》、结合亚信科技AntDB分布式关系型数据库产品&…

[每周一更]-(第61期):Rust入门策略(持续更新)

一门语言的学习&#xff0c;就要从最基本的语法开始认识&#xff0c;再分析不同语言的区别&#xff0c;再加上实战&#xff0c;才能更快的学会&#xff0c;领悟到作者的设计思想&#xff1b; 介绍 Rust编程练习 开发工具VSCode及插件 社区驱动的 rust-analyzerEven Better T…

Java基于SpringBoot的闲一品交易平台

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 大家好&#xff0c;我是程序员徐师兄、今天给大家谈谈基于android的app开发毕设题目&#xff0c;以及基于an…

IntelliJ IDEA使用_Plugin插件推荐

官网插件库&#xff1a;https://plugins.jetbrains.com/search 代码规范检测&#xff1a;Alibaba Java Coding Guidelines码云&#xff1a;Giteemybatis插件&#xff1a;MyBatisX多颜色括号&#xff1a;Rainbow Brackets操作快捷键提示&#xff1a;Key Promoter X力扣&#xff…

slickEdit 2022 (v27.0.2)Ubuntu安装以及破解

1去官网下载安装包 SlickEdit 也可以从我这里下载源码包 https://download.csdn.net/download/m0_38012470/88343180 2.解压压缩包并进入根目录 3.sudo ./vsinst 4按住回车不松手一直到显示需要你输入yes的时候 5.一路通过需要输入Y的时候就输入 6.一直到弹出对话框关闭…

Linux的常见指令

目录 pwd命令ls 指令mkdir指令touch指令cd 指令rmdir指令 && rm 指令man指令nanocp指令mv指令cat指令more指令less指令head指令tail指令grep指令热键zip/unzip指令tar指令uname –r指令输出重定向 图形化界面和命令行操作本质都是对操作系统进行直接或间接的操作 pwd命…

go语言详解-----包(package)引入

一、go语言基础 1、每一个可运行的go程序必须要有一个main 包&#xff08;package&#xff09;&#xff0c;即package main&#xff1b;并且该main包中必须要有一个main函数&#xff0c;这是一个入口函数。 2、一个包中的描述符要能够被其他的包引用&#xff0c;那么该包中的…

成都精灵云复试完结篇

最近参加了成都精灵云的笔试与面试&#xff0c;岗位是c工程师。后面自己复盘了过程&#xff0c;复试部分总结如下&#xff0c;希望能对各位想进该公司以及面试C工程师的同学提供一些参考。     后续也会陆续分享各公司的面试和笔试经验在该专栏&#xff0c;想看的可以关注一下…

排序算法-插入排序

属性 当插入第i(i>1)个元素时&#xff0c;前面的array[0],array[1],…,array[i-1]已经排好序&#xff0c;此时用array[i]的排序码与array[i1],array[i-2],…的排序码顺序进行比较&#xff0c;找到插入位置即将array[i]插入&#xff0c;原来位置上的元素顺序后移 直接插入排序…

了解Zookeeper总结知识点

ZooKeeper 是什么&#xff1f; Zookeeper是Apache下的一个开源的分布式协调中间件。是一个CP系统&#xff0c;为分布式系统提供强一致性的数据管理。 底层基于类似文件系统的目录节点树方式进行数据存储。每个节点默认最大大小为1M&#xff0c;用于存储数据或节点信息。Zookee…

在微信公众号怎么实现每日签到功能

在微信公众号中实现每日签到功能&#xff0c;可以为企业或公众号运营者带来许多好处。每日签到功能不仅可以增加用户粘性&#xff0c;提高用户参与度&#xff0c;还可以为公众号带来更多的流量和曝光度。那么&#xff0c;如何在微信公众号中实现每日签到功能呢&#xff1f;本文…

vue3中css使用script中定义的变量

代码 <template><div class"box">haha</div> </template><script setup lang"ts"> const boxWidth 500px </script><style lang"scss"> .box {width: v-bind(boxWidth);height: 200px;background-c…

易优cms小程序插件升级到2.1版本

eyou小程序升级到2.1&#xff0c;主要新增一键获取手机号&#xff0c;统一返回格式等 升级内容&#xff1a; &#xff08;1&#xff09;对全部接口的返回格式做统一化设置 &#xff08;2&#xff09;新增一键获取手机号功能 &#xff08;3&#xff09;新增footprint足迹接口 &…

百度测开初面面试题分享(答案+文档)

1、java常用的异常处理机制 Java常用的异常处理机制有以下几种&#xff1a; 1&#xff09;try-catch-finally语句&#xff1a;用于捕获和处理异常。将可能抛出异常的代码放在try块中&#xff0c;然后在catch块中处理异常。无论是否发生异常&#xff0c;finally块中的代码都会…

长胜证券:怎么跟随主力进出?

跟着现在商场的快速改变和信息的普及化&#xff0c;人们在出资时越来越需求愈加精确的辅导和剖析。尤其是在股票商场&#xff0c;很多人想知道怎么跟从主力进出以获取更高的收益。在这篇文章中&#xff0c;咱们将从多个视点来评论这个论题。 一、了解主力资金的进出方向 首先&…

C++ Enet通信封装

C Enet通信封装 接口封装使用举例 Enet底层封装的是UDP通信&#xff0c;本文介绍了enet如何实现可靠udp传输的代码封装 接口封装 1)User_Enet_Listen监听端口函数 int User_Enet_Listen(const char *ip, int port, ENetHost **host) { ENetAddress address; if(!strcmp(i…

无涯教程-JavaScript - ISODD函数

描述 如果数字为奇数,则ISODD函数返回TRUE,如果数字为偶数,则返回FALSE。 语法 ISODD (number) 争论 Argument描述Required/OptionalNumber 要测试的值或表达式。 如果number不是整数,则将其截断。 Required Notes 您可以在执行计算之前使用此功能测试单元格的内容。 如果…