背景
由于微信限制比较严格,域名一不小心就被判定是诱导分享的。所以,公司内部决定调研一套稳定、快速、正确率高的微信域名拦截检测查询接口。
开发组尝试谷歌搜索了一段时间,发现很少把源码及原理分享出来的。后来我们摸索了几天,终于解决这个问题。
微信域名检测接口来自:
https://wx.godtest.cn/products/wx-domain-check.html
原理
使用 Wireshark 抓包获取微信的域名拦截查询接口。
域名有如下几种状态:
- 域名能正常访问(未被微信拦截)
- 域名被微信拦截
- 非微信官方网页,继续访问将转换成手机预览模式(在公众号后台把域名添加到业务域名一般能解决这个问题)
- 据用户投诉及腾讯安全网址安全中心检测,该网页包含恶意欺诈内容,为维护绿色上网环境,已停止访问
- 网页包含诱导分享、关注等诱导行为内容,被多人投诉,为维护绿色上网环境,已停止访问
Demo
接口调用来源于: http://www.godtest.cn/
PHP 版
Python 版
-
# -*- coding: utf-8 -*- -
import json, urllib -
from urllib import urlencode -
def main(): -
# 您的 API Token,在用户中心可查询到 -
apiToken = "*********************" -
url = "https://wx.godtest.cn/api/v1/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()