? 恒大吧fc


背景

由于微信限制比較嚴格,域名一不小心就被判定是誘導分享的。所以,公司內部決定調研一套穩定、快速、正確率高的微信域名攔截檢測查詢接口。

開發組嘗試谷歌搜索了一段時間,發現很少把源碼及原理分享出來的。后來我們摸索了幾天,終于解決這個問題。


原理

使用Wireshark抓包獲取微信的域名攔截查詢接口。

域名有如下幾種狀態:

  • 域名能正常訪問(未被微信攔截)
  • 域名被微信攔截
    • 非微信官方網頁,繼續訪問將轉換成手機預覽模式(在公眾號后臺把域名添加到業務域名一般能解決這個問題)
    • 據用戶投訴及騰訊安全網址安全中心檢測,該網頁包含惡意欺詐內容,為維護綠色上網環境,已停止訪問
    • 網頁包含誘導分享、關注等誘導行為內容,被多人投訴,為維護綠色上網環境,已停止訪問

Demo(PHP版)

// 您的 API Token
$apiToken = "********************************";
// 需要檢測的地址或域名
$reqUrl = "www.qq.com";
$url = sprintf("http://www.hefdok.live/api/v1/wxUrlCheck?token=%s&url=%s", $apiToken, $reqUrl);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$responseBody = curl_exec($ch);
$responseArr = json_decode($responseBody, true);
if (json_last_error() != JSON_ERROR_NONE) {
    echo "JSON 解析接口結果出錯\n";
    return;
}
if (isset($responseArr['code']) && $responseArr['code'] == '9900') {
    // 域名正常
    return "ok";
}
else if (isset($responseArr['code']) && $responseArr['code'] == '9904') {
    // 域名被封
    return "forbid";
}  else {
    printf("接口異常:%s\n", var_export($responseArr, true));
}




在線咨詢

如有疑問,請聯系

客服QQ

3600621291
360直播无插件