343 lines
12 KiB
JavaScript
343 lines
12 KiB
JavaScript
/**
|
||
* Created by raymondjack on 2018/12/21.
|
||
*/
|
||
|
||
// var pubInfo = {};
|
||
var $toast = $('.toast');
|
||
var $mask = $('.status-mask');
|
||
var lockBol = false;
|
||
let urlPrefix = getUrlPrefix()
|
||
$(function () {
|
||
getInfoFromClient()
|
||
var browser = checkVersion();
|
||
var api = getUrlPrefix();
|
||
var timer = null;
|
||
var env = EnvCheck();
|
||
var urlObj = getQueryString();
|
||
if (env == 'test') {
|
||
var vConsole = new VConsole();
|
||
}
|
||
|
||
getInfoFromClient && getInfoFromClient()
|
||
if (browser.app) {
|
||
if (browser.android) {
|
||
let channel = JSON.parse(pubInfo.deviceInfo).channel
|
||
if (channel.indexOf('toutiao') != -1 || channel.indexOf('kuaishou') != -1) {
|
||
$('.appName').html('piko')
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
var main = {
|
||
init: function () {
|
||
this.getDeviceMsg();
|
||
this.eventRegister();
|
||
var that = this;
|
||
setTimeout(function () {
|
||
that.getData();
|
||
}, 200)
|
||
|
||
},
|
||
getDeviceMsg: function () {
|
||
// if (browser.app) {
|
||
// if (browser.android) {
|
||
// pubInfo.uid = parseInt(window.androidJsObj.getUid());
|
||
// pubInfo.deviceId = window.androidJsObj.getDeviceId();
|
||
// pubInfo.ticket = window.androidJsObj.getTicket();
|
||
// } else {
|
||
// pubInfo.uid = tools.cookieUtils.get("uid");
|
||
// if (!pubInfo.uid) {
|
||
// window.webkit.messageHandlers.getUid.postMessage(null);
|
||
// }
|
||
// window.webkit.messageHandlers.getDeviceId.postMessage(null);
|
||
// window.webkit.messageHandlers.getTicket.postMessage(null);
|
||
// }
|
||
// } else {
|
||
// pubInfo.uid = 922473;
|
||
// pubInfo.deviceId = "204aa0c983384f1e84a3625b4f04bac1";
|
||
// }
|
||
|
||
// setTimeout(function () {
|
||
// $('.deviceId').val(pubInfo.deviceId);
|
||
// },200)
|
||
},
|
||
getData: function () {
|
||
console.log(urlObj, 'urlObj')
|
||
if (urlObj) {
|
||
pubInfo.auth = urlObj.auth
|
||
} else {
|
||
pubInfo.auth = ''
|
||
}
|
||
console.log(pubInfo.auth, 'pubInfo.auth')
|
||
networkRequest({
|
||
type: 'get',
|
||
url: urlPrefix + '/certification/hasCertify',
|
||
data: {
|
||
uid: pubInfo.uid,
|
||
auth: pubInfo.auth,
|
||
ticket: pubInfo.ticket,
|
||
},
|
||
success: function (res) {
|
||
if (res.code == 200) {
|
||
var checkBol = res.data;
|
||
var $mask = $('.status-mask');
|
||
if (checkBol.authResult) {
|
||
console.log('已短信验证!')
|
||
} else if (checkBol.hasCertify && !checkBol.canCertify) {
|
||
console.log('已实名且没有机会了')
|
||
|
||
$mask.addClass("have-identity");
|
||
$mask.find(".text").html("您已通过实名认证");
|
||
$mask.find(".tips").html("系统已成功审核您的实名认证");
|
||
$mask.show();
|
||
} else if (checkBol.hasCertify && checkBol.canCertify) {
|
||
console.log('已实名还有一次机会')
|
||
// var $mask = $('.status-mask');
|
||
$mask.addClass("have-identity");
|
||
$mask.find(".text").html("您已通过实名认证");
|
||
$mask.find(".tips").html("系统已成功审核您的实名认证");
|
||
$mask.find(".goto-change").removeClass('hide');
|
||
$mask.show();
|
||
}
|
||
}
|
||
},
|
||
error (err) {
|
||
console.log(err);
|
||
}
|
||
})
|
||
},
|
||
eventRegister: function () {
|
||
$('.button-submit').on('click', function () {
|
||
var name = $('.name').val();
|
||
var personId = $('.person-id').val();
|
||
var phone = `${$('.phone').val()}`;
|
||
var identityCode = $('.identity-code').val();
|
||
var agree = $('#agree').prop("checked");
|
||
if (!agree) {
|
||
toastShow("请同意直播协议");
|
||
return;
|
||
}
|
||
if (!name.trim()) {
|
||
toastShow("名字不能为空");
|
||
return;
|
||
}
|
||
|
||
if (!personId.trim()) {
|
||
toastShow("身份证号不能为空");
|
||
return;
|
||
}
|
||
|
||
if (!phone.trim()) {
|
||
toastShow("手机号不能为空");
|
||
return;
|
||
}
|
||
|
||
if (!identityCode.trim()) {
|
||
toastShow("验证码不能为空");
|
||
return;
|
||
}
|
||
|
||
if (!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/).test(personId.trim())) {
|
||
toastShow("身份证号不符合规格");
|
||
return;
|
||
}
|
||
|
||
if (!(/^1[3|4|5|6|7|8|9][0-9]\d{8}$/).test(phone.trim())) {
|
||
toastShow("手机号不符合规格");
|
||
return;
|
||
}
|
||
if (lockBol) {
|
||
return;
|
||
}
|
||
lockBol = true;
|
||
var metaInfo = window.getMetaInfo();
|
||
var requestParam = {
|
||
certType: 0,
|
||
code: identityCode,
|
||
identityNumber: encryptDes(personId, "1ea53d260ecf11e7b56e00163e046a26"),
|
||
metaInfo:JSON.stringify(metaInfo),
|
||
phone: encryptDes(86+phone, "1ea53d260ecf11e7b56e00163e046a26"),
|
||
returnUrl: urlPrefix + '/peko/modules/h5Income/withdrawal.html',
|
||
uid: pubInfo.uid,
|
||
username: encryptDes(name, "1ea53d260ecf11e7b56e00163e046a26"),
|
||
};
|
||
networkRequest({
|
||
type: 'post',
|
||
url: urlPrefix + '/certification/initFace',
|
||
data: requestParam,
|
||
success: function (res) {
|
||
if (res.code == 200) {
|
||
window.location.href = res.data.certifyUrl;
|
||
} else {
|
||
$mask.addClass("failed");
|
||
$mask.find(".text").html("实名认证失败");
|
||
$mask.find(".tips").html(res.message);
|
||
$mask.show();
|
||
lockBol = false;
|
||
setTimeout(function () {
|
||
$('.status-mask').hide();
|
||
}, 4000);
|
||
lockBol = false;
|
||
}
|
||
},
|
||
error (err) {
|
||
console.log(err);
|
||
}
|
||
})
|
||
})
|
||
|
||
$('.button-identity-code').on('click', function () {
|
||
var phone = $('.phone').val();
|
||
if (!phone.trim()) {
|
||
toastShow("手机号不能为空");
|
||
return;
|
||
}
|
||
if (!(/^1[3|4|5|6|7|8|9][0-9]\d{8}$/).test(phone.trim())) {
|
||
toastShow("手机号不符合规格");
|
||
return;
|
||
}
|
||
if ($(this).hasClass("disable")) {
|
||
return;
|
||
}
|
||
$(this).addClass('disable');
|
||
var time = 60;
|
||
var $that = $(this);
|
||
$(this).html(time + 's后重新获取');
|
||
timer = setInterval(function () {
|
||
time--;
|
||
$that.html(time + "s后重新获取");
|
||
if (time < 0) {
|
||
clearInterval(timer);
|
||
$that.removeClass('disable');
|
||
$that.html("获取验证码");
|
||
}
|
||
}, 1000)
|
||
|
||
var requestParam = {
|
||
phone: encryptDes(86+phone, "1ea53d260ecf11e7b56e00163e046a26"),
|
||
uid: pubInfo.uid,
|
||
ticket: pubInfo.ticket
|
||
};
|
||
|
||
if (browser.android) {
|
||
requestParam.deviceInfo = JSON.stringify({
|
||
deviceId: pubInfo.deviceId
|
||
});
|
||
}
|
||
|
||
networkRequest({
|
||
type: 'post',
|
||
url: urlPrefix + '/certification/send/code',
|
||
data: requestParam,
|
||
success: function (res) {
|
||
if (res.code == 200) {
|
||
toastShow('发送成功');
|
||
} else {
|
||
toastShow(res.message);
|
||
}
|
||
},
|
||
error (err) {
|
||
console.log(err);
|
||
}
|
||
})
|
||
})
|
||
|
||
// 点击我要修改
|
||
$('.goto-change').on('click', function () {
|
||
$mask.hide();
|
||
$('.layer-box-2').show();
|
||
})
|
||
|
||
// 点击关闭弹层
|
||
$('.layer-2-close').on('click', function () {
|
||
$('.layer-box-2').hide();
|
||
$mask.show();
|
||
})
|
||
|
||
// 点击跳转手机验证
|
||
$('.goto-change-layer').on('click', function () {
|
||
window.location.href = 'mobile.html';
|
||
})
|
||
}
|
||
};
|
||
main.init();
|
||
|
||
});
|
||
|
||
function toastShow (text) {
|
||
$toast.html(text);
|
||
$toast.show();
|
||
setTimeout(function () {
|
||
$toast.hide();
|
||
}, 2000);
|
||
}
|
||
|
||
function getMessage (key, value) {
|
||
pubInfo[key] = value;
|
||
}
|
||
|
||
|
||
function renderByStatus (status) {
|
||
$mask.attr('class', 'status-mask');
|
||
console.log("开始回调," + "状态为" + status);
|
||
|
||
networkRequest({
|
||
type: 'post',
|
||
url: urlPrefix + '/certification/notify',
|
||
data: {
|
||
uid: pubInfo.uid,
|
||
ticket: pubInfo.ticket,
|
||
token: pubInfo.token,
|
||
statusCode: status
|
||
},
|
||
success: function (res) {
|
||
console.log(res);
|
||
lockBol = false;
|
||
if (res.code == 200) {
|
||
console.log("success");
|
||
if (status == 2) {
|
||
$mask.addClass("success");
|
||
$mask.find(".text").html("认证成功");
|
||
$mask.find('.tips').html('');
|
||
$mask.show();
|
||
} else {
|
||
if (status == -2) {
|
||
$mask.addClass("failed");
|
||
$mask.find(".text").html("认证失败");
|
||
$mask.find(".tips").html("网络不通或者网络异常");
|
||
} else if (status == 1) {
|
||
$mask.addClass("failed");
|
||
$mask.find(".text").html("认证失败");
|
||
$mask.find(".tips").html("审核失败");
|
||
} else {
|
||
console.log('存在异常,status=' + status);
|
||
// window.location.reload();
|
||
return;
|
||
}
|
||
$mask.show();
|
||
setTimeout(function () {
|
||
$mask.hide();
|
||
}, 4000);
|
||
}
|
||
}
|
||
},
|
||
error (err) {
|
||
console.log(err);
|
||
}
|
||
})
|
||
|
||
console.log('status', status);
|
||
|
||
}
|
||
|
||
//DES加密
|
||
const encryptDes = (message, key) => {
|
||
var keyHex = CryptoJS.enc.Utf8.parse(key);
|
||
var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
|
||
mode: CryptoJS.mode.ECB,
|
||
padding: CryptoJS.pad.Pkcs7
|
||
});
|
||
return encrypted.toString();
|
||
}
|