app.js代码如下
const util = require(’./XX’);
var TAG = ‘app’;
var version_num = ‘XXX’;
App({
onLaunch: function (options) {
var vnum = wx.getStorageSync(util.key.versionNum) || ‘0’;
if (version_num != vnum) {
wx.clearStorageSync();
wx.setStorageSync(util.key.versionNum, version_num);
}
},
onLoad: function (options) {},
onShow: function (options) {
let that = this;
wx.getSystemInfo({
success: (res) => {
that.globalData.baseInfo.getPhoneSystem = String(res.system).substring(0, 3);
var clientHeight = res.windowHeight
var clientWidth = res.windowWidth,
rpxR = 750 / clientWidth;
var helfH = res.statusBarHeight
// 设置导航栏高度
if (res.statusBarHeight >= 40) {
wx.setStorageSync(util.key.navHeight, 188);
wx.setStorageSync(util.key.navPadding, 70);
wx.setStorageSync(util.key.lineNav, 246);
} else {
wx.setStorageSync(util.key.navHeight, 128);
wx.setStorageSync(util.key.navPadding, 40);
wx.setStorageSync(util.key.lineNav, 206);
wx.setStorageSync(util.key.helfH, helfH);
};
wx.setStorageSync(util.key.helfH, helfH);
wx.setStorageSync(util.key.clientHeight, clientHeight);
wx.setStorageSync(util.key.clientWidth, clientWidth);
}
});
let opencityCode = wx.getStorageSync(util.key.opencityCode);
let opencityName = wx.getStorageSync(util.key.opencityName);
if (options.scene == 1089) {
wx.setStorageSync(util.key.scene, 1089);
}
if (options.scene == 1038) {
wx.showLoading({
title: ‘加载中’,
})
var errorCode = options.referrerInfo && options.referrerInfo.extraData && options.referrerInfo.extraData.return_code ? options.referrerInfo.extraData.return_code : ‘’;
if (errorCode == ‘SUCCESS’) {
var appid = options.referrerInfo.appId;
var contractId = options.referrerInfo.extraData.contract_id;
that.globalData.baseInfo.showPage = true;
util.getBaseUserInfo(opencityCode, opencityName);
var timerName = setTimeout(function () {
wx.redirectTo({
url: “…/scan/scan?showPage=” + true
});
}, 2000)
} else {
var msg = options.referrerInfo.extraData.return_msg;
wx.showModal({
title: errorCode,
content: msg,
});
console.log(TAG + ‘:签约失败’);
}
}
},
onHide: function () {
clearTimeOut(timerName)
},
globalData: {
hasLogin: false,
baseInfo: {}
}
});
首页js代码如下:
import regeneratorRuntime from ‘.XXX’;
const api = require(‘XXX’);
const qrUtil = require(‘XXX’);
const util = require(‘XXX’);
const xyUtil = require(’.XXX’);
const app = getApp();
var TAG = ‘SCAN’;
Page({
/**
* 页面的初始数据
*/
data: {
resDataObj: {}
},
getXyInfo: function () {
return new Promise(function (resolve, reject) {
let publicKey = xyUtil.generateKey()
let cardId = wx.getStorageSync(util.key.xyCardId)
let data = {
cardId: cardId,
cityCode: wx.getStorageSync(util.key.opencityCode),
openId: wx.getStorageSync(util.key.openId),
publicKey: publicKey
}
console.log(data)
util.request(XXX, data, ‘POST’, ‘application/x-www-form-urlencoded’).then(res => {
if (res.code === 0) {
wx.setStorageSync(util.key.cerMsg, ‘’)
let ciCert = res.data.ciCert
let keyVer = Number(res.data.keyVersion)
let userCert = res.data.userCert
let qrCodeVer = res.data.qrCodeVersion
xyUtil.writeUserCert(ciCert, userCert, keyVer, qrCodeVer)
wx.setStorageSync(util.key.xyCer, true)
resolve()
} else {
wx.setStorageSync(util.key.cerMsg, res.msg)
resolve()
}
})
})
},
start: async function (options) {
var that = this;
var locdata = ‘’;
if (options.opencityName) {
locdata = {
opencityName: options.opencityName,
opencityCode: options.opencityCode
}
} else {
let getCity = wx.getStorageSync(util.key.opencityCode)
if (!getCity) {
locdata = await util.getLocation();
}
}
var opencityName = ‘’;
var opencityCode = ‘’;
if (locdata) {
opencityName = locdata.opencityName;
opencityCode = locdata.opencityCode;
wx.setStorageSync(util.key.cityName, opencityName);
wx.setStorageSync(util.key.cityCode, opencityCode);
} else {
opencityName = wx.getStorageSync(util.key.opencityName);
opencityCode = wx.getStorageSync(util.key.opencityCode);
}
var openId = wx.getStorageSync(util.key.openId);
var outTokenTime = wx.getStorageSync(util.key.tokenTime);
if (openId == ‘’ || outTokenTime < (Date.parse(new Date()) + 10 * 60 * 1000)) {
await util.getOpenId()
}
var resData = await util.getBaseUserInfo(opencityCode, opencityName);
this.resDataObj = {
bindStatus: resData.bindStatus,
opencityCode: opencityCode,
opencityName: opencityName
}
let bind = wx.getStorageSync(util.key.bindStatus)
console.log(bind)
if (bind === 1) {
let reCity = this.resDataObj.opencityName + ‘’
if (reCity === ‘XXX’) {
await this.getXyInfo()
} else {
let ctf = wx.getStorageSync(util.key.ctf);
if (ctf === ‘’ || ctf === ‘undefined’) {
if (app.globalData.baseInfo.mchId) {
await util.loadcertificate(resData.userid);
}
}
}
}
return this.resDataObj;
},
onLoad: function (options) {
wx.showLoading({
title: ‘加载中’,
})
this.start(options).then(res => {
console.log('res = ’ + res)
let that = this
if (res.bindStatus === 1) {
let differentOptions = ‘?opencityCode=’ + res.opencityCode + ‘&opencityName=’ + res.opencityName
let reCity = this.resDataObj.opencityName
if (reCity === ‘XXX’) {
wx.redirectTo({
url: “…/…/pages/XX/XX” + differentOptions
});
} else {
wx.redirectTo({
url: “…/…/pages/XX/XX” + differentOptions
});
}
} else {
wx.redirectTo({
url: ‘…/…/pages/XX/XX’
})
}
}, function (error) {
console.log(error)
})
}