本篇文章给大家带来的内容是关于微信已停止访问该网页的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
由于微信限制比较严格,域名一不小心就被判定是诱导分享的。所以,公司内部决定调研一套稳定、快速、正确率高的微信域名拦截检测查询接口。
开发组尝试谷歌搜索了一段时间,发现很少把源码及原理分享出来的。后来我们摸索了几天,终于解决这个问题。
源码
源码开源在 GitHub,有兴趣的可以了解下。
地址:
微信域名检测源码 - gt9000k
原理
使用 Wireshark 抓包获取微信的域名拦截查询接口。
域名有如下几种状态:
域名能正常访问(未被微信拦截)
域名被微信拦截
非微信官方网页,继续访问将转换成手机预览模式(在公众号后台把域名添加到业务域名一般能解决这个问题)据用户投诉及腾讯安全网址安全中心检测,该网页包含恶意欺诈内容,为维护绿色上网环境,已停止访问网页包含诱导分享、关注等诱导行为内容,被多人投诉,为维护绿色上网环境,已停止访问
Demo
PHP 版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php
$apiToken = "********************************" ;
$reqUrl = "www.qq.com" ;
$url = sprintf( "https://wx.horocn.com/api/v1/wxUrlCheck?api_token=%s&req_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'] == 0) {
printf( "测试地址(%s)的状态为:%s\n" , $reqUrl , $responseArr ['data']['status']);
} else {
printf( "接口异常:%s\n" , var_export( $responseArr , true));
}
|
Python 版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # -*- coding: utf-8 -*-
import json, urllib
from urllib import urlencode
def main():
# 您的 API Token,在用户中心可查询到
apiToken = "*********************"
url = "https://wx.horocn.com/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()
|
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~