123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634 |
- // pages/real_name/read_name.js
- const app = getApp();
- const util = require('../../utils/utils.js');
- let timer1 = null;
- Page({
- data: {
- state1: '1', //步骤一
- state2: '', //步骤二
- state3: '', //步骤三
- state4: '', //步骤四
- index: 0, //0 手机验证 1 实名认证 2 缴纳押金 3完成
- index1: 0, //0 选择获取手机号码方式 1 手动输入页面
- nameVal: '', //输入的名字
- cardVal: '', //输入的身份证号码
- smsVal: '', //输入的短信验证码
- phoneVal: '', //输入的手机号码
- code: '获取验证码', //获取短信验证码
- phoneDisabele: false, //输入的手机号是否能更改
- currentTime: 60, //倒计时秒数
- codeDisabled: false, //是否禁用按钮
- timer: null, //定时器
- money: wx.getStorageSync('setting').deposit,
- payment: true,
- count: 10,
- statusIndex: 0, //0 缴纳押金 1退回押金 2退押金状态
- pay: 0, // 1 支付押金 0 支付/缴纳/退回
- popShow: true, //是否显示弹窗
- money: '',
- depoSuce: true,
- imgUrl: 'http://resource.bike.hanyiyun.com/xiaobanma/moneyBg.png',
- depShow: true, //是否选中缴纳押金 true选中 false 未选中
- curShow: '', //是否选中购买免押金卡 undefined 未选中 有值选中
- cardList: [], //免押金卡列表
- state: [],
- userState: wx.getStorageSync('userState'),
- title: app.globalData.title,
- setting: wx.getStorageSync('setting'),
- hidden: true
- },
- onLoad: function (options) {
- if (options.index) {
- this.setData({
- index: options.index,
- state2: options.state2
- })
- }
- if (options.hidden) {
- this.setData({
- hidden: false
- })
- }
- this.getState();
- // this.setData({
- // money: wx.getStorageSync('setting').deposit
- // })
- // if (wx.getStorageSync('setting') == '') {
- // wx.showModal({
- // title: '提示',
- // content: '您附近暂无运营区域~',
- // showCancel: false,
- // success: function (res) {
- // if (res.confirm) {
- // wx.navigateBack()
- // }
- // }
- // })
- // } else {
- // this.setData({
- // money: wx.getStorageSync('setting').deposit
- // })
- // }
- if (options.home) {
- this.setData({
- pay: 1
- })
- }
- this.getCard();
- },
- student: function () {
- wx.navigateTo({
- url: '../student_certification/student_certification',
- })
- },
- //返回首页
- backPage() {
- clearInterval(timer1);
- if (app.globalData.compatible) {
- wx.reLaunch({
- url: '/pages/compatible/index/index',
- })
- } else {
- wx.reLaunch({
- url: '/pages/index/index',
- })
- }
- },
- //验证名字
- ckName(e) {
- this.setData({
- nameVal: e.detail.value
- })
- },
- name(e) {
- this.setData({
- nameVal: e.detail.value
- })
- },
- namefirm(e) {
- this.setData({
- nameVal: e.detail.value
- })
- },
- //验证身份证号
- ckCard(e) {
- this.setData({
- cardVal: e.detail.value
- })
- },
- input(e) {
- this.setData({
- cardVal: e.detail.value
- })
- },
- valuefirm(e) {
- this.setData({
- cardVal: e.detail.value
- })
- },
- //验证手机号
- ckPhone(e) {
- this.setData({
- phoneVal: e.detail.value
- })
- },
- //验证短信验证码
- ckSms(e) {
- this.setData({
- smsVal: e.detail.value
- })
- },
- //获取短信验证码
- getCode: util.throttle(function () {
- let self = this
- let currentTime = self.data.currentTime
- let timer = self.data.timer
- if (self.data.phoneVal.length != 11) {
- wx.showToast({
- title: '请输入正确的手机号',
- icon: 'none',
- duration: 2000
- })
- } else {
- self.setData({
- phoneDisabele: true
- })
- // 调用短信验证码接口
- let data = {
- mobile: this.data.phoneVal,
- type: 1
- }
- app.request('/verification-code', data, 'POST').then(res => {
- if (res.statusCode == 200) {
- //60秒倒计时
- if (!timer) {
- timer = setInterval(() => {
- if (currentTime > 0 && currentTime <= 60) {
- currentTime--;
- }
- if (currentTime !== 0) {
- self.setData({
- code: "重新发送" + "(" + currentTime + ")",
- codeDisabled: true,
- })
- } else {
- clearInterval(timer);
- self.setData({
- code: '获取验证码',
- phoneDisabele: false,
- codeDisabled: false,
- currentTime: 60,
- timer: null,
- })
- }
- }, 1000)
- }
- }
- })
- }
- }, 1000),
- //提交申请按钮
- submit: util.throttle(function () {
- let reg = /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/;
- let reg1 = /^[\u4E00-\u9FA5]{2,4}$/;
- var that = this;
- if (!reg1.test(this.data.nameVal)) {
- wx.showToast({
- title: '请输入正确的姓名',
- icon: 'none',
- duration: 2000
- })
- } else if (!reg.test(this.data.cardVal)) {
- wx.showToast({
- title: '请输入正确的身份证号',
- icon: 'none',
- duration: 2000
- })
- } else {
- that.checkIDCard(that.data.cardVal)
- }
- }, 1000),
- // 一键获取手机号
- checkIDCard(idcode) {
- // 加权因子
- var that = this;
- var weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
- // 校验码
- var check_code = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
- var code = idcode + ''
- var last = idcode[17] //最后一位
- var seventeen = code.substring(0, 17)
- // ISO 7064:1983.MOD 11-2
- // 判断最后一位校验码是否正确
- var arr = seventeen.split('')
- var len = arr.length
- var num = 0
- for (var i = 0; i < len; i++) {
- num = num + arr[i] * weight_factor[i]
- }
- // 获取余数
- var resisue = num % 11
- var last_no = check_code[resisue]
- var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/
- // 判断格式是否正确
- var format = idcard_patter.test(idcode)
- console.log(format)
- console.log(last)
- console.log(last_no)
- // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码
- if(last==last_no && format==true){
- wx.showLoading({
- title: '认证中...',
- mask: true
- })
- if (app.globalData.req) {
- let data = {
- card_id: that.data.cardVal,
- name: that.data.nameVal
- }
- app.request('/user/real-name-authentication', data, 'POST', app.globalData.req).then(res => {
- console.log(res)
- if (res.statusCode == 200) {
- if (that.data.hidden == false) {
- wx.navigateBack()
- } else {
- that.setData({
- state3: 3,
- index: 2
- })
- }
- wx.hideLoading()
- }
- }).catch(err => {
- console.log(err)
- })
- } else {
- wx.showToast({
- title: '您的操作过于频繁,请稍后再试~',
- icon: 'none'
- })
- }
- }else{
- wx.showToast({
- title: '身份证号输入有误~',
- icon:'none'
- })
- }
-
- },
- getPhoneNumber(e) {
- var that = this;
- if (e.detail.errMsg == "getPhoneNumber:ok") {
- let data = {
- session_key: wx.getStorageSync('session_key'),
- iv: e.detail.iv,
- encryptedData: e.detail.encryptedData
- }
- app.request('/user/bind-wechat-mobile', data, 'POST').then(res => {
- if (res.statusCode == 200) {
- //获取成功判断当前有没有实名认证,如果有跳到交押金 没有则正常执行
- if (wx.getStorageSync('setting').is_card == 0 && wx.getStorageSync('setting').is_deposit == 1) {
- this.setData({
- state3: 3,
- index: 2,
- state2: 2
- })
- } else if (wx.getStorageSync('setting').is_card == 0 && wx.getStorageSync('setting').is_deposit == 0) {
- this.setData({
- state3: 3,
- index: 3,
- state2: 2,
- state4: 4
- })
- if (!timer1) {
- let count = that.data.count;
- timer1 = setInterval(() => {
- if (count > 0) {
- that.setData({
- count: --count
- })
- }
- if (count <= 0) {
- clearInterval(timer1)
- that.backPage();
- }
- }, 1000)
- }
- } else {
- if (wx.getStorageSync('userState').is_card_certified == 1) {
- this.setData({
- state3: 3,
- index: 2,
- state2: 2
- })
- } else {
- this.setData({
- state2: 2,
- index: 1
- })
- }
- }
- }
- })
- } else {
- wx.showToast({
- title: '获取手机号失败',
- icon: 'none',
- duration: 2000
- })
- }
- },
- // 手动输入手机号码
- manual() {
- this.setData({
- index1: 1
- })
- },
- //立即验证按钮
- verify: util.throttle(function () {
- let reg = 11 && /^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$/;
- let reg1 = /^\d{4}$/
- if (!reg1.test(this.data.smsVal)) {
- wx.showToast({
- title: '请输入短信验证码',
- icon: 'none',
- duration: 2000
- })
- }
- if (!reg.test(this.data.phoneVal)) {
- wx.showToast({
- title: '请输入正确的手机号',
- icon: 'none',
- duration: 2000
- })
- return;
- } else if (!this.data.smsVal) {
- wx.showToast({
- title: '短信验证码不能为空',
- icon: 'none',
- duration: 2000
- })
- return;
- } else {
- if (app.globalData.req) {
- let data = {
- mobile: this.data.phoneVal,
- code: this.data.smsVal
- }
- app.request('/user/bind-mobile', data, 'POST', app.globalData.req).then(res => {
- if (res.statusCode == 200) {
- if (wx.getStorageSync('userState').is_card_certified == 1) {
- this.setData({
- state3: 3,
- index: 2,
- state2: 2
- })
- } else {
- this.setData({
- state2: 2,
- index: 1
- })
- }
- }
- if (res.statusCode == 422) {
- console.log(res)
- wx.showToast({
- title: res.data.errors,
- icon: 'none',
- duration: 2000
- })
- }
- })
- } else {
- wx.showToast({
- title: '您的操作过于频繁,请稍后再试~',
- icon: 'none'
- })
- }
- }
- }, 1000),
- phone: function () {
- wx.makePhoneCall({
- phoneNumber: wx.getStorageSync('home').customer_service_phone,
- })
- },
- privacy: util.throttle(function () {
- //点击个人隐私条约
- wx.navigateTo({
- url: '/pages/personal/privacy/privacy',
- })
- }, 1000),
- agreement: util.throttle(function () {
- //充值条约
- wx.navigateTo({
- url: '/pages/agreement/agreement',
- })
- }, 1000),
- onReady: function () {
- },
- onShow: function () {
- this.setData({
- money: wx.getStorageSync('setting').deposit,
- setting: wx.getStorageSync('setting')
- })
- },
- onHide: function () {
- },
- onUnload: function () {
- },
- onPullDownRefresh: function () {
- },
- onReachBottom: function () {
- },
- onShareAppMessage: function () {
- },
- explain() {
- wx.navigateTo({
- url: '/pages/explain_card_free/explain_card_free',
- })
- },
- getCard() {
- let data = {
- area_id: wx.getStorageSync('home').id
- }
- app.request('/deposit_card/index', data, 'GET').then(res => {
- console.log(res.data);
- this.setData({
- cardList: res.data.data
- })
- console.log(this.data.cardList)
- })
- },
- // 切换免押金卡
- cut(e) {
- let that = this;
- let id = e.currentTarget.dataset.id;
- if (id == undefined) {
- that.setData({
- depShow: true,
- curShow: "text_undefined",
- depshow: true
- })
- } else {
- that.setData({
- curShow: id,
- depShow: false,
- depshow: false
- })
- }
- },
- //进入页面判断是否缴纳押金
- getState: util.throttle(function (e) {
- app.request('/user/status', '', 'GET').then(res => {
- console.log(res, '判断');
- this.setData({
- statusIndex: res.data.is_deposit,
- state: res.data
- })
- })
- }, 1000),
- //缴纳押金
- pay: util.throttle(function (e) {
- this.setData({
- pay: 1
- })
- }, 100),
- //显示弹窗
- showPop: util.throttle(function (e) {
- this.setData({
- popShow: false,
- })
- }, 1000),
- //取消退回押金
- cancle: util.throttle(function (e) {
- this.setData({
- popShow: true,
- })
- }, 1000),
- //确定退回押金
- confirm: util.throttle(function (e) {
- this.setData({
- popShow: true,
- statusIndex: 1,
- })
- if (app.globalData.req) {
- app.request('/deposit/refund', '', 'POST', app.globalData.req).then(res => {
- console.log(res);
- if (res.statusCode == 200) {
- wx.showToast({
- title: '押金退还成功稍后到账~',
- icon: 'none',
- duration: 3000
- })
- this.setData({
- statusIndex: 0
- })
- }
- })
- } else {
- wx.showToast({
- title: '您的操作过于频繁,请稍后再试~',
- icon: 'none'
- })
- }
- }, 1000),
- //立即支付
- depoSuce: util.throttle(function (e) {
- console.log('支付')
- var that = this;
- let url = '';
- var data = '';
- if(that.data.money!='0.00'){
- if (app.globalData.req) {
- console.log(that.data.depShow)
- if (that.data.depShow) { //缴纳押金
- console.log(11111)
- url = "/deposit/pay";
- data = {
- area_id: wx.getStorageSync('home').id
- }
- } else { //购买免押金卡
- console.log(2222)
- url = "/deposit_card/pay";
- data = {
- area_id: wx.getStorageSync('home').id,
- id: that.data.curShow
- }
- }
- app.request(url, data, 'POST', app.globalData.req).then(res => {
- if (res.statusCode == 200) {
- console.log(res)
- wx.requestPayment({
- timeStamp: res.data.timeStamp.toString(),
- nonceStr: res.data.nonceStr,
- package: res.data.package,
- signType: res.data.signType,
- paySign: res.data.paySign,
- success(res) {
- that.setData({
- payment: false,
- state4: 4,
- index: 3,
- depoSuce: true
- })
- if (!timer1) {
- let count = that.data.count;
- timer1 = setInterval(() => {
- if (count > 0) {
- that.setData({
- count: --count
- })
- }
- if (count <= 0) {
- clearInterval(timer1)
- that.backPage();
- }
- }, 1000)
- }
- },
- fail(err) {
- console.log(err)
- wx.showToast({
- title: '支付失败',
- icon: 'none'
- })
- that.setData({
- depoSuce: true
- })
- }
- })
- } else {
- console.log(res)
- that.setData({
- depoSuce: true
- })
- }
- })
- } else {
- wx.showToast({
- title: '您的操作过于频繁,请稍后再试~',
- icon: 'none'
- })
- }
- }else{
- that.setData({
- payment: false,
- state4: 4,
- index: 3,
- depoSuce: true
- })
- }
- }, 1000),
- agreement: util.throttle(function (e) {
- //充值条约
- wx.navigateTo({
- url: '/pages/agreement/agreement',
- })
- }, 1000),
- })
|