yqb
Version:
Static Package Manager
564 lines (464 loc) • 14.1 kB
JavaScript
/*
* 注册接口处理
* author: <%= author %>
* version: <%= version %>
* website: http://www.431103.com
*/
;
class Captcha {
constructor() {
}
verifyCaptcha(data, resolve, reject) {
new Ajax().requestServiceMTP('/mtp-web/h5/cma_verify_img_code.json', data, (data, code, message) => {
resolve && resolve(data, code, message);
}, (data, code, message) => {
reject && reject(data, code, message);
switch (code) {
case '1080':
$('input[type=imgcode]').tips({
content: message
});
break;
}
});
}
// 刷新图片验证码
refreshCaptcha(resolve, reject) {
new Ajax().requestServiceMTP('/mtp-web/h5/refresh_img_code.json', {}, (data, code, message) => {
resolve && resolve(data, code, message);
}, (data, code, message) => {
reject && reject(data, code, message);
});
}
}
class SMS {
constructor(options) {
this.config = options;
this.captchaId = null;
}
init() {
let self = this;
let config = this.config.element;
// 监听发送短信按钮
config.btnSend.addEventListener('click', e => {
let length = config.mobile.value.length;
switch (length) {
case 0:
$('input[type=tel]').tips({
content: '手机号码格式错误'
});
break;
case 11:
// 重新获取手机号
self.config.data.phone = self.config.element.mobile.value;
let data = {
phone: self.config.element.mobile.value,
businessId: self.config.data.businessId,
channelId: self.config.data.channelId
};
// 允许老用户发送短信验证码
if (self.config.data.autoLogin && self.config.data.autoLogin == true) {
data.autoLogin = self.config.data.autoLogin;
}
self.send(data, function(data) {
self.config.data.msgId = data.msgId;
});
break;
default:
$('input[type=tel]').tips({
content: '手机号码格式错误'
});
break;
}
});
}
setCaptchaId(id) {
this.captchaId = id;
}
getCaptchaId() {
return this.captchaId;
}
setCaptchaValue(element, extrData) {
let self = this;
let captcha = new Captcha();
let captchaId = self.setCaptchaId(extrData.captchaId);
// 监听验证码输入框的变化
element.removeEventListener('input');
element.addEventListener('input', e => {
let length = element.value.length;
switch (length) {
case 0:
break;
case 4:
captcha.verifyCaptcha({
captchaId: self.getCaptchaId(),
captchaInput: element.value
}, data => {
// 重新获取手机号
self.config.data.phone = self.config.element.mobile.value;
let new_data = {
phone: self.config.data.phone,
businessId: self.config.data.businessId,
channelId: self.config.data.channelId,
captchaToken: data.captchaToken
};
// 允许老用户发送短信验证码
if (self.config.data.autoLogin && self.config.data.autoLogin == true) {
new_data.autoLogin = self.config.data.autoLogin;
}
self.send(new_data, function(data) {
self.config.data.msgId = data.msgId;
});
});
break;
default:
// $('input[type=imgcode]').tips('hide');
break;
}
});
}
updateImageUrl(element, data) {
let captcha = new Captcha();
element.src = data.captchaUrl;
element.removeEventListener('touchstart');
element.addEventListener('touchstart', e => {
captcha.refreshCaptcha((data, code, message) => {
this.setCaptchaId(data.captchaId);
element.src = data.captchaUrl;
});
});
}
// 通用注册下发短信
// 1026(用户已注册)
// 1184(需要进行图片验证码验证)
// 1185(图片验证结果已失效)
// 1193(没有找到对应的业务)
send(data, resolve, reject) {
new Ajax().requestServiceMTP('/mtp-web/h5/op_common_reg_send_otp.json', data, (data, code, message) => {
resolve && resolve(data, code, message);
// 倒计时
this.countDown(this.config.element.btnSend);
}, (data, code, message) => {
reject && reject(data, code, message);
switch (code) {
case '1026':
$('input[type=tel]').tips({
content: message
});
break;
case '1184':
// {"resultCode":"1184","resultMsg":"需要进行图片验证码验证","sessionId":null,"traceNo":"16502419","captchaUrl":"http://114.80.86.110:11280/gtproxy/captchacode/capct/20/db568ed5-a055-4e01-9a71-3f43f07fae97","captchaId":"db568ed5-a055-4e01-9a71-3f43f07fae97","msgId":null}
// 显示
this.config.element.vcode.classList.remove('paf-hide');
// 监听验证码输入框的变化
this.setCaptchaValue(this.config.element.inpImgcode, data);
// 刷新图片验证码
this.updateImageUrl(this.config.element.imgCaptcha, data);
break;
case '1361':
// {"resultCode":"1361","resultMsg":"您操作的太快了~","traceNo":"78083050"}
$('input[type=tel]').tips({
content: message
});
break;
case '1001':
$('input[type=tel]').tips({
content: message
});
break;
default:
$('input[type=tel]').tips({
content: message
});
break;
}
});
}
countDown(element, time = 60) {
let content = element.innerHTML;
let id = null;
element.disabled = true;
id = setInterval(function() {
if (time == 0) {
element.innerHTML = content;
element.disabled = false;
clearInterval(id);
} else {
element.innerHTML = time + 's';
}
time--;
}, 1000);
}
}
class Register extends SMS {
constructor(options) {
super(options);
super.init();
// 实名用户状态,默认不是实名用户
this.realNameStatus = false;
this.init();
}
init() {
let self = this;
self.config.element.btnRegister.addEventListener('touchstart', e => {
if (self.config.element.mobile.value.length == '') {
$('input[type=tel]').tips({
content: '手机号码不能为空'
});
return;
}
// 图片验证码判断
let vcode = self.config.element.vcode;
if (!self.config.element.vcode.classList.contains('paf-hide') && self.config.element.inpImgcode.value.length == '') {
$('input[type=imgcode]').tips({
content: '图片验证码不能为空'
});
return;
}
if (self.config.element.inptCode.value.length == '') {
$('input[type=vcode]').tips({
content: '验证码不能为空'
});
return;
}
// 更新数据
self.config.data.verifyCode = self.config.element.inptCode.value;
// TJ
TJ.update(this.config.id.getAttribute('data-agent'), this.config.data);
this.register();
});
}
// 通用注册接口
// 1026(用户已注册)
// 1193(业务id不正确,没有匹配的业务)
// 1035(短信验证码超时)
// 1025(用户未注册,无法完成操作)
// 1010(您的账户状态异常,不允许操作)
// 1137(实名用户,请输入身份证号码后再登入)
// 1138(证件信息错误,请重新录入)
register() {
let self = this;
let data = {
"mobilePhone": self.config.data.phone,
"verifyCode": self.config.data.verifyCode,
"msgId": self.config.data.msgId,
"businessId": self.config.data.businessId,
"channelId": self.config.data.channelId
};
// 下面如参字段非必传项
// 营销
if (self.config.data.mcId != '') {
data.mcId = self.config.data.mcId;
}
// 活动
if (self.config.data.activityId != '') {
data.activityId = self.config.data.activityId;
}
// 推荐
if (self.config.data.referee != '') {
data.referee = self.config.data.referee;
}
// 证件
if (self.realNameStatus == true) {
data.idCardNo = self.config.element.inptIdCard.value;
data.activityId = self.config.data.oldUserActivityId;
}
// 允许老用户登录
if (self.config.data.autoLogin && self.config.data.autoLogin == true) {
data.autoLogin = self.config.data.autoLogin;
}
new Ajax().requestServiceMTP('/mtp-web/h5/op_common_register.json', data, (data, code, message) => {
self.config.data.yqb_disambiguity_uid = data.uid;
self.config.data.newCustomerFlag = data.newCustomerFlag;
regorLoginSuccess(data);
}, (data, code, message) => {
switch (code) {
case '1137':
case '1138':
self.realName(data);
$('input[type=idCardNo]').tips({
content: message
});
break;
default:
$('input[type=vcode]').tips({
content: message
});
break;
}
});
}
realName(data) {
// 显示身份证输入框
this.config.element.idCard.classList.remove('paf-hide');
this.realNameStatus = true;
}
}
// ------------------------------------------
// ------------------------------------------
// 新老用户登录注册成功之后
function regorLoginSuccess(data) {
let newCustomerFlag = data.newCustomerFlag;
// TJ
TJ.update(config.id.getAttribute('data-agent'), config.data);
if (newCustomerFlag == 'N') {
// 老用户
issueReward();
} else if (newCustomerFlag == 'Y') {
// 新用户直接发放奖励
getReward();
}
}
// 是否已经领取过奖励
function issueReward() {
let ajax = new Ajax();
// 注意
// startTime endTime 活动规则有效期
ajax.requestServiceMTP('/mtp-web/h5/query_is_complete_task_v2.json', {
startTime: '2016-02-01',
endTime: '2016-02-29',
type: '01',
activityId: config.data.activityId,
}, (data, code, message) => {
let isCompleteTask = data.isCompleteModel;
for (var i in isCompleteTask) {
console.log(isCompleteTask[i].taskDate, getCurrentDate());
if (isCompleteTask[i].taskDate == getCurrentDate()) {
if (isCompleteTask[i].isCompleteTask == 0) {
$.dialog({
content: '您已经领取过奖励,请到壹钱包APP内查看',
ok: function() {
window.location.reload();
}
});
} else if (isCompleteTask[i].isCompleteTask == 1) {
// 老用户 activityId
config.data.activityId = config.data.oldUserActivityId;
getReward();
}
}
}
}, (data, code, message) => {
$.dialog({
content: message,
ok: function() {}
});
});
}
// 用户发放奖励
function getReward() {
let ajax = new Ajax();
// 修改时间:01.29 22:03
// 注意
// op_receive_reward 接口返回“参数错误”
ajax.requestServiceMTP('/mtp-web/h5/op_receive_reward.json', {
//ajax.requestServiceMTP('/mtp-web/h5/op_kf_draw_exec.json', {
// appId: '100001',
// clientId: '100001',
// operationType: 'op_receive_reward',
activityId: config.data.activityId,
//rewardType: 1
phone: config.data.phone,
// uid: config.data.yqb_disambiguity_uid,
scenesCode: 0,
}, (data, code, message) => {
receiveRewardSuccess(data, code, message);
}, (data, code, message) => {
receiveRewardSuccess(data, code, message);
});
}
function receiveRewardSuccess(data, code, message) {
let url = 'baixin-success.html';
url += '?activityId=' + until.getUrlParms().activityId || '';
url += '&mcId=' + config.data.mcId;
url += '&newCustomerFlag=' + config.data.newCustomerFlag;
url += '&yqb_disambiguity_uid=' + (config.data.yqb_disambiguity_uid ? config.data.yqb_disambiguity_uid : '');
url += '&v=' + Math.random();
// 发送奖励的用户
TJ.update("Event_PK_REGOK", {
"activityId": config.activityId,
"resultCode": code,
"msg": message,
"phone": config.data.phone,
"mcId": config.data.mcId
});
window.location.href = url;
}
/////////////////////////
function checkUserReg() {
// new Ajax().requestServiceMTP('/mtp-web/h5/check_if_registered_phone.json', {
// phoneNum: until.getUrlParms().mobile,
// }, (data, code, message) => {
// config.data.newCustomerFlag = true;
// }, (data, code, message) => {
// if (code == 1192) {
// // 用户已注册
// config.data.newCustomerFlag = false;
// } else {
// config.data.newCustomerFlag = true;
// }
// });
}
function getCurrentDate() {
let d=new Date(),
year = d.getFullYear();
let month = d.getMonth() + 1;
month = month < 10 ? ("0" + month) : month;
let dt = d.getDate();
dt = dt < 10 ? ("0" + dt) : dt;
let today = year+ "-" + month + "-" + dt;
return today;
}
// 全局配置
const smsId = document.getElementsByClassName('paf_register_module')[0];
const config = {
id: smsId,
element: {
mobile: document.getElementById('mobile-input'),
btnSend: document.getElementById('otp-get-btn'),
vcode: document.getElementById('captcha-control'),
imgCaptcha: document.getElementById('captcha-image'),
inpImgcode: document.getElementById('captcha-input'),
inptCode: document.getElementById('otp-input'),
inptIdCard: document.getElementById('idcard-input'),
idCard: document.getElementById('idcard-control'),
btnRegister: document.getElementById('reg')
},
data: {
businessId: smsId.getAttribute('data-businessid'),
channelId: smsId.getAttribute('data-channelid'),
referee: until.getUrlParms().yqb_disambiguity_uid || '',
mcId: until.getUrlParms().mcId || '',
activityId: until.getUrlParms().activityId || '',
autoLogin: true,
oldUserActivityId: 'TY-500003',
newCustomerFlag: false
}
};
// ------------------------------------------
// 新标结构
// const smsId = document.getElementsByClassName('paf_cells_form')[0];
// const config = {
// id: smsId,
// element: {
// mobile: smsId.querySelectorAll('input[type=tel]')[0],
// btnSend: smsId.getElementsByTagName('button')[0],
// vcode: smsId.getElementsByClassName('paf_vcode')[0],
// imgCaptcha: smsId.getElementsByTagName('img')[0],
// inpImgcode: smsId.querySelectorAll('input[type=imgcode]')[0],
// inptCode: smsId.querySelectorAll('input[type=vcode]')[0],
// inptIdCard: smsId.querySelector('input[type=idCardNo]'),
// idCard: document..querySelector('.idcard-control'),
// btnRegister: document.getElementsByClassName('paf_btn_primary')[0]
// },
// data: {
// businessId: smsId.getAttribute('data-businessid'),
// channelId: smsId.getAttribute('data-channelid'),
// referee: until.getUrlParms().yqb_disambiguity_uid || '',
// mcId: until.getUrlParms().mcId || '',
// activityId: until.getUrlParms().activityId || '',
// autoLogin: true
// }
// };
// -----------------------------------------
// 非新标结构