当前位置: 首页 > news >正文

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.lryc.cn/news/167143.html

相关文章:

  • ubuntu在线直接升级
  • 学习笔记:卸载nav2 navigation2导航
  • 觉非科技数据闭环系列 | BEV感知研发实践
  • 程序员情绪把控
  • 弱监督目标检测:ALWOD: Active Learning for Weakly-Supervised Object Detection
  • 驱动开发 day3
  • 许可license分析 第一章
  • Goby 漏洞发布|管家婆订货易在线商城 SelectImage.aspx 文件上传漏洞
  • Android屏幕录制
  • 实在智能牵手埃林哲,“TARS-RPA-Agent+云时通”双剑合璧共推企业数字化转型
  • 拥有这个中文版CustomGPT,你也能定制自己的AI问答机器人
  • fastadmin 基本使用配置
  • netty 线程组
  • Reactor 第十二篇 WebFlux集成PostgreSQL
  • 红队打靶:Me and My Girlfriend打靶思路详解(vulnhub)
  • Mysql高级——索引(2)
  • 【史上最硬核分享】Docker+jenkinsPipeline 运行实现 python 自动化(超详细)
  • leetcode 3. 无重复字符的最长子串
  • doccano 文本标注工具使用
  • 快速排序算法的递归和非递归
  • Maven无法拉取SNAPSHOT依赖的解决办法
  • day16-面向对象综合练习(上)
  • 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境
  • 漫谈:C、C++字符串的困局
  • 基于python+selenium的自动批量添加
  • gdb监视
  • STM32基础知识点总结
  • Python vs C#:首先学习哪种编程语言最好?
  • 代理IP和Socks5代理:跨界电商与全球爬虫的关键技术
  • CentOS 7 调优之周期性的访问中断