UNPKG

yqb

Version:

Static Package Manager

564 lines (464 loc) 14.1 kB
/* * 注册接口处理 * author: <%= author %> * version: <%= version %> * website: http://www.431103.com */ 'use strict'; 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 // } // }; // ----------------------------------------- // 非新标结构