由于微信限制比较严格,域名一不小心就被判定是诱导分享的。所以,公司内部决定调研一套稳定、快速、正确率高的微信域名拦截检测查询接口。
创新互联建站为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站设计、做网站, 我们的网页设计师为您提供的解决方案。开发组尝试谷歌搜索了一段时间,发现很少把源码及原理分享出来的。后来我们摸索了几天,终于解决这个问题。
/tupian/20230522/wx-domain-check.html
使用
Wireshark
抓包获取微信的域名拦截查询接口。
域名有如下几种状态:
// 您的 API Token,在用户中心可查询到
$apiToken = "********************************";
// 需要检测的地址或域名
$reqUrl = "www.qq.com";
$url = sprintf("/tupian/20230522/wxUrlCheck $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'] == 0) {
// 接口正确返回
// $responseArr['data']['status'] 的取值范围:ok、blocked
// ok 表示正常、blocked 表示被封
printf("测试地址(%s)的状态为:%s\n", $reqUrl, $responseArr['data']['status']);
} else {
printf("接口异常:%s\n", var_export($responseArr, true));
}
# -*- coding: utf-8 -*-
import json, urllib
from urllib import urlencode
def main():
# 您的 API Token,在用户中心可查询到
apiToken = "*********************"
url = "/tupian/20230522/wxUrlCheck"
params = {
"req_url" : "www.qq.com", #需要检测的地址或域名
"api_token" : apiToken,
}
params = urlencode(params)
f = urllib.urlopen("%s?%s" % (url, params))
content = f.read()
res = json.loads(content)
if res:
code = res["code"]
if code == 0:
#成功请求
print res["result"]
else:
print "%s: %s" % (res["code"],res["msg"])
else:
print "request api error"
if __name__ == '__main__':
main()