var ajaxPost = function(url, parameter, callback, dataType) {
if(!dataType) dataType='json';
$.ajax({
type: "POST",
url: url,
dataType: dataType,
json: "callback",
data: parameter,
success: function(data) {
if (callback == null) {
return;
}
callback(data);
},
error: function(error) {
alert('创建连接失败');
}
});
}
var captcha_frame;
var comm_data = {
cookie:'',
sid:'',
vcode:'',
pt_verifysession:'',
cap_cd:'',
captcha: {
vc:'',
sess:'',
cdata:'',
websig:'',
},
sms: {
issend:false,
ticket:'',
}
}
function trim(str){ //去掉头尾空格
return str.replace(/(^\s*)|(\s*$)/g, "");
}
function invokeSettime(obj){
var countdown=60;
settime(obj);
function settime(obj) {
if (countdown == 0) {
$(obj).attr("data-lock", "false");
$(obj).text("获取验证码");
countdown = 60;
return;
} else {
$(obj).attr("data-lock", "true");
$(obj).attr("disabled",true);
$(obj).text("重发(" + countdown + ")");
countdown--;
}
setTimeout(function() {
settime(obj) }
,1000)
}
}
function send_sms_code(){
var uin=trim($('#uin').val());
var getvcurl="login.php?do=smscode&r="+Math.random(1);
var param = {uin: uin, sms_ticket: comm_data.sms.ticket, cookie: comm_data.cookie};
ajaxPost(getvcurl, param, function(d) {
if(d.saveOK == 0){
new invokeSettime("#sendsms");
alert('发送成功,请注意查收!');
comm_data.sms.issend = true
}else{
alert(d.msg);
}
});
}
function login(uin,pwd){
var isMd5=$("input:radio[name='ismd5']:checked").val() || 0;
var p=getmd5(uin,pwd,comm_data.vcode,isMd5);
var loginurl="login.php?do=qqlogin&r="+Math.random(1);
var param = {uin: uin, pwd: pwd, p: p, vcode: comm_data.vcode, pt_verifysession: comm_data.pt_verifysession, sid: comm_data.sid, cookie: comm_data.cookie};
if($('.smscode').is(":visible")){
if(comm_data.sms.issend == true){
alert('请先发送短信验证码');
return;
}
var sms_code = trim($('#sms_code').val());
if(sms_code==''){
alert('短信验证码不能为空!');
return;
}
Object.assign(param, {sms_code: sms_code, sms_ticket: comm_data.sms.ticket});
}
$('#load').html('正在登录,请稍等...');
ajaxPost(loginurl, param, function(d) {
if(d.saveOK ==0){
$('#login').hide();
$('.code').hide();
$('#submit').hide();
$('#load').html('
登录成功!'+decodeURIComponent(d.nick)+'
QQ帐号
SKEY
P_skey
superkey
一键登录QQ空间
返回重新获取');
}else if(d.saveOK ==4){
$('#load').html('验证码错误,请重新登录。');
$('#submit').attr('do','submit');
$('#code').val("");
$('.code').hide();
$('.smscode').hide();
$('.qqlogin').show();
$('#login').show();
}else if(d.saveOK ==3){
$('#load').html('您输入的帐号或密码不正确,请重新输入密码!');
$('#submit').attr('do','submit');
$('#pwd').val('');
$('.code').hide();
$('.smscode').hide();
$('.qqlogin').show();
$('#login').show();
}else if(d.saveOK ==10009){
comm_data.sms.ticket = d.sms_ticket;
comm_data.sms.issend = false;
comm_data.cookie = d.cookie;
$('#load').html(d.msg);
$('#submit').attr('do','login');
$('.qqlogin').hide();
$('.smscode').show();
$('#login').show();
}else if(d.saveOK ==10010 || d.saveOK ==10005){
$('#submit').attr('do','login');
$('#load').html(d.msg);
}else if(d.msg =='pwd不能为空'){
$('#load').html('请输入密码!');
$('#submit').attr('do','submit');
$('.code').hide();
$('.smscode').hide();
$('.qqlogin').show();
$('#login').show();
}else{
$('#load').html(d.msg);
$('#submit').attr('do','submit');
}
});
}
function getvc(uin){
$('#load').html('获取验证码,请稍等...');
sess = comm_data.captcha.sess||'0';
var getvcurl="login.php?do=getvc&r="+Math.random(1);
var param = {uin: uin, sid: comm_data.sid, sig: comm_data.captcha.vc, sess: sess, websig: comm_data.captcha.websig};
ajaxPost(getvcurl, param, function(d) {
if(d.saveOK ==0){
$('#load').html('请输入验证码');
comm_data.captcha.vc = d.vc;
comm_data.captcha.sess = d.sess;
comm_data.captcha.cdata = d.cdata;
comm_data.captcha.websig = d.websig;
$('#codeimg').html('
');
$('#submit').attr('do','code');
$('#code').val('');
$('.code').show();
}else if(d.saveOK ==2){
comm_data.captcha.vc = d.vc;
comm_data.captcha.sess = d.sess;
comm_data.captcha.cdata = d.cdata;
comm_data.captcha.websig = d.websig;
dovc(uin,d.ans);
}else{
alert(d.msg);
}
});
}
function dovc(uin,code){
$('#load').html('验证验证码,请稍等...');
var getvcurl="login.php?do=dovc&r="+Math.random(1);
var param = {uin: uin, ans: code, sid: comm_data.sid, cap_cd: comm_data.cap_cd, sig: comm_data.captcha.vc, sess: comm_data.captcha.sess, websig: comm_data.captcha.websig, cdata: comm_data.captcha.cdata};
ajaxPost(getvcurl, param, function(d) {
if(d.rcode == 0){
var pwd=$('#pwd').val();
comm_data.vcode = d.randstr;
comm_data.pt_verifysession = d.sig;
login(uin,pwd);
}else if(d.rcode == 50){
$('#load').html('验证码错误,重新生成验证码,请稍等...');
getvc(uin);
}else if(d.rcode == 12){
comm_data.captcha.sess = d.sess;
$('#load').html('验证失败,请重试。');
}else{
comm_data.captcha.sess = d.sess;
$('#load').html('验证失败,请重试或使用扫码登录。');
//getvc(uin);
}
});
}
function checkvc(){
var uin=trim($('#uin').val()),
pwd=trim($('#pwd').val());
if(uin==''||pwd=='') {
$('#load').html('请输入密码!');
$('.qqlogin').show();
$('#login').show();
return false;
}
$('#load').html('登录中,请稍候...');
var getvcurl="login.php?do=checkvc&r="+Math.random(1);
var param = {uin: uin};
ajaxPost(getvcurl, param, function(d) {
if(d.saveOK ==0){
comm_data.cookie = d.cookie;
comm_data.sid = d.sid;
comm_data.vcode = d.vcode;
comm_data.pt_verifysession = d.pt_verifysession;
login(uin,pwd);
}else if(d.saveOK ==1){
comm_data.cookie = d.cookie;
comm_data.sid = d.sid;
comm_data.cap_cd = d.sig;
//getvc(uin,d.sig,0,d.sid);return;
var jumpurl = 'cap_frame.php?sid='+d.sid+'&aid=549000912&uin='+uin;
captcha_frame = layer.open({
type: 2,
title: '滑块验证码',
shade: 0.6,
area: [$(window).width() > 450 ? '450px' : '100%', $(window).width() > 450 ? '450px' : '380px'],
content: jumpurl,
cancel: function(){
$('#load').hide();
}
});
}else{
alert(d.msg);
$('#load').html('');
}
});
}
window.onqqlogin = function(d){
layer.close(captcha_frame);
comm_data.vcode = d.randstr;
comm_data.pt_verifysession = d.ticket;
var uin=trim($('#uin').val()),
pwd=trim($('#pwd').val());
login(uin,pwd);
$('#uin').attr("data-lock", "false");
}
$(document).ready(function(){
$('#submit').click(function(){
var self=$(this);
var uin=trim($('#uin').val()),
pwd=trim($('#pwd').val());
if(uin==''||pwd=='') {
alert("请确保每项不能为空!");
return false;
}
$('#load').show();
if(self.attr('do') == 'code'){
var vcode=trim($('#code').val()),
vc=$('#codeimg').attr('vc');
dovc(uin,vcode,vc);
}else if(self.attr('do') == 'login'){
login(uin,pwd);
}else{
if (self.attr("data-lock") === "true") return;
else self.attr("data-lock", "true");
checkvc();
self.attr("data-lock", "false");
}
});
});