|
|
@@ -0,0 +1,1219 @@
|
|
|
+const regeneratorRuntime = require("../utils/regenerator-runtime/runtime"),
|
|
|
+ util = require("../utils/util");
|
|
|
+var sysFailInfo = require("../config").sysFailInfo,
|
|
|
+ BASE_URL = "";
|
|
|
+const main = require("../main");
|
|
|
+var tokenExceptionArr = [14, 15],
|
|
|
+ idExceptionArr = [2002, 2003, 2006],
|
|
|
+ ctx = "";
|
|
|
+Page({
|
|
|
+ data: {
|
|
|
+ curPage: 1,
|
|
|
+ cmsConfig: {},
|
|
|
+ skipConfig: {},
|
|
|
+ bizData: {},
|
|
|
+ token: "",
|
|
|
+ preClickBtnTime: 0,
|
|
|
+ isNotCamera: !0,
|
|
|
+ iKnowFuncs: [],
|
|
|
+ index_rule: !1,
|
|
|
+ show_about_dlg: !1,
|
|
|
+ indexChecked: !0,
|
|
|
+ indexDisableBtn: !1,
|
|
|
+ show_auth_panel: !1,
|
|
|
+ authInfo: "",
|
|
|
+ isInfinityDisplay: !1,
|
|
|
+ notice: {
|
|
|
+ titie: "",
|
|
|
+ content: ""
|
|
|
+ },
|
|
|
+ sms: {
|
|
|
+ isForbiddenSmsBtn: !0,
|
|
|
+ hintError: "",
|
|
|
+ isEnableSendSms: !1,
|
|
|
+ is60sGap: !1,
|
|
|
+ sendSmsTtitle: "获取验证码",
|
|
|
+ gapSec: 60,
|
|
|
+ phoneNum: "",
|
|
|
+ verifyCode: ""
|
|
|
+ },
|
|
|
+ ocr: {
|
|
|
+ isShowTakePhoto: !1,
|
|
|
+ isShowResult: !1,
|
|
|
+ isShowGuide: !0,
|
|
|
+ isShowPhotoPreView: !1,
|
|
|
+ isPhotoFromCamera: !1,
|
|
|
+ isFrontIdCard: !0,
|
|
|
+ hintError: "",
|
|
|
+ hintErrorResult: "",
|
|
|
+ isForbiddenManualBtn: !0,
|
|
|
+ isForbiddenResultBtn: !1,
|
|
|
+ idcard: "",
|
|
|
+ idname: "",
|
|
|
+ idaddress: "",
|
|
|
+ tempImagePath: "",
|
|
|
+ ocrTitle: "请拍摄身份证人像面",
|
|
|
+ verifycamFullScreen: "verifycamFullScreen",
|
|
|
+ isToolsShow: !0,
|
|
|
+ isEditTheOcrIsManualInput: !1,
|
|
|
+ isInfinityDisplayOcrTitle: "",
|
|
|
+ isInfinityDisplayOcrBottom: "",
|
|
|
+ isInfinityDisplayOcrMiddle: "",
|
|
|
+ frontMediaKey: "",
|
|
|
+ backendMediaKey: ""
|
|
|
+ },
|
|
|
+ livingbody: {
|
|
|
+ isShowGuide: !0,
|
|
|
+ isShowCamera: !1,
|
|
|
+ isShowProcess: !1,
|
|
|
+ isShowDialog: !1,
|
|
|
+ livingbodyNumber: "",
|
|
|
+ isNotPrepareOk: !0,
|
|
|
+ getCodeErrMsg: "",
|
|
|
+ livingbodyTitle: "请保持正脸对准框内",
|
|
|
+ isPrepare: !0,
|
|
|
+ curNumberStatus: ["verifyCurrentNumber", "", "", ""],
|
|
|
+ curNumber: ["·", "·", "·", "·"],
|
|
|
+ isActionSeqNormal: "",
|
|
|
+ livingbodyActionText: "",
|
|
|
+ livingbodySilentText: "",
|
|
|
+ uploadProcess: 0,
|
|
|
+ showTestVideo: !1,
|
|
|
+ video_preview: "",
|
|
|
+ video_src: "",
|
|
|
+ isInfinityDisplayHTTitle: "",
|
|
|
+ isInfinityDisplayHTBottom: "",
|
|
|
+ isInfinityDisplayHTMiddle: "",
|
|
|
+ isInfinityDisplayHTActionPre: "",
|
|
|
+ isInfinityDisplayHTNumberPre: "",
|
|
|
+ isInfinityDisplayHTActionHint: "",
|
|
|
+ isInfinityDisplayHTNumberHint: ""
|
|
|
+ },
|
|
|
+ failPage: {
|
|
|
+ is_modal_showing: !1
|
|
|
+ },
|
|
|
+ successPage: {},
|
|
|
+ failInfo: {}
|
|
|
+ },
|
|
|
+ onLoad: function(i) {
|
|
|
+ if (console.log(i), this.setData({
|
|
|
+ cmsConfig: wx.verify_CMSConfig,
|
|
|
+ token: wx.verify_TOKEN,
|
|
|
+ bizData: wx.verify_BizData
|
|
|
+ }), console.log("this.data.cmsConfig =", this.data.cmsConfig), console.log(
|
|
|
+ `this.data.token = ${this.data.token}`), console.log(
|
|
|
+ `wx.verifyBaseUrl = ${wx.verifyBaseUrl}`), console.log(this.data.cmsConfig.page.ocr
|
|
|
+ .backend), BASE_URL = wx.verifyBaseUrl, wx.setNavigationBarTitle({
|
|
|
+ title: this.data.cmsConfig.justForJumpVer.title,
|
|
|
+ success: function() {
|
|
|
+ console.log("setNavigationBarTitle success!")
|
|
|
+ },
|
|
|
+ fail: function(i) {
|
|
|
+ console.log("setNavigationBarTitle failure!"), console.log(i)
|
|
|
+ }
|
|
|
+ }), "true" === i.isNotice) return console.log("is notice"), this.setData({
|
|
|
+ curPage: 7
|
|
|
+ }), void this.getTheNotice();
|
|
|
+ console.log("is not notice"), this.data.cmsConfig.isGetUserLocation && this.getUserLocation(), wx
|
|
|
+ .getSystemInfo({
|
|
|
+ success: i => {
|
|
|
+ console.log(i);
|
|
|
+ var o = i.screenHeight / i.screenWidth >= 2;
|
|
|
+ i.screenHeight > 700 && o && this.setData({
|
|
|
+ isInfinityDisplay: !0,
|
|
|
+ "ocr.isInfinityDisplayOcrBottom": "isInfinityDisplayOcrBottom",
|
|
|
+ "ocr.isInfinityDisplayOcrMiddle": "isInfinityDisplayOcrMiddle",
|
|
|
+ "ocr.isInfinityDisplayOcrTitle": "isInfinityDisplayOcrTitle",
|
|
|
+ "livingbody.isInfinityDisplayHTBottom": "isInfinityDisplayHTBottom",
|
|
|
+ "livingbody.isInfinityDisplayHTMiddle": "isInfinityDisplayHTMiddle",
|
|
|
+ "livingbody.isInfinityDisplayHTTitle": "isInfinityDisplayHTTitle",
|
|
|
+ "livingbody.isInfinityDisplayHTActionPre": "isInfinityDisplayHTActionPre",
|
|
|
+ "livingbody.isInfinityDisplayHTNumberPre": "isInfinityDisplayHTNumberPre",
|
|
|
+ "livingbody.isInfinityDisplayHTActionHint": "isInfinityDisplayHTActionHint",
|
|
|
+ "livingbody.isInfinityDisplayHTNumberHint": "isInfinityDisplayHTNumberHint"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getTheNotice() {
|
|
|
+ var i = {
|
|
|
+ url: BASE_URL + "notices.php",
|
|
|
+ data: {
|
|
|
+ appid: this.data.bizData.appid
|
|
|
+ }
|
|
|
+ };
|
|
|
+ util.request(i, i => {
|
|
|
+ if (console.log(i), 0 === i.ErrorCode) {
|
|
|
+ var o = JSON.parse(i.Data);
|
|
|
+ this.setData({
|
|
|
+ "notice.content": o[0].content,
|
|
|
+ "notice.title": o[0].title
|
|
|
+ })
|
|
|
+ } else wx.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: "获取公告信息失败," + i.ErrorMsg,
|
|
|
+ confirmText: "重试",
|
|
|
+ showCancel: !1,
|
|
|
+ confirmColor: "#2d72f1",
|
|
|
+ success: i => {
|
|
|
+ i.confirm && this.getTheNotice()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onReady: function() {},
|
|
|
+ onShow: function() {
|
|
|
+ this.data.show_auth_panel && setTimeout(() => {
|
|
|
+ this.isAuthOk()
|
|
|
+ }, 500)
|
|
|
+ },
|
|
|
+ onHide: function() {},
|
|
|
+ onUnload: function() {},
|
|
|
+ onPullDownRefresh: function() {},
|
|
|
+ onReachBottom: function() {},
|
|
|
+ onShareAppMessage: function() {},
|
|
|
+ showErrorToast: function(i) {
|
|
|
+ if (console.log("showErrorToast", i), 3 === this.data.curPage) {
|
|
|
+ if (this.data.ocr.isShowResult) return void this.setData({
|
|
|
+ "ocr.hintErrorResult": i.error_msg
|
|
|
+ });
|
|
|
+ this.data.ocr.isShowTakePhoto && 101 !== i.ErrorCode && -107 !== i.ErrorCode && this.data
|
|
|
+ .iKnowFuncs.push(() => {
|
|
|
+ this.reTakePhoto()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ showErrorMsg: !0,
|
|
|
+ err: i
|
|
|
+ })
|
|
|
+ },
|
|
|
+ switchDialog: function() {
|
|
|
+ if (this.setData({
|
|
|
+ showErrorMsg: !this.data.showErrorMsg
|
|
|
+ }), 1 === this.data.iKnowFuncs.length) {
|
|
|
+ this.data.iKnowFuncs.pop()()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ checkNetWork: function(i) {
|
|
|
+ var o = this;
|
|
|
+ wx.getNetworkType({
|
|
|
+ success: function(e) {
|
|
|
+ "none" !== e.networkType ? i() : (console.log("Network is none"), o
|
|
|
+ .showErrorToast({
|
|
|
+ ErrorCode: 101,
|
|
|
+ ErrorMsg: "网络异常,请稍后重试"
|
|
|
+ }))
|
|
|
+ },
|
|
|
+ fail: function(i) {
|
|
|
+ console.log("Get Network exception"), o.showErrorToast({
|
|
|
+ ErrorCode: 101,
|
|
|
+ ErrorMsg: "网络异常,请稍后重试"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ checkRecordNetworkOk: function(i, o) {
|
|
|
+ wx.getNetworkType({
|
|
|
+ success: function(e) {
|
|
|
+ "none" !== e.networkType ? (console.log("network is OK"), i(e.networkType)) : (
|
|
|
+ console.log("Network is none"), o({
|
|
|
+ ErrorCode: 101,
|
|
|
+ ErrorMsg: "网络异常,请稍后再试"
|
|
|
+ }))
|
|
|
+ },
|
|
|
+ fail: function(i) {
|
|
|
+ console.log("Get Network exception"), o({
|
|
|
+ ErrorCode: 101,
|
|
|
+ ErrorMsg: "网络异常,请稍后再试"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ returnAllCheckNetWork(i) {
|
|
|
+ wx.getNetworkType({
|
|
|
+ success: function(o) {
|
|
|
+ i(o.networkType)
|
|
|
+ },
|
|
|
+ fail: function(o) {
|
|
|
+ i("none")
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ isNotAllowClick: function() {
|
|
|
+ var i = +new Date;
|
|
|
+ return i - this.data.preClickBtnTime < 1e3 ? (console.log("Click button gap < 1s, not allow exec"),
|
|
|
+ !0) : (this.data.preClickBtnTime = i, console.log("Click button gap > 1s, allow exec"), !1)
|
|
|
+ },
|
|
|
+ exitVerify(i) {
|
|
|
+ i.BizToken = this.data.token, i.ErrorCode = 0, this.data.bizData.endPath ? wx.verifySuccessFunc(i) : wx
|
|
|
+ .navigateBack({
|
|
|
+ success: function(o) {
|
|
|
+ wx.verifySuccessFunc(i)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ exitVerifyFail(i) {
|
|
|
+ i.BizToken = this.data.token, this.data.bizData.endPath ? -999 === i.ErrorCode ? wx.navigateBack({
|
|
|
+ success: () => {}
|
|
|
+ }) : (console.log("exitVerifyFail: this.data.bizData.endPath", this.data.bizData.endPath), wx
|
|
|
+ .verifyFailureFunc(i)) : wx.navigateBack({
|
|
|
+ success: () => {
|
|
|
+ -999 !== i.ErrorCode && wx.verifyFailureFunc(i)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ switchIndexRule: function() {
|
|
|
+ this.setData({
|
|
|
+ index_rule: !this.data.index_rule
|
|
|
+ })
|
|
|
+ },
|
|
|
+ switchAboutDlg: function() {
|
|
|
+ this.setData({
|
|
|
+ show_about_dlg: !this.data.show_about_dlg
|
|
|
+ })
|
|
|
+ },
|
|
|
+ checkboxChange(i) {
|
|
|
+ this.setData({
|
|
|
+ indexDisableBtn: !this.data.indexDisableBtn
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getUserLocation: function() {
|
|
|
+ var i = this;
|
|
|
+ wx.getLocation({
|
|
|
+ type: "wgs84",
|
|
|
+ success: function(o) {
|
|
|
+ console.log("Get the location success!", o);
|
|
|
+ var e = {
|
|
|
+ url: BASE_URL + `/api/auth/saveLocation?BizToken=${i.data.token}`,
|
|
|
+ data: {
|
|
|
+ Longitude: o.longitude,
|
|
|
+ Latitude: o.latitude
|
|
|
+ }
|
|
|
+ };
|
|
|
+ util.request(e, function(o) {
|
|
|
+ if (0 === o.ErrorCode) console.log("Report location success!");
|
|
|
+ else {
|
|
|
+ if (console.log(o.ErrorCode), tokenExceptionArr.includes(o
|
|
|
+ .ErrorCode)) return void i.exitVerifyFail({
|
|
|
+ ErrorCode: o.ErrorCode,
|
|
|
+ ErrorMsg: o.ErrorMsg
|
|
|
+ });
|
|
|
+ i.showErrorToast(o)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ fail: function(i) {
|
|
|
+ console.log("Get location failure!"), console.log(i)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ startNativeVerify: function() {
|
|
|
+ console.log("直接调用微信原生接口");
|
|
|
+ let i = this.data.cmsConfig,
|
|
|
+ o = i.Common.WxVerifyTypeIsVideo,
|
|
|
+ e = i.Common.WxCheckAliveType;
|
|
|
+ util.startNativeVerify(o, e, BASE_URL, this.data.token, this.exitVerifyFail, i => {
|
|
|
+ let o = {
|
|
|
+ BizToken: this.data.token,
|
|
|
+ ErrorCode: i.ErrorCode,
|
|
|
+ ErrorMsg: i.ErrorMsg
|
|
|
+ };
|
|
|
+ 0 === i.ErrorCode ? this.exitVerify(o) : this.exitVerifyFail(o)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ indexToNext: async function() {
|
|
|
+ if (!this.isNotAllowClick()) {
|
|
|
+ var i = this;
|
|
|
+ this.checkNetWork(function() {
|
|
|
+ var o = i.data.cmsConfig;
|
|
|
+ if (!i.data.cmsConfig.Common.IsWxNative || i.data.cmsConfig.Common.Flow.includes(
|
|
|
+ "Ocr")) {
|
|
|
+ var e = 2;
|
|
|
+ o.isHideSmsPage && (e = o.isHideOcrPage ? 4 : 3), i.setData({
|
|
|
+ curPage: e
|
|
|
+ }), (4 === e || 3 === e && !i.data.cmsConfig.page.ocr.isManualInput) && i
|
|
|
+ .preLivingbodyExec()
|
|
|
+ } else i.startNativeVerify()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ phoneNumChanged(i) {
|
|
|
+ this.setData({
|
|
|
+ "sms.hintError": ""
|
|
|
+ });
|
|
|
+ var o = i.detail.value;
|
|
|
+ this.data.sms.phoneNum = o;
|
|
|
+ var e = util.validate(o, "sms_phone");
|
|
|
+ console.log(`isPhoneOk: ${e}`), e && !this.data.sms.is60sGap && this.setData({
|
|
|
+ "sms.isEnableSendSms": !0
|
|
|
+ }), e || this.setData({
|
|
|
+ "sms.isEnableSendSms": !1
|
|
|
+ });
|
|
|
+ var t = util.validate(this.data.sms.verifyCode, "sms_verifyCode");
|
|
|
+ e && t ? this.setData({
|
|
|
+ "sms.isForbiddenSmsBtn": !1
|
|
|
+ }) : this.setData({
|
|
|
+ "sms.isForbiddenSmsBtn": !0
|
|
|
+ }), console.log(`isEnableSendSms: ${this.data.sms.isEnableSendSms}`)
|
|
|
+ },
|
|
|
+ sendVerifyCodeReq: function() {
|
|
|
+ if (!this.isNotAllowClick()) {
|
|
|
+ var i = this;
|
|
|
+ this.checkNetWork(function() {
|
|
|
+ let o = {
|
|
|
+ url: `${BASE_URL}/api/common/sendSmsCode?BizToken=${i.data.token}`,
|
|
|
+ data: {
|
|
|
+ PhoneNum: i.data.sms.phoneNum
|
|
|
+ }
|
|
|
+ };
|
|
|
+ wx.showLoading({
|
|
|
+ title: "短信发送中...",
|
|
|
+ mask: !0
|
|
|
+ }), util.request(o, function(o) {
|
|
|
+ if (wx.hideLoading(), 0 === o.ErrorCode) {
|
|
|
+ i.setData({
|
|
|
+ "sms.is60sGap": !0,
|
|
|
+ "sms.isEnableSendSms": !1,
|
|
|
+ "sms.sendSmsTtitle": "重新发送"
|
|
|
+ });
|
|
|
+ var e = setInterval(function() {
|
|
|
+ i.data.sms.gapSec <= 1 && (clearInterval(e), i.setData({
|
|
|
+ "sms.is60sGap": !1,
|
|
|
+ "sms.gapSec": 60
|
|
|
+ }), util.validate(i.data.sms.phoneNum,
|
|
|
+ "sms_phone") && i.setData({
|
|
|
+ "sms.isEnableSendSms": !0
|
|
|
+ })), i.setData({
|
|
|
+ "sms.gapSec": i.data.sms.gapSec - 1
|
|
|
+ })
|
|
|
+ }, 1e3)
|
|
|
+ } else {
|
|
|
+ if (tokenExceptionArr.includes(o.ErrorCode)) return void i
|
|
|
+ .exitVerifyFail(o);
|
|
|
+ i.setData({
|
|
|
+ "sms.hintError": o.ErrorMsg
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ verifyCodeChanged(i) {
|
|
|
+ this.setData({
|
|
|
+ "sms.hintError": ""
|
|
|
+ }), this.data.sms.verifyCode = i.detail.value;
|
|
|
+ var o = util.validate(this.data.sms.verifyCode, "sms_verifyCode");
|
|
|
+ util.validate(this.data.sms.phoneNum, "sms_phone") && o ? this.setData({
|
|
|
+ "sms.isForbiddenSmsBtn": !1
|
|
|
+ }) : this.setData({
|
|
|
+ "sms.isForbiddenSmsBtn": !0
|
|
|
+ })
|
|
|
+ },
|
|
|
+ smsToNext() {
|
|
|
+ if (!this.isNotAllowClick()) {
|
|
|
+ var i = this;
|
|
|
+ this.checkNetWork(function() {
|
|
|
+ console.log(i.data.sms.phoneNum + " | " + i.data.sms.verifyCode);
|
|
|
+ let o = {
|
|
|
+ url: `${BASE_URL}/api/common/verifySmsCode?BizToken=${i.data.token}`,
|
|
|
+ data: {
|
|
|
+ PhoneNum: i.data.sms.phoneNum,
|
|
|
+ VerifyCode: i.data.sms.verifyCode
|
|
|
+ }
|
|
|
+ };
|
|
|
+ wx.showLoading({
|
|
|
+ title: "加载中...",
|
|
|
+ mask: !0
|
|
|
+ }), util.request(o, function(o) {
|
|
|
+ if (wx.hideLoading(), 0 === o.ErrorCode) {
|
|
|
+ var e = i.data.cmsConfig;
|
|
|
+ if (e.isJustSms) i.exitVerify({});
|
|
|
+ else {
|
|
|
+ var t = 3;
|
|
|
+ e.isHideOcrPage && (t = 4), i.setData({
|
|
|
+ curPage: t
|
|
|
+ }), (4 === t || 3 === t && !i.data.cmsConfig.page.ocr
|
|
|
+ .isManualInput) && i.preLivingbodyExec()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (tokenExceptionArr.includes(o.ErrorCode)) return void i
|
|
|
+ .exitVerifyFail(o);
|
|
|
+ i.setData({
|
|
|
+ "sms.hintError": o.ErrorMsg
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ idcartManualInputChanged(i) {
|
|
|
+ var o = i.detail.value;
|
|
|
+ this.data.ocr.idcard = o, this.manualInputChanged()
|
|
|
+ },
|
|
|
+ idnameManualInputChanged(i) {
|
|
|
+ var o = i.detail.value;
|
|
|
+ this.data.ocr.idname = o, this.manualInputChanged()
|
|
|
+ },
|
|
|
+ manualInputChanged(i) {
|
|
|
+ this.setData({
|
|
|
+ "ocr.hintError": ""
|
|
|
+ });
|
|
|
+ var o = util.validate(this.data.ocr.idcard, "idcard"),
|
|
|
+ e = util.validate(this.data.ocr.idname, "idname"),
|
|
|
+ t = !0;
|
|
|
+ o || 18 !== this.data.ocr.idcard.length ? o && (e && (t = !1), this.setData({
|
|
|
+ "ocr.isForbiddenManualBtn": t
|
|
|
+ })) : this.setData({
|
|
|
+ "ocr.hintError": "身份证号有误,请确认后重新输入"
|
|
|
+ })
|
|
|
+ },
|
|
|
+ manualInputGoNext() {
|
|
|
+ this.ocrCommonInputGoNext(!0)
|
|
|
+ },
|
|
|
+ ocrCommonInputGoNext(i) {
|
|
|
+ var o = this;
|
|
|
+ this.checkNetWork(function() {
|
|
|
+ o.data.cmsConfig;
|
|
|
+ wx.showLoading({
|
|
|
+ title: "校验身份信息中...",
|
|
|
+ mask: !0
|
|
|
+ });
|
|
|
+ let e = 0;
|
|
|
+ "android" === wx.verifySysInfo.platform && (e = 300), setTimeout(() => {
|
|
|
+ var e = {
|
|
|
+ url: `${BASE_URL}/api/ocr/updateidinfo?BizToken=${o.data.token}`,
|
|
|
+ data: {
|
|
|
+ Name: o.data.ocr.idname,
|
|
|
+ IdCard: o.data.ocr.idcard
|
|
|
+ }
|
|
|
+ };
|
|
|
+ o.data.ocr.idaddress && (e.data.Address = o.data.ocr.idaddress), util.request(e,
|
|
|
+ function(e) {
|
|
|
+ if (wx.hideLoading(), 0 !== e.ErrorCode) {
|
|
|
+ if (tokenExceptionArr.includes(e.ErrorCode)) return void o
|
|
|
+ .exitVerifyFail(e);
|
|
|
+ let t = {
|
|
|
+ "ocr.hintError": e.ErrorMsg
|
|
|
+ };
|
|
|
+ return i || (t = {
|
|
|
+ "ocr.hintErrorResult": e.ErrorMsg
|
|
|
+ }), void o.setData(t)
|
|
|
+ }
|
|
|
+ o.ocrGoNext(i)
|
|
|
+ })
|
|
|
+ }, e)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ ocrGoNext(i) {
|
|
|
+ var o = this;
|
|
|
+ if (o.data.cmsConfig.page.ocr.isCheckIDInfo) {
|
|
|
+ let e = {
|
|
|
+ url: `${BASE_URL}/api/ocr/checkidinfo?BizToken=${this.data.token}`,
|
|
|
+ data: {
|
|
|
+ Name: this.data.ocr.idname,
|
|
|
+ IdCard: this.data.ocr.idcard
|
|
|
+ }
|
|
|
+ };
|
|
|
+ util.request(e, e => {
|
|
|
+ if (0 !== e.ErrorCode) {
|
|
|
+ if (tokenExceptionArr.includes(e.ErrorCode)) return void o.exitVerifyFail(e);
|
|
|
+ let t = {
|
|
|
+ "ocr.hintError": e.ErrorMsg
|
|
|
+ };
|
|
|
+ return console.log(e.ErrorMsg), i || (t = {
|
|
|
+ "ocr.hintErrorResult": e.ErrorMsg
|
|
|
+ }), void o.setData(t)
|
|
|
+ }
|
|
|
+ this.ocrGoNextEnd()
|
|
|
+ })
|
|
|
+ } else this.ocrGoNextEnd()
|
|
|
+ },
|
|
|
+ ocrGoNextEnd() {
|
|
|
+ if (this.data.cmsConfig.isJustOcr) this.exitVerify({
|
|
|
+ id_name: this.data.ocr.idname,
|
|
|
+ id_number: this.data.ocr.idcard,
|
|
|
+ id_address: this.data.ocr.idaddress
|
|
|
+ });
|
|
|
+ else {
|
|
|
+ if (this.data.cmsConfig.Common.IsWxNative) return void this.startNativeVerify();
|
|
|
+ this.setData({
|
|
|
+ curPage: 4
|
|
|
+ }), this.preLivingbodyExec()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ manualInputTakePhone() {
|
|
|
+ this.setData({
|
|
|
+ "cmsConfig.page.ocr.isManualInput": !1,
|
|
|
+ "ocr.isEditTheOcrIsManualInput": !0
|
|
|
+ })
|
|
|
+ },
|
|
|
+ btnclick: function() {
|
|
|
+ var i = this.data.cmsConfig.page.ocr.backend;
|
|
|
+ console.log(i)
|
|
|
+ },
|
|
|
+ ocrStartTakePhoto() {
|
|
|
+ var i = this;
|
|
|
+ this.checkNetWork(function() {
|
|
|
+ i.setData({
|
|
|
+ "ocr.isShowTakePhoto": !0,
|
|
|
+ isNotCamera: !1
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ takePhotoWithCamera() {
|
|
|
+ var i = this;
|
|
|
+ wx.createCameraContext().takePhoto({
|
|
|
+ quality: "noraml",
|
|
|
+ success: o => {
|
|
|
+ console.log(o.tempImagePath), this.setData({
|
|
|
+ "ocr.tempImagePath": o.tempImagePath,
|
|
|
+ "ocr.isShowPhotoPreView": !0,
|
|
|
+ "ocr.ocrTitle": "照片预览",
|
|
|
+ "ocr.isPhotoFromCamera": !0
|
|
|
+ }), console.log(i.data.ocr.tempImagePath)
|
|
|
+ },
|
|
|
+ fail: i => {
|
|
|
+ wx.showToast({
|
|
|
+ title: "takePhoto function exception",
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ chooseImg() {
|
|
|
+ var i = this;
|
|
|
+ wx.chooseImage({
|
|
|
+ count: 1,
|
|
|
+ sizeType: ["compressed"],
|
|
|
+ sourceType: ["album"],
|
|
|
+ success: function(o) {
|
|
|
+ var e = o.tempFilePaths;
|
|
|
+ i.setData({
|
|
|
+ "ocr.tempImagePath": e[0],
|
|
|
+ "ocr.isShowPhotoPreView": !0,
|
|
|
+ "ocr.ocrTitle": "照片预览",
|
|
|
+ "ocr.isPhotoFromCamera": !1
|
|
|
+ }), i.setData({
|
|
|
+ "ocr.isToolsShow": !1
|
|
|
+ }), i.setData({
|
|
|
+ "ocr.isToolsShow": !0
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ reTakePhoto() {
|
|
|
+ let i = this.data.ocr.isFrontIdCard ? "请拍摄身份证人像面" : "请拍摄身份证国徽面";
|
|
|
+ this.setData({
|
|
|
+ "ocr.tempImagePath": "",
|
|
|
+ "ocr.isShowPhotoPreView": !1,
|
|
|
+ "ocr.ocrTitle": i
|
|
|
+ })
|
|
|
+ },
|
|
|
+ startUploadAndOcr() {
|
|
|
+ var i = this;
|
|
|
+ this.checkNetWork(() => {
|
|
|
+ wx.showLoading({
|
|
|
+ title: "系统识别中",
|
|
|
+ mask: !0
|
|
|
+ });
|
|
|
+ let o = {
|
|
|
+ file: i.data.ocr.tempImagePath
|
|
|
+ };
|
|
|
+ console.log("upfile data", o), wx.uploadFile({
|
|
|
+ url: `${BASE_URL}/api/common/upLoadWxAppFile?BizToken=${i.data.token}`,
|
|
|
+ filePath: this.data.ocr.tempImagePath,
|
|
|
+ name: "file",
|
|
|
+ formData: o,
|
|
|
+ success: o => {
|
|
|
+ if (console.log("uploadFile | ", o), 200 === o.statusCode) {
|
|
|
+ let e = JSON.parse(o.data);
|
|
|
+ if (0 === e.ErrorCode) {
|
|
|
+ let o = {
|
|
|
+ url: `${BASE_URL}/api/ocr/ocrinfo?BizToken=${this.data.token}`,
|
|
|
+ data: {
|
|
|
+ MediaKey: e.Data.MediaKey,
|
|
|
+ PicType: this.data.ocr.isFrontIdCard ? 0 : 1
|
|
|
+ }
|
|
|
+ };
|
|
|
+ console.log("ocrinfo data", o), util.request(o, o => {
|
|
|
+ if (wx.hideLoading(), 0 === o.ErrorCode) {
|
|
|
+ if (this.data.ocr.isFrontIdCard && this
|
|
|
+ .setData({
|
|
|
+ "ocr.idcard": o.Data.id,
|
|
|
+ "ocr.idname": o.Data.name,
|
|
|
+ "ocr.idaddress": o.Data.address
|
|
|
+ }), this.data.ocr.isFrontIdCard && this.data
|
|
|
+ .cmsConfig.page.ocr.backend)
|
|
|
+ return void this.setData({
|
|
|
+ "ocr.tempImagePath": "",
|
|
|
+ "ocr.isShowPhotoPreView": !1,
|
|
|
+ "ocr.ocrTitle": "请拍摄身份证国徽面",
|
|
|
+ "ocr.isFrontIdCard": !1
|
|
|
+ });
|
|
|
+ this.setData({
|
|
|
+ "ocr.isShowResult": !0,
|
|
|
+ isNotCamera: !0,
|
|
|
+ "ocr.verifycamFullScreen": "verifycamFullScreen"
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ if (tokenExceptionArr.includes(o.ErrorCode))
|
|
|
+ return void i.exitVerifyFail(o);
|
|
|
+ this.showErrorToast(o)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else wx.hideLoading(), this.showErrorToast({
|
|
|
+ ErrorCode: 101,
|
|
|
+ ErrorMsg: e.ErrorMsg
|
|
|
+ })
|
|
|
+ } else wx.hideLoading(), this.showErrorToast({
|
|
|
+ ErrorCode: 101,
|
|
|
+ ErrorMsg: "上传图片失败"
|
|
|
+ })
|
|
|
+ },
|
|
|
+ fail: i => {
|
|
|
+ console.log("upload img fail", i), wx.hideLoading(), this
|
|
|
+ .showErrorToast({
|
|
|
+ ErrorCode: 101,
|
|
|
+ ErrorMsg: "上传图片失败"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ idnameInputChanged(i) {
|
|
|
+ this.data.ocr.idname = i.detail.value, this.ocrCommonInputCheck()
|
|
|
+ },
|
|
|
+ idcartInputChanged(i) {
|
|
|
+ this.data.ocr.idcard = i.detail.value, this.ocrCommonInputCheck()
|
|
|
+ },
|
|
|
+ idaddressInputChanged(i) {
|
|
|
+ this.data.ocr.idaddress = i.detail.value, this.ocrCommonInputCheck()
|
|
|
+ },
|
|
|
+ ocrCommonInputCheck() {
|
|
|
+ this.setData({
|
|
|
+ "ocr.hintErrorResult": ""
|
|
|
+ });
|
|
|
+ var i = util.validate(this.data.ocr.idcard, "idcard"),
|
|
|
+ o = util.validate(this.data.ocr.idname, "idname"),
|
|
|
+ e = util.validate(this.data.ocr.idaddress, "idaddress"),
|
|
|
+ t = !0;
|
|
|
+ i && o && (t = !1), this.data.cmsConfig.page.ocr.isAddress && !e && (t = !0), this.setData({
|
|
|
+ "ocr.isForbiddenResultBtn": t
|
|
|
+ })
|
|
|
+ },
|
|
|
+ ocrInputGoNext(i) {
|
|
|
+ if (util.validate(this.data.ocr.idcard, "idcard"))
|
|
|
+ if (util.validate(this.data.ocr.idname, "idname")) {
|
|
|
+ if (this.data.cmsConfig.page.ocr.isAddress)
|
|
|
+ if (!util.validate(this.data.ocr.idaddress, "idaddress")) return void this.setData({
|
|
|
+ "ocr.hintErrorResult": "住址格式错误"
|
|
|
+ });
|
|
|
+ console.log("go next"), this.ocrCommonInputGoNext(!1)
|
|
|
+ } else this.setData({
|
|
|
+ "ocr.hintErrorResult": "姓名格式错误"
|
|
|
+ });
|
|
|
+ else this.setData({
|
|
|
+ "ocr.hintErrorResult": "身份证号格式错误"
|
|
|
+ })
|
|
|
+ },
|
|
|
+ switchLivingbodyDialog(i) {
|
|
|
+ this.setData({
|
|
|
+ "livingbody.isShowDialog": !this.data.livingbody.isShowDialog
|
|
|
+ })
|
|
|
+ },
|
|
|
+ preLivingbodyExec() {
|
|
|
+ var i = this;
|
|
|
+ if (4 !== this.data.curPage || 0 !== this.data.cmsConfig.livingbodyType && 1 !== this.data.cmsConfig
|
|
|
+ .livingbodyType) i.getAuth();
|
|
|
+ else {
|
|
|
+ let o = {
|
|
|
+ url: `${BASE_URL}/api/liveness/lipcode?BizToken=${i.data.token}`,
|
|
|
+ data: {}
|
|
|
+ };
|
|
|
+ 1 === i.data.cmsConfig.livingbodyType && (o.url =
|
|
|
+ `${BASE_URL}/api/liveness/actioncode?BizToken=${i.data.token}`), util.request(o, o => {
|
|
|
+ if (0 === o.ErrorCode) {
|
|
|
+ console.log("Got the LipCode:" + o.Data.LipCode), console.log(
|
|
|
+ "Got the ActionCode:" + o.Data.ActionCode);
|
|
|
+ var e = {
|
|
|
+ "livingbody.livingbodyNumber": o.Data.LipCode
|
|
|
+ };
|
|
|
+ 1 === i.data.cmsConfig.livingbodyType && (e = {
|
|
|
+ "livingbody.isActionSeqNormal": "21" === o.Data.ActionCode.join("")
|
|
|
+ }), this.setData(e), i.getAuth()
|
|
|
+ } else {
|
|
|
+ if (tokenExceptionArr.includes(o.ErrorCode)) return void i.exitVerifyFail(o);
|
|
|
+ this.setData({
|
|
|
+ "livingbody.getCodeErrMsg": o.ErrorMsg
|
|
|
+ }), i.getAuth()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getAuth: function() {
|
|
|
+ let i = this;
|
|
|
+ wx.authorize({
|
|
|
+ scope: "scope.camera",
|
|
|
+ success() {},
|
|
|
+ fail: function() {
|
|
|
+ console.log("您未允许使用摄像头权限")
|
|
|
+ },
|
|
|
+ complete: function() {
|
|
|
+ 4 === i.data.curPage ? wx.authorize({
|
|
|
+ scope: "scope.record",
|
|
|
+ success() {},
|
|
|
+ fail: function() {
|
|
|
+ console.log("您未允许使用录音权限")
|
|
|
+ },
|
|
|
+ complete: function() {
|
|
|
+ console.log("开始判断是否有权限"), i.isAuthOk()
|
|
|
+ }
|
|
|
+ }) : i.isAuthOk()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ isAuthOk: function() {
|
|
|
+ var i = this;
|
|
|
+ wx.getSetting({
|
|
|
+ success(o) {
|
|
|
+ console.log("获取授权信息成功");
|
|
|
+ var e = o.authSetting["scope.record"],
|
|
|
+ t = o.authSetting["scope.camera"];
|
|
|
+ if (4 === i.data.curPage)
|
|
|
+ if (e && t) i.setData({
|
|
|
+ show_auth_panel: !1,
|
|
|
+ authInfo: "摄像头、录音功能都已授权"
|
|
|
+ }), i.authOkToDo(), console.log("摄像头、录音功能都已授权");
|
|
|
+ else {
|
|
|
+ var a = "";
|
|
|
+ t || (a = "摄像头 "), e || (a += "录音功能"), a += "还未授权", console.log(a), i
|
|
|
+ .setData({
|
|
|
+ show_auth_panel: !0,
|
|
|
+ authInfo: a
|
|
|
+ })
|
|
|
+ }
|
|
|
+ else t ? i.setData({
|
|
|
+ show_auth_panel: !1,
|
|
|
+ authInfo: "摄像头已授权"
|
|
|
+ }) : i.setData({
|
|
|
+ show_auth_panel: !0,
|
|
|
+ authInfo: "摄像头未授权"
|
|
|
+ })
|
|
|
+ },
|
|
|
+ fail: function(i) {
|
|
|
+ console.log("获取收取信息失败", i)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ authOkToDo() {
|
|
|
+ console.log(this.data.livingbody.livingbodyNumber, this.data.cmsConfig.livingbodyType), 0 === this.data
|
|
|
+ .cmsConfig.livingbodyType && "" === this.data.livingbody.livingbodyNumber || 1 === this.data
|
|
|
+ .cmsConfig.livingbodyType && "" === this.data.livingbody.isActionSeqNormal ? this
|
|
|
+ .theLivingBodyNumberMustBeOk() : (this.livingbodyAutoShowDialog(), this.setData({
|
|
|
+ "livingbody.isNotPrepareOk": !1
|
|
|
+ }))
|
|
|
+ },
|
|
|
+ theLivingBodyNumberMustBeOk() {
|
|
|
+ var i = this;
|
|
|
+ wx.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: "获取code失败," + i.data.livingbody.getCodeErrMsg,
|
|
|
+ showCancel: !1,
|
|
|
+ confirmText: "重新获取",
|
|
|
+ confirmColor: "#2d72f1",
|
|
|
+ success: function(o) {
|
|
|
+ if (o.confirm) {
|
|
|
+ console.log("开始重新获取"), wx.showLoading({
|
|
|
+ title: "重新获取中...",
|
|
|
+ mask: !0
|
|
|
+ });
|
|
|
+ let o = {
|
|
|
+ url: `${BASE_URL}/api/liveness/lipcode?BizToken=${i.data.token}`,
|
|
|
+ data: {}
|
|
|
+ };
|
|
|
+ 1 === i.data.cmsConfig.livingbodyType && (o.url =
|
|
|
+ `${BASE_URL}/api/liveness/actioncode?BizToken=${i.data.token}`), util
|
|
|
+ .request(o, o => {
|
|
|
+ if (wx.hideLoading(), 0 === o.ErrorCode) console.log(
|
|
|
+ "Got the LipCode:" + o.Data.LipCode), console.log(
|
|
|
+ "Got the ActionCode:" + o.Data.ActionCode), i
|
|
|
+ .livingbodyAutoShowDialog(), 1 === i.data.cmsConfig
|
|
|
+ .livingbodyType ? i.setData({
|
|
|
+ "livingbody.isActionSeqNormal": "21" === o.Data
|
|
|
+ .ActionCode.join(""),
|
|
|
+ "livingbody.isNotPrepareOk": !1
|
|
|
+ }) : i.setData({
|
|
|
+ "livingbody.livingbodyNumber": o.Data.LipCode,
|
|
|
+ "livingbody.isNotPrepareOk": !1
|
|
|
+ });
|
|
|
+ else {
|
|
|
+ if (tokenExceptionArr.includes(o.ErrorCode)) return void i
|
|
|
+ .exitVerifyFail(o);
|
|
|
+ i.setData({
|
|
|
+ "livingbody.getCodeErrMsg": o.ErrorMsg
|
|
|
+ }), i.theLivingBodyNumberMustBeOk()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ livingbodyAutoShowDialog() {
|
|
|
+ let i = wx.getStorageSync("isAlreadyShowVideoRule");
|
|
|
+ console.log("isAlreadyShowVideoRule:" + i), i || (this.setData({
|
|
|
+ "livingbody.isShowDialog": !this.data.livingbody.isShowDialog
|
|
|
+ }), wx.setStorage({
|
|
|
+ key: "isAlreadyShowVideoRule",
|
|
|
+ data: "true"
|
|
|
+ }))
|
|
|
+ },
|
|
|
+ livingbodyStartToRecord() {
|
|
|
+ this.checkNetWork(() => {
|
|
|
+ console.log("go"), this.setData({
|
|
|
+ "livingbody.isShowCamera": !0,
|
|
|
+ isNotCamera: !1
|
|
|
+ }), setTimeout(() => {
|
|
|
+ this.checkRecordNetworkOk(() => {
|
|
|
+ ctx = wx.createCameraContext(), console.log("start startRecord", +
|
|
|
+ new Date), ctx.startRecord({
|
|
|
+ success: i => {
|
|
|
+ console.log("startRecord success", +new Date);
|
|
|
+ let o = this.data.cmsConfig.livingbodyType,
|
|
|
+ e = {
|
|
|
+ "livingbody.isPrepare": !1
|
|
|
+ },
|
|
|
+ t = 0,
|
|
|
+ a = 1200,
|
|
|
+ s = 1e3,
|
|
|
+ r = this.data.livingbody.livingbodyNumber +
|
|
|
+ "",
|
|
|
+ n = ["", "", "", ""],
|
|
|
+ d = ["·", "·", "·", "·"],
|
|
|
+ l = this.data.cmsConfig.page.livingbody
|
|
|
+ .silentRecordTime - 1;
|
|
|
+ if (0 === o) d[t] = r[t], n[t] =
|
|
|
+ "verifyCurrentNumber", e[
|
|
|
+ "livingbody.livingbodyTitle"] =
|
|
|
+ "请大声朗读以下数字", e[
|
|
|
+ "livingbody.curNumberStatus"] = n, e[
|
|
|
+ "livingbody.curNumber"] = d, s = 1500;
|
|
|
+ else if (1 === o) {
|
|
|
+ let i = this.data.livingbody
|
|
|
+ .isActionSeqNormal;
|
|
|
+ e["livingbody.livingbodyTitle"] = "请做以下动作",
|
|
|
+ e["livingbody.livingbodyActionText"] =
|
|
|
+ i ? "眨眨眼" : "张张嘴", a = 2e3
|
|
|
+ } else e["livingbody.livingbodySilentText"] = l,
|
|
|
+ a = 1e3;
|
|
|
+ this.setData(e);
|
|
|
+ let c = setInterval(() => {
|
|
|
+ if (0 === o) {
|
|
|
+ if (3 === t)
|
|
|
+ return clearInterval(c),
|
|
|
+ void this
|
|
|
+ .stopRecordAndProcess(s);
|
|
|
+ d[++t] = r[t], n[t] =
|
|
|
+ "verifyCurrentNumber", this
|
|
|
+ .setData({
|
|
|
+ "livingbody.curNumberStatus": n,
|
|
|
+ "livingbody.curNumber": d
|
|
|
+ })
|
|
|
+ } else if (1 === o) {
|
|
|
+ if (1 === t)
|
|
|
+ return clearInterval(c),
|
|
|
+ void this
|
|
|
+ .stopRecordAndProcess(s);
|
|
|
+ t++, this.setData({
|
|
|
+ "livingbody.livingbodyActionText": this
|
|
|
+ .data.livingbody
|
|
|
+ .isActionSeqNormal ?
|
|
|
+ "张张嘴" : "眨眨眼"
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ if (0 === l)
|
|
|
+ return clearInterval(c),
|
|
|
+ void this
|
|
|
+ .stopRecordAndProcess(s);
|
|
|
+ l--, this.setData({
|
|
|
+ "livingbody.livingbodySilentText": l
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }, a)
|
|
|
+ },
|
|
|
+ fail: i => {
|
|
|
+ this.setData({
|
|
|
+ "livingbody.isShowGuide": !0,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ isNotCamera: !0,
|
|
|
+ "livingbody.isPrepare": !0
|
|
|
+ }), console.log("start record fail", +
|
|
|
+ new Date, i), this.showErrorToast({
|
|
|
+ ErrorCode: -108,
|
|
|
+ ErrorMsg: `网络异常,${i.errMsg}`
|
|
|
+ })
|
|
|
+ },
|
|
|
+ timeoutCallback: i => {
|
|
|
+ console.log("timeoutCallback", i), this
|
|
|
+ .setData({
|
|
|
+ "livingbody.isShowGuide": !0,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ isNotCamera: !0,
|
|
|
+ "livingbody.isPrepare": !0
|
|
|
+ }), this.showErrorToast({
|
|
|
+ ErrorCode: -108,
|
|
|
+ ErrorMsg: "startRecord timeoutCallback, 请重试!"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }, i => {
|
|
|
+ this.setData({
|
|
|
+ "livingbody.isShowGuide": !0,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ isNotCamera: !0
|
|
|
+ }), this.showErrorToast(i)
|
|
|
+ })
|
|
|
+ }, 2e3)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ stopRecordAndProcess(i) {
|
|
|
+ console.log("start stopRecord", +new Date), setTimeout(() => {
|
|
|
+ console.log("stopTimeGap" + i), console.log(ctx.stopRecord), ctx.stopRecord({
|
|
|
+ success: i => {
|
|
|
+ console.log("stopRecord success", +new Date, i), wx.getFileInfo({
|
|
|
+ filePath: i.tempVideoPath,
|
|
|
+ success: o => {
|
|
|
+ var e = Math.round(o.size / 1024);
|
|
|
+ e > 30720 ? (this.setData({
|
|
|
+ "livingbody.isShowGuide": !0,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ isNotCamera: !0,
|
|
|
+ "livingbody.isPrepare": !0
|
|
|
+ }), this.showErrorToast({
|
|
|
+ ErrorCode: -108,
|
|
|
+ ErrorMsg: "视频大小超过限制"
|
|
|
+ })) : this.processTheVideo(i.tempVideoPath, e +
|
|
|
+ "K")
|
|
|
+ },
|
|
|
+ fail: i => {
|
|
|
+ this.setData({
|
|
|
+ "livingbody.isShowGuide": !0,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ isNotCamera: !0,
|
|
|
+ "livingbody.isPrepare": !0
|
|
|
+ }), this.showErrorToast({
|
|
|
+ ErrorCode: -108,
|
|
|
+ ErrorMsg: `getFileInfo异常,${i.errMsg}`
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ fail: i => {
|
|
|
+ this.setData({
|
|
|
+ "livingbody.isShowGuide": !0,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ isNotCamera: !0,
|
|
|
+ "livingbody.isPrepare": !0
|
|
|
+ }), this.showErrorToast({
|
|
|
+ ErrorCode: -108,
|
|
|
+ ErrorMsg: `stopRecord异常,${i.errMsg}`
|
|
|
+ })
|
|
|
+ },
|
|
|
+ complete(i) {
|
|
|
+ console.log("complete", i)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }, i)
|
|
|
+ },
|
|
|
+ processTheVideo(i, o) {
|
|
|
+ this.checkRecordNetworkOk(e => {
|
|
|
+ this.goToProcessPage(i, o)
|
|
|
+ }, e => {
|
|
|
+ this.setData({
|
|
|
+ "livingbody.isShowGuide": !0,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ isNotCamera: !0,
|
|
|
+ "livingbody.isPrepare": !0
|
|
|
+ }), wx.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: "网络异常,请检查网络后重试",
|
|
|
+ confirmText: "重试",
|
|
|
+ confirmColor: "#2d72f1",
|
|
|
+ success: e => {
|
|
|
+ e.confirm && this.processTheVideo(i, o)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ goToProcessPage(i, o) {
|
|
|
+ this.setData({
|
|
|
+ "livingbody.isShowGuide": !1,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ "livingbody.isShowProcess": !0,
|
|
|
+ isNotCamera: !0,
|
|
|
+ "livingbody.isPrepare": !0
|
|
|
+ });
|
|
|
+ let e = {
|
|
|
+ url: `${BASE_URL}/api/common/upLoadWxAppFile?BizToken=${this.data.token}`,
|
|
|
+ filePath: i,
|
|
|
+ data: {
|
|
|
+ file: i
|
|
|
+ }
|
|
|
+ };
|
|
|
+ this.uploadTheVideo(e, o)
|
|
|
+ },
|
|
|
+ uploadTheVideo(i, o) {
|
|
|
+ this.returnAllCheckNetWork(e => {
|
|
|
+ "wifi" !== e && "none" !== e ? wx.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: `视频大约${o},在移动网络环境下上传会产生手机流量,确认继续?`,
|
|
|
+ confirmText: "继续",
|
|
|
+ confirmColor: "#2d72f1",
|
|
|
+ success: e => {
|
|
|
+ e.confirm ? this.uploadTheVideoMain(i, o) : this.setData({
|
|
|
+ "livingbody.isShowGuide": !0,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ "livingbody.isShowProcess": !1,
|
|
|
+ isNotCamera: !0,
|
|
|
+ "livingbody.isPrepare": !0
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }) : this.uploadTheVideoMain(i, o)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ uploadTheVideoMain(i, o) {
|
|
|
+ util.uploadFile.call(this, i, e => {
|
|
|
+ if (console.log("上传视频成功"), console.log(e), 0 === e.ErrorCode) console.log("uploadSuccess"),
|
|
|
+ console.log(e.Data.Data.MediaKey), this.livingbodyVerify(e.Data.Data.MediaKey);
|
|
|
+ else {
|
|
|
+ var t = "网络异常,上传视频失败";
|
|
|
+ 101 !== e.ErrorCode && (t = e.ErrorMsg), wx.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: t,
|
|
|
+ showCancel: !1,
|
|
|
+ confirmText: "重试",
|
|
|
+ confirmColor: "#2d72f1",
|
|
|
+ success: e => {
|
|
|
+ e.confirm && this.uploadTheVideo(i, o)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ livingbodyVerify(i) {
|
|
|
+ let o = this.data.cmsConfig.livingbodyType,
|
|
|
+ e = "/api/liveness/lipliveness";
|
|
|
+ 1 === o ? e = "/api/liveness/actionliveness" : 2 === o && (e = "/api/liveness/silentliveness");
|
|
|
+ let t = {
|
|
|
+ url: `${BASE_URL}${e}?BizToken=${this.data.token}`,
|
|
|
+ data: {
|
|
|
+ MediaKey: i
|
|
|
+ }
|
|
|
+ };
|
|
|
+ console.log(t), util.request(t, o => {
|
|
|
+ if (console.log(o), 0 === o.ErrorCode) this.data.cmsConfig.page.success.isAutoSkip ? this
|
|
|
+ .exitVerify({}) : this.setData({
|
|
|
+ curPage: 6
|
|
|
+ });
|
|
|
+ else if (-107 === o.ErrorCode || 101 === o.ErrorCode) wx.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: o.error_msg,
|
|
|
+ showCancel: !1,
|
|
|
+ confirmText: "重试",
|
|
|
+ confirmColor: "#2d72f1",
|
|
|
+ success: o => {
|
|
|
+ o.confirm && this.livingbodyVerify(i)
|
|
|
+ }
|
|
|
+ });
|
|
|
+ else if (tokenExceptionArr.includes(o.ErrorCode)) this.exitVerifyFail(o);
|
|
|
+ else {
|
|
|
+ void 0 === o.ErrorCode && (o.ErrorCode = "9999", sysFailInfo[9999].tips1 = o.Data);
|
|
|
+ var e = o.ErrorCode + "",
|
|
|
+ t = {};
|
|
|
+ (t = this.data.cmsConfig.failInfo && this.data.cmsConfig.failInfo[e] ? this.data
|
|
|
+ .cmsConfig.failInfo[e] : sysFailInfo[e] ? sysFailInfo[e] : {
|
|
|
+ img: "",
|
|
|
+ msg: o.ErrorMsg,
|
|
|
+ error_code: o.ErrorCode
|
|
|
+ }).Data = o.Data || {}, console.log("failInfo: ", t), this.setData({
|
|
|
+ failInfo: t,
|
|
|
+ curPage: 5
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ failReVerify() {
|
|
|
+ if (console.log(this.data.failInfo), "无效请求" !== this.data.failInfo.msg && 14 !== this.data.failInfo
|
|
|
+ .error_code) {
|
|
|
+ var i = 4;
|
|
|
+ if (idExceptionArr.includes(this.data.failInfo.error_code)) {
|
|
|
+ if (this.data.cmsConfig.isHideOcrPage) return void this.exitVerifyFail({
|
|
|
+ Token: this.data.token,
|
|
|
+ ErrorCode: this.data.failInfo.error_code,
|
|
|
+ ErrorMsg: this.data.failInfo.msg
|
|
|
+ });
|
|
|
+ i = 3, this.setData({
|
|
|
+ "ocr.isShowTakePhoto": !1,
|
|
|
+ "ocr.isShowResult": !1,
|
|
|
+ "ocr.isShowGuide": !0,
|
|
|
+ "ocr.isShowPhotoPreView": !1,
|
|
|
+ "ocr.isPhotoFromCamera": !1,
|
|
|
+ "ocr.isFrontIdCard": !0,
|
|
|
+ "ocr.hintError": "",
|
|
|
+ "ocr.hintErrorResult": "",
|
|
|
+ "ocr.isForbiddenManualBtn": !0,
|
|
|
+ "ocr.isForbiddenResultBtn": !1,
|
|
|
+ "ocr.idcard": "",
|
|
|
+ "ocr.idname": "",
|
|
|
+ "ocr.idaddress": "",
|
|
|
+ "ocr.tempImagePath": "",
|
|
|
+ "ocr.ocrTitle": "请拍摄身份证人像面",
|
|
|
+ "ocr.isToolsShow": !0
|
|
|
+ }), this.data.ocr.isEditTheOcrIsManualInput && this.setData({
|
|
|
+ "cmsConfig.page.ocr.isManualInput": !0
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ curPage: i,
|
|
|
+ "livingbody.isShowGuide": !0,
|
|
|
+ "livingbody.isShowCamera": !1,
|
|
|
+ "livingbody.isShowProcess": !1,
|
|
|
+ "livingbody.isShowDialog": !1,
|
|
|
+ "livingbody.livingbodyNumber": "",
|
|
|
+ "livingbody.isNotPrepareOk": !0,
|
|
|
+ "livingbody.getCodeErrMsg": "",
|
|
|
+ "livingbody.livingbodyTitle": "请保持正脸对准框内",
|
|
|
+ "livingbody.isPrepare": !0,
|
|
|
+ "livingbody.curNumberStatus": ["verifyCurrentNumber", "", "", ""],
|
|
|
+ "livingbody.curNumber": ["·", "·", "·", "·"],
|
|
|
+ "livingbody.isActionSeqNormal": !0,
|
|
|
+ "livingbody.livingbodyActionText": "",
|
|
|
+ "livingbody.livingbodySilentText": "",
|
|
|
+ "livingbody.uploadProcess": 0
|
|
|
+ }), this.preLivingbodyExec()
|
|
|
+ } else {
|
|
|
+ this.exitVerifyFail({
|
|
|
+ ErrorCode: 14,
|
|
|
+ ErrorMsg: "由于活体验证时出现网络异常,导致无效请求,需要您重新验证,验证时请保持网络畅通!"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ successGoToNext() {
|
|
|
+ this.exitVerify({})
|
|
|
+ },
|
|
|
+ verifyBackToIndex() {
|
|
|
+ var i = {};
|
|
|
+ i.Token = this.data.token, i.ErrorCode = -999, i.ErrorMsg = "返回首页成功,如多次验证不通过,可将当前页面截图提供给相关工作人员排查问题 " +
|
|
|
+ this.data.bizData.appid + " | " + i.token, this.exitVerifyFail(i)
|
|
|
+ },
|
|
|
+ switchfailModal() {
|
|
|
+ this.setData({
|
|
|
+ "failInfo.is_modal_showing": !this.data.failInfo.is_modal_showing
|
|
|
+ })
|
|
|
+ },
|
|
|
+ ocrCameraError: function(i) {
|
|
|
+ console.log("ocrCameraError", i)
|
|
|
+ },
|
|
|
+ bindstop: function(i) {
|
|
|
+ console.log(i)
|
|
|
+ }
|
|
|
+});
|