// packageH/signPage/personBank/personBank.js const app = getApp(); Page({ data: { activeName: '', step: 1, checkboxGroup: [], protocolShow: false, agreement: {}, form: { name: "", id_no: "", tel: "", captcha: "", face_auth_mode: '' }, authcode: "", bank_no: "", flow_id: "", count: "", timer: null, imgcode: "", //图形验证码 is_real_name: false, real_name_auth_set: {}, shop_name: '', realNameProtocolShow: false, is_bind_mobile: 0, is_mobile: 1 }, onLoad: function (options) { if (options.from === 'bindRealName') { this.setData({ is_real_name: true }); this.getimgdata(); this.getAuth(); } else { this.getPersonData(); this.getAgreement(); } }, onReady: function () { }, //绑定图形验证码的值 captchainp(e) { let val = e.detail.value; this.setData({ "form.captcha": val.trim(), }); }, //获取图片验证码 getimgdata() { let urlStr = app.getNetAddresss("home-page.getCaptcha"); app._getNetWork({ url: urlStr, validateBol: 2, success: (resdata) => { var res = resdata.data; if (res.result == 1) { if (res.data.captcha) { this.setData({ imgcode: res.data.captcha.img }); } } }, fail: function (res) { console.log(res); } }); }, getAuth() { let queryUrl = app.getNetAddresss('plugin.real-name-auth.frontend.auth.index'); app._getNetWork({ url: queryUrl, success: (resdata) => { let res = resdata.data; if (res.result === 1) { if (res.data.protocol_set && res.data.protocol_set.content) { res.data.protocol_set.content = res.data.protocol_set.content.replace(/ { this.data.timer = null; if (resdata.data.result === 1) { let res = resdata.data; app.tips("已发送"); this.setData({ flow_id: res.data.flowId }); if (!this.data.timer) { this.countDown = TIME_COUNT; this.data.timer = setInterval(() => { if (this.countDown > 0 && this.countDown <= TIME_COUNT) { this.setData({ count: --this.countDown }); } else { clearInterval(this.data.timer); this.data.timer = null; } }, 1000); } } else { wx.showModal({ title: "提示", content: resdata.data.msg, showCancel: false }); } } }); }, sendAuthCode() { let url = ""; let json = {}; if (this.data.activeName == 1) { url = app.getNetAddresss("plugin.real-name-auth.frontend.auth.telSms"); json = { flow_id: this.data.flow_id, code: this.data.authcode }; } else if (this.data.activeName == 2) { url = app.getNetAddresss("plugin.real-name-auth.frontend.auth.bankSms"); json = { flow_id: this.data.flow_id, code: this.data.authcode }; } else { url = app.getNetAddresss("plugin.real-name-auth.frontend.auth.authFace"); json = { name: this.data.form.name, id_no: this.data.form.id_no, tel: this.data.form.tel, face_auth_mode: this.data.form.face_auth_mode == 1 ? 'ESIGN' : '', callback_url: "/packageG/index/index" }; } if (this.data.is_bind_mobile != 1) { json.is_mobile = this.data.is_mobile; } app._postNetWork({ url, data: json, success: (resdata) => { let res = resdata.data; if (res.result === 1) { let value; if (this.data.real_name_auth_set.auth_scene.indexOf('1') > -1) { value = wx.getStorageSync("yz_redirect"); } else { value = wx.getStorageSync("real_name_redirect"); } if (this.data.activeName == 3) { this.setData({ flow_id: res.data.flowId }); wx.navigateToMiniProgram({ appId: 'wx1cf2708c2de46337', // 上链公证签小程序APPID path: '/pages/index/index', // 上链公证签页面地址 extraData: { requestObj: { // 必填,入参 flowId: res.data.flowId, // 必填,认证流程Id type: 'REALNAME', // 必填,业务类型:实名 REALNAME env: 'prod' // 非必填,对接环境:线上 prod(默认), 模拟 sml(用于对接调试阶段) }, callbackObj: { // 非必填,回传数据:签署完成后会将此数据完整回传 url: `/${value}`, }, envVersion: 'release', }, }); wx.removeStorageSync("real_name_redirect"); // wx.redirectTo({ // url: `/packageH/signPage/signPage?url=${res.data.data.authUrl}`, // }); } else { app.tips('认证成功'); if (value) { wx.redirectTo({ url: `/${value}`, fail: function (err) { // 防止跳转不了 wx.reLaunch({ url: "/packageG/index/index", }); } }); wx.removeStorageSync("real_name_redirect"); } else { wx.reLaunch({ url: "/packageG/index/index", }); } } } else { wx.showModal({ title: "提示", content: resdata.data.msg, showCancel: false }); } }, fail(err) { app.tips(err.msg); } }); }, // 人员数据 getPersonData() { let queryUrl = app.getNetAddresss('plugin.yun-sign.frontend.h5.person.check-person-approve'); app._getNetWork({ url: queryUrl, success: (resdata) => { let res = resdata.data; if (res.result === 1) { // 已经认证成功 this.setData({ person: res.data }); if (res.status == "SUCCESS") { wx.navigateTo({ url: `/packageH/signPage/identifyResult/identifyResult?show=person`, }); } } else { console.log(res.msg); } }, fail: function (err) { console.log(err, "失败-----------"); } }); }, // 获取认证协议内容 getAgreement() { let queryUrl = app.getNetAddresss('plugin.yun-sign.frontend.person.get-agreement'); app._postNetWork({ url: queryUrl, showToastIn: true, success: (resdata) => { let res = resdata.data; if (res.result === 1) { this.setData({ agreement: res.data }); } else { app.tips(res.msg); } } }); }, // 第一步---> 开始认证按钮 getMemberData() { if (this.data.checkboxGroup.length <= 0 && (!this.data.is_real_name || this.data.agreement.status == 1)) { return; } if (this.data.is_real_name) { // 跳转过来的实名认证 this.setData({ step: 2 }); return; } if (this.data.checkboxGroup.length < 1) { wx.showModal({ content: "请先同意并勾选协议", showCancel: false }); return; } let queryUrl = app.getNetAddresss('plugin.yun-sign.frontend.h5.person.get-person-auth-info'); app._postNetWork({ url: queryUrl, success: (resdata) => { this.setData({ step: 2 }); let res = resdata.data; if (res.result === 1) { this.setData({ ['form.name']: resdata.data.name, ['form.tel']: resdata.data.tel }); } else { app.tips(res.msg); } }, fail: function (err) { console.log(err, "失败-----------"); } }); }, // 第二步 ---> 进行认证按钮 toStep() { if (!this.data.form.name) { app.tips('请先填写姓名'); return; } if (!this.data.form.id_no) { app.tips('请先填写身份证号'); return; } if (!this.data.form.tel) { app.tips('请先填写手机号'); return; } if (!this.data.activeName) { app.tips('请先选择认证方式'); return; } if (this.data.is_real_name) { // 跳转过来的实名认证 this.setData({ step: 3 }); } else { this.checkPersonData(); } }, checkPersonData() { let queryUrl = app.getNetAddresss('plugin.yun-sign.frontend.person.check-person-approve-by-idNo'); app._getNetWork({ url: queryUrl, showToastIn: true, data: { name: this.data.form.name, idNo: this.data.form.id_no, tel: this.data.form.tel, }, success: (resdata) => { if (resdata.data.result === 1) { let res = resdata.data; this.setData({ person: res.data }); if (res.data.status_code == 99) { wx.showModal({ title: '提示', content: '您在认证中心已经完成认证,无需重复认证', showCancel: false, success() { wx.navigateTo({ url: `/packageH/signPage/identifyResult/identifyResult?show=person`, }); } }); } else { this.setData({ step: 3 }); } } else { wx.showModal({ content: resdata.data.msg, showCancel: false }); } }, fail: function (err) { console.log(err, "失败-----------"); } }); }, // 获取短信验证码 sureIdentify() { if (this.data.activeName == 2 && !this.data.bank_no) { app.tips("请先填写银行卡"); return; } if (this.data.is_real_name) { // 跳转过来的实名认证 this.sureAuthIdentify(); return; } let queryUrl = ""; let json = {}; const TIME_COUNT = 60; if (this.data.activeName == 1) { queryUrl = app.getNetAddresss("plugin.yun-sign.frontend.h5.person.auth-tel-v2"); json = this.data.form; } else if (this.data.activeName == 2) { queryUrl = app.getNetAddresss("plugin.yun-sign.frontend.h5.person.auth-bank-card-v2"); this.setData({ ['form.bank_no']: this.data.bank_no }); json = this.data.form; } app._postNetWork({ url: queryUrl, data: json, success: (resdata) => { this.data.timer = null; if (resdata.data.result === 1) { let res = resdata.data; app.tips("已发送"); this.setData({ flow_id: res.data.data.flowId }); if (!this.data.timer) { this.countDown = TIME_COUNT; this.data.timer = setInterval(() => { if (this.countDown > 0 && this.countDown <= TIME_COUNT) { this.setData({ count: --this.countDown }); } else { clearInterval(this.data.timer); this.data.timer = null; } }, 1000); } } else { wx.showModal({ title: "提示", content: resdata.data.msg, showCancel: false }); } } }); }, // 第三步----> 立即认证按钮 sendCode() { if (this.data.activeName == 2 && !this.data.bank_no) { app.tips("请先填写银行卡"); return; } if (this.data.activeName != 3 && !this.data.flow_id) { app.tips("请先获取验证码"); return; } console.log(this.data.authcode); if (this.data.activeName != 3 && !this.data.authcode) { app.tips("请先填写验证码"); return; } if (this.data.activeName == 3 && !this.data.form.face_auth_mode) { console.log(typeof this.data.activeName, this.data.form); app.tips("请先选择识别方式"); return; } if (this.data.is_real_name) { // 跳转过来的实名认证 this.sendAuthCode(); } else { this.sendAuthRequest(); } }, sendAuthRequest() { let url = ""; let json = {}; if (this.data.activeName == 1) { url = app.getNetAddresss("plugin.yun-sign.frontend.person.check-tel-sms-code"); json = { flow_id: this.data.flow_id, authcode: this.data.authcode }; } else if (this.data.activeName == 2) { url = app.getNetAddresss("plugin.yun-sign.frontend.person.check-bank-sms-code"); json = { flow_id: this.data.flow_id, authcode: this.data.authcode }; } else { url = app.getNetAddresss("plugin.yun-sign.frontend.h5.person.auth-face-v2"); json = { name: this.data.form.name, id_no: this.data.form.id_no, tel: this.data.form.tel, face_auth_mode: this.data.form.face_auth_mode, callback_url: '' }; } app._postNetWork({ url, data: json, success: (resdata) => { let res = resdata.data; if (res.result === 1) { if (this.data.activeName == 3) { // wx.showModal({ // content: "跳转h5,暂未使用web-view", // cancelColor: 'cancelColor', // }) // window.location.href = res.data.data.authUrl; wx.redirectTo({ url: `/packageH/signPage/signPage?url=${res.data.data.authUrl}`, }); } else { app.tips(res.msg); wx.redirectTo({ url: '/packageH/signPage/identifyResult/identifyResult?show=person', }); } } else { wx.showModal({ title: "提示", content: resdata.data.msg, showCancel: false }); } }, fail(err) { app.tips(err.msg); } }); }, // methodes // 协议阅读情况 onAgree(event) { this.setData({ checkboxGroup: event.detail }); }, // 显示 popup showProtocol() { this.setData({ protocolShow: true }); }, showAuthProtocol() { this.setData({ realNameProtocolShow: true }); }, // 关闭popup closePopup() { this.setData({ protocolShow: false, realNameProtocolShow: false }); }, // 表单修改 handlerInput(event) { let type = event.target.dataset.type; this.setData({ [`${type}`]: event.detail }); }, /** * 隐藏 */ onHide() { clearInterval(this.data.timer); } });