C++检测微信小程序封禁状态(2025年9月最新)

介绍

这个C++程序可以帮助你检测微信小程序是否被封禁。通过调用微信官方API接口,我们可以获取小程序的当前状态。返回结果包含状态码和详细封禁信息,其中code字段为1表示小程序正常,为0表示小程序被封禁。

代码

#include <iostream>
#include <string>
#include <curl/curl.h>
#include <nlohmann/json.hpp>

using json = nlohmann::json;

// 回调函数,用于接收HTTP响应数据
static size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* s) {
    size_t newLength = size * nmemb;
    try {
        s->append((char*)contents, newLength);
        return newLength;
    } catch(std::bad_alloc &e) {
        // 处理内存分配错误
        return 0;
    }
}

// 检测微信小程序状态的函数
json checkWeChatMiniProgramStatus(const std::string& appid) {
    CURL* curl;
    CURLcode res;
    std::string readBuffer;
    json result;

    curl = curl_easy_init();
    if(curl) {
        // 设置API请求URL
        std::string apiUrl = "https://api.wxapi.work/xcx/checkxcx.php?appid=" + appid;
        
        curl_easy_setopt(curl, CURLOPT_URL, apiUrl.c_str());
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        curl_easy_setopt(curl, CURLOPT_USERAGENT, "C++ WeChat MiniProgram Checker/1.0");
        curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L); // 10秒超时
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); // 跟随重定向

        // 执行HTTP请求
        res = curl_easy_perform(curl);
        
        // 检查请求结果
        if(res != CURLE_OK) {
            result["code"] = 0;
            result["error"] = "API请求失败: " + std::string(curl_easy_strerror(res));
        } else {
            long http_code = 0;
            curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_code);
            
            if(http_code == 200) {
                try {
                    // 解析JSON响应
                    auto jsonResponse = json::parse(readBuffer);
                    
                    // 验证返回数据结构
                    if(jsonResponse.contains("code") && jsonResponse.contains("appid")) {
                        // 直接返回API的完整响应
                        result = jsonResponse;
                    } else {
                        result["code"] = 0;
                        result["error"] = "API返回数据格式不正确";
                    }
                } catch(const json::parse_error& e) {
                    result["code"] = 0;
                    result["error"] = "JSON解析错误: " + std::string(e.what());
                }
            } else {
                result["code"] = 0;
                result["error"] = "HTTP错误代码: " + std::to_string(http_code);
            }
        }
        
        // 清理curl资源
        curl_easy_cleanup(curl);
    } else {
        result["code"] = 0;
        result["error"] = "无法初始化CURL";
    }

    return result;
}

int main() {
    std::cout << "微信小程序封禁状态检测 - 2025年9月最新" << std::endl;
    std::cout << "=====================================" << std::endl;
    
    // 要检测的小程序AppID
    std::string appid;
    std::cout << "请输入要检测的小程序AppID(如: wx81894c6dbb81c2e2): ";
    std::cin >> appid;
    
    // 调用检测函数
    json result = checkWeChatMiniProgramStatus(appid);
    
    // 输出结果
    std::cout << "\n检测结果:" << std::endl;
    std::cout << "小程序AppID: " << appid << std::endl;
    
    if(result.contains("code")) {
        int statusCode = result["code"].get<int>();
        std::cout << "状态: " << (statusCode == 1 ? "正常" : "被封禁") << std::endl;
        
        if(statusCode == 0 && result.contains("status")) {
            std::cout << "封禁原因: " << result["status"].get<std::string>() << std::endl;
        }
    } else if(result.contains("error")) {
        std::cout << "检测失败: " << result["error"].get<std::string>() << std::endl;
    }
    
    // 输出JSON格式结果
    std::cout << "\n完整API响应:" << std::endl;
    std::cout << result.dump(4) << std::endl;
    
    return 0;
}

使用方法

  1. 确保已安装以下依赖库:

    • libcurl (用于HTTP请求)
    • nlohmann/json (用于JSON解析)
  2. 在Linux系统上可以使用以下命令安装依赖:

    sudo apt-get install libcurl4-openssl-dev
  3. 编译程序:

    g++ -std=c++11 wechat_miniprogram_check.cpp -o wechat_miniprogram_check -lcurl
  4. 运行程序:

    ./wechat_miniprogram_check
  5. 根据提示输入要检测的小程序AppID(如:wx81894c6dbb81c2e2)

  6. 程序会返回检测结果,格式如下:

    {
        "code": 0,
        "appid": "wx81894c6dbb81c2e2",
        "status": "已被封禁,封禁原因:存在绕开、规避或对抗平台审核监管的行为"
    }

返回结果说明

  • code:
    • 1表示小程序正常
    • 0表示小程序被封禁
  • appid: 被检测的小程序ID
  • status: 封禁状态的详细描述(当code为0时存在)

注意事项

  1. 本代码适用于2025年9月最新版本的API接口
  2. 程序设置了10秒超时,可以根据需要调整
  3. 支持用户交互式输入要检测的小程序AppID
  4. 封禁原因可能包含多种情况,程序会完整显示API返回的封禁信息
  5. 在生产环境中使用时,建议添加更多的错误处理逻辑
  6. 如需批量检测多个小程序,可以修改程序为循环检测模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值