虽说4.0,但本章提供3.5,4.0版本资源。网传最火3.7,未测试
简介
采用 ThinkPHP 6.0 + EasyWebAdmin
支持自定义判断规则(默认提供域名 +QQ+ 机器码规则)
支持在线充值,用户 Api 授权,自助更换授权,卡密兑换(权限,代理,余额,积分),云黑查询,授权代理查询,插件化模板(可自定义上传),余额购买授权,卡密,权限等,快速登录,支付认证,版本管理,自定义用户等级权限模板,自定义授权价格模板,插件管理(自定义安装,更新插件),支持用户扫码绑定授权或认证
截图



源码BUG
4.0唯一美中不足的是后台系统配置无效保存
3.7部分代码
<?php
include("./SF/common.php");
$act=isset($_GET['act'])?daddslashes($_GET['act']):null;
@header('Content-Type: application/json; charset=UTF-8');
switch($act) {
case 'auth1': //网站查询
if ($conf["is_zbcx"] == 0)exit('{"code":-1,"msg":"该站点已关闭正版查询功能!"}');
$url=daddslashes($_POST['text']);
$row=$DB->get_row("SELECT * FROM SF_site where url='{$url}'");
if($row) {
exit('{"code":0,"msg":"查询授权:'.$url.'正版授权!"}');
} else {
exit('{"code":-1,"msg":"查询授权:'.$url.'未授权!"}');
}
break;
case 'auth': //网站查询
if ($conf["is_zbcx"] == 0)exit('{"code":-1,"msg":"该站点已关闭正版查询功能!"}');
$url=daddslashes($_POST['data']);
if(empty($url))exit('{"code":-1,"msg":"请输入需要查询的内容!"}');
$cxtype1=$DB->count("SELECT count(*) FROM SF_procedure WHERE type='1'");
$cxtype2=$DB->count("SELECT count(*) FROM SF_procedure WHERE type='2'");
if($cxtype2==0 && $cxtype1!=0) {
if(!isValidDomain($Punycode->encode($url)))exit('{"code":-1,"msg":"请输入正确的域名!"}');
} elseif($cxtype1==0 && $cxtype2!=0) {
if (strlen($url) > 12|| !is_numeric($url) || strlen($url) < 5 || !preg_match('/^[0-9]+$/',$url))exit('{"code":-1,"msg":"请输入正确的QQ号!"}');
}
if($cxtype1==0 && $cxtype2!=0) {
$sql="SELECT * FROM `SF_site` where `url`='{$url}'";
$row=$DB->get_row($sql);
$rows=$DB->query($sql);
} else {
$sql="SELECT * FROM `SF_site` where `url`='{$url}'";
$row=$DB->get_row($sql);
if(!$row) {
$sql="SELECT * FROM `SF_site` where `url`='*.".get_host($url)."'";
$row=$DB->get_row($sql);
}
$rows=$DB->query($sql);
}
$SFcxnum=0;
$SFcx='';
if($row) {
foreach ($rows as $auth) {
$SFcxnum++;
$cxname=$DB->get_row("SELECT * FROM SF_procedure where id='".$auth['SFid']."' limit 1");
if($auth['active']==1) {
$active='<span class="layui-btn layui-btn-xs layui-btn-SF-green">正常</span>';
} else {
$active='<span class="layui-btn layui-btn-xs layui-btn-danger">封禁</span>';
}
if($auth['endtime']=='0000-00-00 00:00:00') {
$endtime='永久授权';
} elseif($auth['endtime']<$date) {
$endtime='已到期';
} else {
$endtime=$auth['endtime'];
}
$SFcx.='<tr><td>'.$cxname['name'].'</td><td>'.$active.'</td><td>'.$endtime.'<td></tr>';
}
$data='查询授权:'.$url.'<br><br><div style="overflow-x: auto;overflow-y: hidden;"><table class="layui-table" style="white-space: nowrap;" lay-skin="line"><thead><tr><td>程序名称</td><td>状态</td><td>到期时间</td></tr></thead><tbody>'.$SFcx.'</tbody></table></div>';
$result=array("code"=>0,"msg"=>$data);
exit(json_encode($result));
} else {
exit('{"code":-1,"msg":"查询授权:'.$url.'未授权!"}');
}
break;
case 'download_xinxi':
$qq=daddslashes($_POST['qq']);
$url=daddslashes($_POST['url']);
$authcode=daddslashes($_POST['authcode']);
$cx=daddslashes($_POST['cx']);
if(!$cx)exit('{"code":-1,"msg":"请选择程序!"}');
if(!$qq)exit('{"code":-1,"msg":"请输入你要绑定的主人QQ!"}');
if(!$url)exit('{"code":-1,"msg":"请输入你要授权的机器人QQ!"}');
if(!$authcode)exit('{"code":-1,"msg":"请输入授权码!"}');
$cxname = $DB->get_row("SELECT * FROM SF_procedure WHERE id='$cx' limit 1");
if(!$cxname)exit('{"code":-1,"msg":"平台不存在此程序!"}');
if($cxname['active']!=1)exit('{"code":-1,"msg":"程序“'.$cxname['name'].'”正在维护中!"}');
$cxtyperow=$DB->get_row("SELECT * FROM SF_procedure_type WHERE id='".$cxname['type']."' and active=1 limit 1");
if(!$cxtyperow)exit('{"code":-1,"msg":"该程序类型不存在或被封禁!"}');
eval(str_replace("[auth]",$url,$cxtyperow['type']));
$row = $DB->get_row("SELECT * FROM SF_site WHERE SFid='$cx' and url='$url' limit 1");
if(!$row)exit('{"code":-1,"msg":"程序“'.$cxname['name'].'”未查询到有“'.$url.'”的授权!"}');
if($row['active']!=1)exit('{"code":-1,"msg":"授权“'.$url.'”已封禁,请解封后在来获取!"}');
if($row['endtime']!='0000-00-00 00:00:00'){
if($row['endtime']<=$date)exit('{"code":-1,"msg":"授权“'.$url.'”已到期,请续费后在来获取!"}');
}
if($row['authcode']!=$authcode)exit('{"code":-1,"msg":"授权码不正确!"}');
exit('{"code":0,"msg":"验证成功!","authcode":"'.$authcode.'","time":"'.time().'","cxname":"'.$cxname['name'].'","cx":"'.$cx.'","qq":"'.$qq.'","url":"'.$url.'"}');
break;
case 'pay': //网站查询
if ($conf["is_zfcx"] == 0)exit('{"code":-1,"msg":"该站点已关闭认证查询功能!"}');
$url=daddslashes($_POST['data']);
$row=$DB->get_row("SELECT * FROM api_site where url='{$url}'");
if($row) {
exit('{"code":0,"msg":"查询域名:'.$url.'<br>该易支付已认证!"}');
} else {
exit('{"code":-1,"msg":"查询域名:'.$url.'<br>该易支付未认证!"}');
}
break;
case 'kmsq': //卡密
if ($conf["is_kmbuy"] == 0)exit('{"code":-1,"msg":"该站点已关闭卡密兑换功能!"}');
$km = daddslashes($_POST['km']);
$qq = daddslashes($_POST['qq']);
$url = daddslashes($_POST['url']);
$user = daddslashes($_POST['user']);
$pwd = daddslashes($_POST['pwd']);
require_once ROOT.'class.geetestlib.php';
$GtSdk = new GeetestLib($conf['captcha_id'], $conf['captcha_key']);
$cookiesid = $_COOKIE['mysid'];
$data = array(
'user_id' => $cookiesid,
'client_type' => "web",
'ip_address' => real_ip()
);
if($conf['captcha_open']==1) {
if(!$_POST['geetest_challenge'] && !$_POST['geetest_validate'] && !$_POST['geetest_seccode'])exit('{"code":2,"msg":"请先完成验证!"}');
if ($_SESSION['gtserver'] == 1) {
//服务器正常
if(!$GtSdk->success_validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode'], $data))exit('{"code":-1,"msg":"验证失败,请重新验证!"}');
} else {
//服务器宕机,走failback模式
if(!$GtSdk->fail_validate($_POST['geetest_challenge'],$_POST['geetest_validate'],$_POST['geetest_seccode']))exit('{"code":-1,"msg":"验证失败,请重新验证!"}');
}
}
$kmlist=$DB->get_row("SELECT * FROM SF_kms WHERE km='$km' limit 1");
if(!$kmlist) {
exit('{"code":-1,"msg":"该授权卡密不存在!"}');
} elseif($kmlist['stata']) {
exit('{"code":-1,"msg":"该授权卡密已使用!"}');
} else {
if (strlen($qq) > 12|| !is_numeric($qq) || strlen($qq) < 5 || !preg_match('/^[0-9]+$/',$qq)) {
exit('{"code":-1,"msg":"请输入正确的QQ号!"}');
}
$cxrow=$DB->get_row("SELECT * FROM SF_procedure where id='".$kmlist['SFid']."' limit 1");
$cxtyperow=$DB->get_row("SELECT * FROM SF_procedure_type where id='".$cxrow['type']."' limit 1");
if($kmlist['type']==1) {
//授权域名
eval(str_replace("[auth]",$url,$cxtyperow['type']));
$urlrow=$DB->get_row("SELECT * FROM SF_site WHERE url='{$url}' and SFid='".$cxrow['id']."' limit 1");
if($urlrow){
if($urlrow['endtime']=='0000-00-00 00:00:00')exit('{"code":-1,"msg":"该授权期限已为永久!"}');
if($kmlist['endtime_type']=='0') {
$endtime='0000-00-00 00:00:00';
$dqlx='永久授权';
} elseif($kmlist['endtime_type']=='hour') {
$endtime=date("Y-m-d H:i:s",strtotime($urlrow['endtime']." +1 hour"));
$dqlx='时卡';
} elseif($kmlist['endtime_type']=='day') {
$endtime=date("Y-m-d H:i:s",strtotime($urlrow['endtime']." +1 day"));
$dqlx='天卡';
} elseif($kmlist['endtime_type']=='week') {
$endtime=date("Y-m-d H:i:s",strtotime($urlrow['endtime']." +7 day"));
$dqlx='周卡';
} elseif($kmlist['endtime_type']=='month') {
$endtime=date("Y-m-d H:i:s",strtotime($urlrow['endtime']." +1 month"));
$dqlx='月卡';
} elseif($kmlist['endtime_type']=='year') {
$endtime=date("Y-m-d H:i:s",strtotime($urlrow['endtime']." +1 year"));
$dqlx='年卡';
} elseif($kmlist['endtime_type']=='date') {
$arr=explode(",",$kmlist['other']);
$endtime6=date("Y-m-d H:i:s",strtotime($urlrow['endtime']." +".$arr[5]." second"));
$endtime5=date("Y-m-d H:i:s",strtotime("$endtime6 +".$arr[4]." minute"));
$endtime4=date("Y-m-d H:i:s",strtotime("$endtime5 +".$arr[3]." hour"));
$endtime3=date("Y-m-d H:i:s",strtotime("$endtime4 +".$arr[2]." day"));
$endtime2=date("Y-m-d H:i:s",strtotime("$endtime3 +".$arr[1]." month"));
$endtime=date("Y-m-d H:i:s",strtotime("$endtime2 +".$arr[0]." year"));
$dqlx=$endtime;
} else {
exit('{"code":-1,"msg":"此卡密有问题请联系管理员更换!"}');
}
$sql="update SF_site set endtime='{}',com='{$qq}',usetime='$date' where kid='{$kmlist['kid']}'";
if($DB->query($sql)) {
$DB -> query("update SF_kms set stata=1,com='{$qq}',usetime='$date' where kid='{$kmlist['kid']}'");
$DB->query("insert into `SF_log` (`uid`,`type`,`date`,`city`,`data`) values ('游客','卡密兑换','".$date."','".$city."','兑换类型:兑换授权|QQ:".$qq."|授权内容:".$url."|程序:".$cxrow['name']."|兑换时间:".$date."|到期时间:".$dqlx."')");
exit('{"code":0,"msg":"兑换成功!"}');
} else {
exit('{"code":-1,"msg":"兑换失败!'.$DB->error().'"}');
}
}else{
if($kmlist['endtime_type']=='0') {
$endtime='0000-00-00 00:00:00';
$dqlx='永久授权';
} elseif($kmlist['endtime_type']=='hour') {
$endtime=date("Y-m-d H:i:s",strtotime(" +1 hour"));
$dqlx='时卡';
} elseif($kmlist['endtime_type']=='day') {
$endtime=date("Y-m-d H:i:s",strtotime(" +1 day"));
$dqlx='天卡';
} elseif($kmlist['endtime_type']=='week') {
$endtime=date("Y-m-d H:i:s",strtotime(" +7 day"));
$dqlx='周卡';
} elseif($kmlist['endtime_type']=='month') {
$endtime=date("Y-m-d H:i:s",strtotime(" +1 month"));
$dqlx='月卡';
} elseif($kmlist['endtime_type']=='year') {
$endtime=date("Y-m-d H:i:s",strtotime(" +1 year"));
$dqlx='年卡';
} elseif($kmlist['endtime_type']=='date') {
$arr=explode(",",$kmlist['other']);
$endtime6=date("Y-m-d H:i:s",strtotime(" +".$arr[5]." second"));
$endtime5=date("Y-m-d H:i:s",strtotime("$endtime6 +".$arr[4]." minute"));
$endtime4=date("Y-m-d H:i:s",strtotime("$endtime5 +".$arr[3]." hour"));
$endtime3=date("Y-m-d H:i:s",strtotime("$endtime4 +".$arr[2]." day"));
$endtime2=date("Y-m-d H:i:s",strtotime("$endtime3 +".$arr[1]." month"));
$endtime=date("Y-m-d H:i:s",strtotime("$endtime2 +".$arr[0]." year"));
$dqlx=$endtime;
} else {
exit('{"code":-1,"msg":"此卡密有问题请联系管理员更换!"}');
}
$row=$DB->get_row("SELECT * FROM SF_site WHERE uid='{$qq}' limit 1");
if($row!='') {
//判断是否存在该QQ
$sql="insert into `SF_site` (`uid`,`url`,`authcode`,`sign`,`SFid`,`date`,`active`,`endtime`,`daili`) values ('".$qq."','".trim($url)."','".$row['authcode']."','".$row['sign']."','".$kmlist['SFid']."','".$date."','1','".$endtime."','".$kmlist['userid']."')";
if($DB->query($sql)) {
$DB -> query("update SF_kms set stata=1,com='{$qq}',usetime='$date' where kid='{$kmlist['kid']}'");
$DB->query("insert into `SF_log` (`uid`,`type`,`date`,`city`,`data`) values ('游客','卡密兑换','".$date."','".$city."','兑换类型:兑换授权|QQ:".$qq."|授权内容:".$url."|程序:".$cxrow['name']."|兑换时间:".$date."|到期时间:".$dqlx."')");
exit('{"code":0,"msg":"兑换成功!"}');
} else {
exit('{"code":-1,"msg":"兑换失败!'.$DB->error().'"}');
}
} else {
$row1=$DB->get_row("SELECT * FROM SF_site WHERE 1 order by sign desc limit 1");
$sign=$row1['sign']+1;
$authcode=md5(random(32).$qq);
$sql="insert into `SF_site` (`uid`,`url`,`authcode`,`sign`,`SFid`,`date`,`active`,`endtime`,`daili`) values ('".$qq."','".trim($url)."','".$authcode."','".$sign."','".$kmlist['SFid']."','".$date."','1','".$endtime."','".$kmlist['userid']."')";
if($DB->query($sql)) {
$DB -> query("update SF_kms set stata=1,com='{$qq}',usetime='$date' where kid='{$kmlist['kid']}'");
$DB->query("insert into `SF_log` (`uid`,`type`,`date`,`city`,`data`) values ('站长','添加授权','".$date."','".$city."','QQ:".$qq."|授权内容:".$url."|程序:".$cxrow['name']."|兑换时间:".$date."|到期时间:".$dqlx."')");
exit('{"code":0,"msg":"兑换成功!"}');
} else {
exit('{"code":-1,"msg":"兑换失败!'.$DB->error().'"}');
}
}
}
} elseif($kmlist['type']==2) {
//添加用户
if($user=='' || $pwd=='' || $qq=='')exit('{"code":-1,"msg":"请先填写用户名,密码和QQ!"}');
$jcuser=$DB->get_row("SELECT * FROM SF_user WHERE user='{$user}' limit 1");
if($jcuser)exit('{"code":-1,"msg":"该用户名已存在!"}');
$cx=$kmlist['SFid'];
$type=$kmlist['user_type'];
$active=$kmlist['user_active'];
if($cx=="")exit('{"code":-1,"msg":"卡密已损坏,请联系上级更换!"}');
$cxrow = $DB->get_row("SELECT * FROM SF_procedure WHERE id='{$cx}' limit 1");
if (!$cxrow) exit('{"code":-1,"msg":"平台不存在该程序!"}');
if ($cxrow['active'] != 1) exit('{"code":-1,"msg":"该程序正在维护中!"}');
$DB->query("insert into `SF_user` (`user`,`pass`,`rmb`,`jf`,`qq`,`".$cxrow['name']."_type`,`".$cxrow['name']."_active`,`".$cxrow['name']."_userid`) values ('".$user."','".$pwd."','".$cxrow['addsongrmb']."','0','".$qq."','".$type."','".$active."','".$kmlist['userid']."')");
if($DB -> query("update SF_kms set stata=1,com='{$user}',usetime='$date' where kid='{$kmlist['kid']}'")){
$DB->query("insert into `SF_log` (`uid`,`type`,`date`,`city`,`data`) values ('游客','卡密兑换','".$date."','".$city."','兑换用户|账号:".$user."|密码:******|程序:".$chengxu."')");
$session=md5($user.$pass.$password_hash);
$token=authcode("{$user}\t{$session}", 'ENCODE', SYS_KEY);
setcookie("SF_token2", $token, time() + 60480 , '/');
@header('Content-Type: text/html; charset=UTF-8');
$DB->query("insert into `SF_log` (`uid`,`type`,`date`,`city`,`data`) values ('".$row['uid']."','登录平台','".$date."','".$city."','城市:".$city."|IP:".$clientip."')");
exit('{"code":0,"msg":"兑换代理成功,赶快去登录后台吧!"}');
}else{
$DB->query("DELETE FROM SF_user WHERE user='$user'");
exit('{"code":-1,"msg":"兑换代理失败,请联系上级更换!"}');
}
} elseif($kmlist['type']==3) {
//兑换其他
if($qq=='')exit('{"code":-1,"msg":"请先填写QQ!"}');
$data=$qq;
$orderid=date("YmdHis").rand(111,999);
$sql="insert into `SF_orders` (`trade_no`,`value`,`qq`,`input`,`goodname`,`money`,`addtime`,`status`) values ('".$orderid."','1','".$qq."','".$data."','卡密兑换-".$kmlist['other']."','".$km."','".$date."','0')";
if($DB->query($sql)) {
$DB -> query("update SF_kms set stata=1,com='{$qq}',usetime='$date' where kid='{$kmlist['kid']}'");
exit('{"code":0,"msg":"兑换成功!"}');
} else {
exit('{"code":-1,"msg":"兑换失败'.$DB->error().'!"}');
}
} else {
exit('{"code":-1,"msg":"兑换失败,兑换类型错误!"}');
}
}
break;
case 'gh':
if ($conf["is_gh"] == 0)exit('{"code":-1,"msg":"该站点已关闭更换授权功能!"}');
$qq = daddslashes($_POST['qq']);
$url = daddslashes($_POST['url']);
$urls = daddslashes($_POST['urls']);
if($qq==NULL or $url==NULL or $urls==NULL)exit('{"code":-1,"msg":"请确保各项不为空!"}');
$row=$DB->get_row("select * from SF_site where url = '$url'");
if(empty($row)) {
$url='*'.get_host($url);
$row=$DB->get_row("select * from SF_site where url = '$url'");
}
if(empty($row))exit('{"code":-1,"msg":"旧域名不存在!"}');
if(!isValidDomain($Punycode->encode($urls))) {
exit('{"code":-1,"msg":"请输入正确的域名!"}');
} elseif($url==$urls) {
exit('{"code":-1,"msg":"新域名和旧域名不能相同!"}');
} elseif($row['uid'] != $qq ) {
exit('{"code":-1,"msg":"授权QQ不存在!"}');
} elseif($row['number'] >= $conf['gh_number']) {
exit('{"code":-1,"msg":"免费更换次数已达上限!"}');
} else {
setcookie("url","$url");
setcookie("urls","$urls");
exit('{"code":1,"msg":"保存成功!"}');
}
break;
case 'ghsq':
if ($conf["is_gh"] == 0)exit('{"code":-1,"msg":"该站点已关闭更换授权功能!"}');
$qq = daddslashes($_POST['qq']);
$url = daddslashes($_POST['url']);
$urls = daddslashes($_POST['urls']);
$get_token=isset($_SESSION['get_token'])?$_SESSION['get_token']:exit;
if(!$get_token || !$qq) {
exit();
}
$tokenid=base64_encode(md5($qq.md5($qq.'*$$*').'23132'.md5(date("Y-m-d-H"))));
if($tokenid!=$get_token)exit('{"code":-1,"msg":"验证信息已过期,请返回重新扫码验证!"}');
//$sqkey = daddslashes($_POST['sqkey']);
$row=$DB->get_row("select * from SF_site where url = '$url'");
if(empty($row))exit('{"code":-1,"msg":"旧域名不存在!"}');
if($qq==NULL or $url==NULL or $urls==NULL ) {
exit('{"code":-1,"msg":"请确保各项不为空!"}');
} elseif(!isValidDomain($Punycode->encode($urls))) {
exit('{"code":-1,"msg":"请输入正确的域名!"}');
} elseif($url==$urls) {
exit('{"code":-1,"msg":"新域名和旧域名不能相同!"}');
} elseif($row['uid'] != $qq ) {
exit('{"code":-1,"msg":"授权QQ不存在!"}');
} elseif($row['number'] >= $conf['gh_number']) {
exit('{"code":-1,"msg":"免费更换次数已达上限!"}');
} else {
$number=$row['number']+1;
$sql="update `SF_site` set `url` ='{$urls}',`number` ='{$number}' where `id`='{$row['id']}'";
if($DB->query($sql)) {
$DB->query("insert into `SF_log` (`uid`,`type`,`date`,`city`,`data`) values ('游客','更换授权','".$date."','".$city."','QQ号:".$qq."|旧域名:".$url."|新域名:".$urls."')");
exit('{"code":1,"msg":"更换授权成功!"}');
} else {
exit('{"code":-1,"msg":"更换授权失败!"}');
}
unset($_SESSION['get_token']);
}
break;
case 'dlcx': //代理查询
if ($conf["is_dlcx"] == 0)exit('{"code":-1,"msg":"该站点已关闭代理查询功能!"}');
$qq = daddslashes($_POST['data']);
if(strlen($qq) < 5 || strlen($qq) > 10 || !is_numeric($qq)) {
exit('{"code":-1,"msg":"请输入正确的QQ号!"}');
}
$row=$DB->get_row("SELECT * FROM SF_user WHERE qq='{$qq}' limit 1");
$rows=$DB->get_row("SELECT * FROM SF_admin WHERE qq='{$qq}' limit 1");
if($rows['qq']==$qq) {
exit('{"code":0,"msg":"查询QQ:'.$qq.'<br>该QQ为平台站长,放心交易!"}');
} elseif(!empty($row)) {
$SFcxnum=0;
$rs2=$DB->query("SELECT * FROM SF_procedure where active=1 order by id asc");
while ($res=$DB->fetch($rs2)) {
$cx=$DB->get_row("SELECT * FROM SF_user where ".$res['name']."_active=1 and ".$res['name']."_date!='0000-00-00 00:00:00' and ".$res['name']."_type!='0' limit 1");
if($cx) {
$SFcxnum++;
}
}
if($SFcxnum==0)exit('{"code":-1,"msg":"查询QQ:'.$qq.'<br>该QQ不是授权商,禁止交易!"}');
$SFcx='';
$rs=$DB->query("SELECT * FROM SF_procedure where active=1 order by id asc");
$i=0;
while ($res=$DB->fetch($rs)) {
$cx=$DB->get_row("SELECT * FROM SF_user where ".$res['name']."_active=1 and ".$res['name']."_date!='0000-00-00 00:00:00' and ".$res['name']."_type!='0' limit 1");
$i++;
if($cx) {
if($cx[''.$res['name'].'_type']==1) {
$power='代理商';
} elseif($cx[''.$res['name'].'_type']==2) {
$power='超级管理员';
} elseif($cx[''.$res['name'].'_type']==3) {
$power='合作商';
}
$SFcx.=$res['name'].':'.$power.'<br>';
}
}
exit('{"code":0,"msg":"查询QQ:'.$qq.'<br><br>'.$SFcx.'"}');
} else {
exit('{"code":-1,"msg":"查询QQ:'.$qq.'<br>该QQ不是授权商,禁止交易!"}');
}
break;
case 'onlinebuy': //自助授权
if ($conf["is_onlinebuy"] == 0)exit('{"code":-1,"msg":"该站点已关闭自助授权功能!"}');
$url=daddslashes($_POST['url']);
$qq=daddslashes($_POST['qq']);
$cx=daddslashes($_POST['chk_value']);
$type=daddslashes($_POST['type']);
if($cx=="")exit('{"code":-1,"msg":"未选择需要授权的程序!"}');
$cxrow=$DB->get_row("SELECT * FROM SF_procedure where id='".$cx."' limit 1");
if(!$cxrow)exit('{"code":-1,"msg":"平台不存在该程序!"}');
if($cxrow['is_onlinebuy']==0){
$result=array("code"=>-1,"msg"=>"程序:<font color=red>“ ".$cxrow['name']." ”</font>已关闭自助授权功能!");
exit(json_encode($result));
}
$cxtyperow=$DB->get_row("SELECT * FROM SF_procedure_type where id='".$cxrow['type']."' limit 1");
if($cxrow['type']==2){
$is_fym=false;
$ym_type='单域名';
}else{
$preg = "/^\*\./";
if(preg_match($preg,$url)) {
$is_fym=true;
$ym_type='泛域名';
} else {
$is_fym=false;
$ym_type='单域名';
}
}
$row=$DB->get_row("select * from SF_site where url='$url' and SFid='$cx'");
eval(str_replace("[auth]",$url,$cxtyperow['type']));
if (strlen($qq) > 12) {
$result=array("code"=>-1,"msg"=>"请输入正确的绑定QQ号!");
exit(json_encode($result));
} elseif (!is_numeric($qq)) {
$result=array("code"=>-1,"msg"=>"请输入正确的绑定QQ号!");
exit(json_encode($result));
} elseif(strlen($qq) < 5 || !preg_match('/^[0-9]+$/',$qq)) {
$result=array("code"=>-1,"msg"=>"请输入正确的绑定QQ号!");
exit(json_encode($result));
} elseif($row) {
$result=array("code"=>-1,"msg"=>"平台已经存在该授权!");
exit(json_encode($result));
} elseif(in_array($clientip,explode("|",$conf['regiphmd']))) {
$result=array("code"=>-1,"msg"=>"你的IP已被拉黑,无法授权!");
exit(json_encode($result));
}
if($type=='0') {
if($is_fym == true) {
$cx_price+=$cxrow['addallrmb'];
} else {
$cx_price+=$cxrow['addrmb'];
}
$endtime='0000-00-00 00:00:00';
$dqlx='永久授权';
} elseif($type=='hour') {
if($is_fym == true) {
$cx_price+=$cxrow['hour_addallrmb'];
} else {
$cx_price+=$cxrow['hour_addrmb'];
}
$endtime=date("Y-m-d H:i:s",strtotime(" +1 hour"));
$dqlx='时卡';
} elseif($type=='day') {
if($is_fym == true) {
$cx_price+=$cxrow['day_addallrmb'];
} else {
$cx_price+=$cxrow['day_addrmb'];
}
$endtime=date("Y-m-d H:i:s",strtotime(" +1 day"));
$dqlx='天卡';
} elseif($type=='week') {
if($is_fym == true) {
$cx_price+=$cxrow['week_addallrmb'];
} else {
$cx_price+=$cxrow['week_addrmb'];
}
$endtime=date("Y-m-d H:i:s",strtotime(" +7 day"));
$dqlx='周卡';
} elseif($type=='month') {
if($is_fym == true) {
$cx_price+=$cxrow['month_addallrmb'];
} else {
$cx_price+=$cxrow['month_addrmb'];
}
$endtime=date("Y-m-d H:i:s",strtotime(" +1 month"));
$dqlx='月卡';
} elseif($type=='year') {
if($is_fym == true) {
$cx_price+=$cxrow['year_addallrmb'];
} else {
$cx_price+=$cxrow['year_addrmb'];
}
$endtime=date("Y-m-d H:i:s",strtotime(" +1 year"));
$dqlx='年卡';
} else {
$result=array("code"=>-1,"msg"=>"授权类型错误!");
exit(json_encode($result));
}
$data=$url.'|'.$qq.'|'.$cx.'|'.$type;
$orderid=date("YmdHis").rand(111,999);
$sql="insert into `SF_pay` (`trade_no`,`othertype`,`input`,`name`,`money`,`addtime`,`status`) values ('".$orderid."','onlinebuy','".$data."','自助授权','".$cx_price."','".$date."','0')";
if($DB->query($sql)) {
$result=array("code"=>1,"msg"=>"保存订单成功!","orderid"=>$orderid,"money"=> $cx_price);
exit(json_encode($result));
} else {
$result=array("code"=>-1,"msg"=>"保存订单失败!");
exit(json_encode($result));
}
break;
case 'data_update':
if ($conf["is_apisq"] == 0)exit('{"code":-1,"msg":"该站点已关闭API授权功能!"}');
$token = daddslashes($_POST['token']);
if(empty($conf['apitoken']) || $token != $conf['apitoken']) {
exit('{"code":-1,"msg":"接口TOKEN验证失败!"}');
}
$url = daddslashes($_POST['url']);
$qq = daddslashes($_POST['qq']);
$set = urldecode($_POST['set']);
$sql = "update SF_site set {$set} where url='$url' and qq ='$qq'";
if($DB->query($sql)) {
exit('{"code":1,"msg":"【远程修改授权】"}');
} else {
exit('{"code":-1,"msg":"【远程修改授权失败】"}');
}
break;
case 'qqlogin':
error_reporting(0);
header('Content-type: application/json');
class qq_qrlogin {
public function getqrpic() {
$url='https://ssl.ptlogin2.qq.com/ptqrshow?appid=1006102&e=2&l=M&s=4&d=72&v=4&t=0.5409099'.time().'daid=1&pt_3rd_aid=0';
$arr=$this->get_curl($url,0,0,0,1,0,0,1);
$arr['header'];
preg_match('/qrsig=(.*?);/',$arr['header'],$match);
if($qrsig=$match[1])
exit('{"saveOK":0,"qrsig":"'.$qrsig.'","data":"'.base64_encode($arr['body']).'"}'); else
exit('{"saveOK":1,"msg":"二维码获取失败"}');
}
public function qqlogin() {
global $DB;
$qrsig=empty(daddslashes($_GET['qrsig']))?exit('{"saveOK":-1,"msg":"qrsig不能为空"}'):daddslashes($_GET['qrsig']);
$SFGH=$DB->get_row("SELECT * FROM SF_site WHERE url='".$_GET['url']."' limit 1");
if(!$SFGH) {
exit('ptuiCB("6","'.$uin.'","旧域名不存在!");');
}
//$sig=$this->login_sig();
$url='https://ssl.ptlogin2.qq.com/ptqrlogin?u1=https%3A%2F%2Fid.qq.com%2Findex.html&ptqrtoken='.$this->getqrtoken($qrsig).'&ptredirect=1&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=0-0-'.time().'0000&js_ver=10291&js_type=1&login_sig='.$sig.'&pt_uistyle=40&aid=1006102&daid=1&';
$ret = $this->get_curl($url,0,$url,'qrsig='.$qrsig.'; ',1);
if(preg_match("/ptuiCB\('(.*?)'\)/", $ret, $arr)) {
$r=explode("','",str_replace("', '","','",$arr[1]));
if($r[0]==0) {
preg_match('/uin=(\d+)&/',$ret,$uin);
$uin=$uin[1];
preg_match('/skey=@(.{9});/',$ret,$skey);
preg_match('/superkey=(.*?);/',$ret,$superkey);
$data=$this->get_curl($r[2],0,0,0,1);
if($data) {
preg_match("/p_skey=(.*?);/", $data, $matchs);
$pskey = $matchs[1];
}
if($SFGH['uid']==trim($uin) && $pskey) {
$get_token=base64_encode(md5($uin.md5($uin.'*$$*').'23132'.md5(date("Y-m-d-H"))));
$_SESSION['get_token']=$get_token;
exit('ptuiCB("0","'.$uin.'","0","0","0","0","'.urlencode($r[5]).'");');
} elseif(!$pskey) {
exit('ptuiCB("5","'.$uin.'","获取信息失败!");');
} else
exit('ptuiCB("4","'.$uin.'","QQ验证未通过!");');
} elseif($r[0]==65) {
exit('ptuiCB("1","'.$uin.'","二维码已失效。");');
} elseif($r[0]==66) {
exit('ptuiCB("2","'.$uin.'","二维码未失效。");');
} elseif($r[0]==67) {
exit('ptuiCB("3","'.$uin.'","正在验证二维码。");');
} else {
exit('ptuiCB("6","'.$uin.'","'.str_replace('"','\'',$r[4]).'");');
}
} else {
exit('{"saveOK":6,"msg":"'.$ret.'"}');
}
}
private function getGTK($skey) {
$len = strlen($skey);
$hash = 5381;
for ($i = 0; $i < $len; $i++) {
$hash += ($hash << 5) + ord($skey[$i]);
}
return $hash & 0x7fffffff;
//计算g_tk
}
private function getuin($uin) {
for ($i = 0; $i < strlen($uin); $i++) {
if($uin[$i]=='o'||$uin[$i]=='0')continue; else break;
}
return substr($uin,$i);
}
private function getqrtoken($qrsig) {
$len = strlen($qrsig);
$hash = 0;
for ($i = 0; $i < $len; $i++) {
$hash += (($hash << 5) & 2147483647) + ord($qrsig[$i]) & 2147483647;
$hash &= 2147483647;
}
return $hash & 2147483647;
}
private function get_curl($url,$post=0,$referer=0,$cookie=0,$header=0,$ua=0,$nobaody=0,$split=0) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$httpheader[] = "Accept:*/*";
$httpheader[] = "Accept-Encoding:gzip,deflate,sdch";
$httpheader[] = "Accept-Language:zh-CN,zh;q=0.8";
$httpheader[] = "Connection:close";
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
if($post) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
if($header) {
curl_setopt($ch, CURLOPT_HEADER, TRUE);
}
if($cookie) {
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
}
if($referer) {
curl_setopt($ch, CURLOPT_REFERER, $referer);
}
if($ua) {
curl_setopt($ch, CURLOPT_USERAGENT,$ua);
} else {
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36');
}
if($nobaody) {
curl_setopt($ch, CURLOPT_NOBODY,1);
}
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$ret = curl_exec($ch);
if ($split) {
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($ret, 0, $headerSize);
$body = substr($ret, $headerSize);
$ret=array();
$ret['header']=$header;
$ret['body']=$body;
}
curl_close($ch);
return $ret;
}
}
$login=new qq_qrlogin();
if($_GET['do']=='qqlogin') {
$login->qqlogin();
}
if($_GET['do']=='getqrpic') {
$login->getqrpic();
}
break;
case 'SF_music':
$limit = $conf['music_num'];
if($conf['site_background_music']==2) {
$sort='热歌榜';
} elseif($conf['site_background_music']==3) {
$sort='新歌榜';
} elseif($conf['site_background_music']==4) {
$sort='飙升榜';
} elseif($conf['site_background_music']==5) {
$sort='抖音榜';
} elseif($conf['site_background_music']==6) {
$sort='电音榜';
}
$data = array();
for ($i = 0; $i < $limit; $i++) {
$query = curl_get('https://api.uomg.com/api/rand.music?sort='.$sort.'&format=json');
$query = json_decode($query, true);
if ($query['code'] != 1) {
continue;
}
$data[] = array("title"=>$query['data']['name'],"url"=>$query['data']['url'],"pic"=>$query['data']['picurl'],"author"=>$query['data']['artistsname']);
}
$result = array(
"Code" => "OK",
"Body" => $data
);
exit(json_encode($result));
break;
case 'unset_session':
unset($_SESSION['get_token']);
$qrsig='SF授权系统';
exit('{"code":1,"msg":"注销成功!"}');
break;
default:
exit('{"code":-4,"msg":"SF提示您:No Act"}');
break;
}

评论0