方案解析
第一步
你需要有一个微信域名检测接口,自己开发或是购买都可以。
第二步
配置你的程序,用三套域名A、B、C,比如说分享出去的域名是A,这里面A被称作是主域名。
点开后跳到B,跳转之前检测一下B有没有被封,这里面的B就称作是落地域名。通常情况下落地域名B需要准备几十甚至上百个,利用域名检测接口可以轻松实现被封自动切换。
那C是干什么用的呢,微信4月25日以后改变了分享规则,通过JSSDK分享域名必须是公众号后台绑定域名,不能像以前那样想分享什么域名就可以分享什么域名了。
C域名专门用作分享,在B域名下触发分享条件以后跳到C域名,自定义分享出去以后,C域名从程序上设置又跳回到A。
这样A->B->C->A循环跳转
代码示例
$url = “http://api.monkeyapi.com”;
$params = array(
‘appkey’ =>‘appkey’,//您申请的APPKEY
‘url’ =>‘www.monkeyapi.com’,//需要查询的网站
);
p a r a m s t r i n g = h t t p b u i l d q u e r y ( paramstring = http_build_query(paramstring=httpbuildquery(params);
c o n t e n t = C u r l ( content = Curl(content=Curl(url, $paramstring);
r e s u l t = j s o n d e c o d e ( result = json_decode(result=jsondecode(content, true);
if(KaTeX parse error: Expected '}', got 'EOF' at end of input: …{ var_dump(result);
}else {
//请求异常
}
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int i p o s t [ 是否采用POST形式]∗@returnstring∗/functionCurl(ipost [是否采用POST形式] * @return string */ function Curl(ipost[是否采用POST形式]∗@returnstring∗/functionCurl(url, $params = false, $ispost = 0)
{
$httpInfo = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if ($ispost) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_URL, $url); }else { if ($params) { curl_setopt($ch, CURLOPT_URL, $url.'?'.$params); } else { curl_setopt($ch, CURLOPT_URL, $url); } } $response = curl_exec($ch); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $httpInfo = array_merge($httpInfo, curl_getinfo($ch)); curl_close($ch); return $response;
}