import CryptoJS from './node_modules/crypto-js/crypto-js.js'
|
const baseUrl = 'https://tmy.xjzbh.com/api/'
|
const cryptKey = '2025Shop2025Shop'
|
const cryptIv = '2025Shop2025Shop'
|
|
// 加密
|
const encryptDes = (data) => {
|
// 将key解析为字节
|
let aes_key = CryptoJS.enc.Utf8.parse(cryptKey);
|
// 将iv解析为字节
|
let new_iv = CryptoJS.enc.Utf8.parse(cryptIv);
|
// AES加密 CBC模式 ZeroPadding
|
let encrypted = CryptoJS.AES.encrypt(data, aes_key, {
|
iv: new_iv,
|
mode: CryptoJS.mode.CBC,
|
padding: CryptoJS.pad.Pkcs7
|
});
|
// 返回字符串
|
return encrypted.toString();
|
}
|
|
//解密
|
const decryptDes = (data) => {
|
let aes_key = CryptoJS.enc.Utf8.parse(cryptKey);
|
let aes_iv = CryptoJS.enc.Utf8.parse(cryptIv);
|
// 将数据编码成Base64格式
|
let baseResult = CryptoJS.enc.Base64.parse(data);
|
let ciphertext = CryptoJS.enc.Base64.stringify(baseResult);
|
// AES解密 CBC模式 ZeroPadding
|
let decryptResult = CryptoJS.AES.decrypt(ciphertext, aes_key, {
|
iv: aes_iv,
|
mode: CryptoJS.mode.CBC,
|
padding: CryptoJS.pad.Pkcs7
|
});
|
// 返回字符串
|
let resData = decryptResult.toString(CryptoJS.enc.Utf8).toString();
|
return resData;
|
}
|
|
const getHeader = () => {
|
let token = uni.getStorageSync('lzsc-token')
|
let header = {
|
'Accept': 'application/json',
|
'Content-type': 'application/json',
|
'authorization': token,
|
}
|
let platform = null
|
// #ifdef H5
|
platform = 'h5'
|
// #endif
|
// #ifdef APP-PLUS
|
platform = uni.getSystemInfoSync().platform
|
// #endif
|
header.platform = platform
|
return header
|
}
|
|
const post = (url = '', params = null) => {
|
let header = getHeader()
|
let data = encryptDes(JSON.stringify(params))
|
//console.log('postUrl', baseUrl + url)
|
return new Promise((resolve, reject) => {
|
uni.showLoading({
|
title: '加载中'
|
})
|
uni.request({
|
method: 'POST',
|
url: baseUrl + url,
|
data: {data: data},
|
header: header,
|
dataType: 'json',
|
}).then((response) => {
|
//console.log('response', response)
|
uni.hideLoading()
|
let respon = {
|
code: response.data.code,
|
data: response.data.data.length > 0 ? JSON.parse(decryptDes(response.data.data)) : [],
|
msg: response.data.msg
|
}
|
resolve(respon)
|
}).catch(error => {
|
uni.hideLoading()
|
//let [err, res] = error
|
//console.log('error', error)
|
})
|
})
|
}
|
|
const sendMsg = (url = '', params = null) => {
|
let header = getHeader()
|
let data = encryptDes(JSON.stringify(params))
|
return new Promise((resolve, reject) => {
|
uni.request({
|
method: 'POST',
|
url: baseUrl + url,
|
data: {data: data},
|
header: header,
|
dataType: 'json',
|
}).then((response) => {
|
let respon = {
|
code: response.data.code,
|
data: response.data.data.length > 0 ? JSON.parse(decryptDes(response.data.data)) : [],
|
msg: response.data.msg
|
}
|
resolve(respon)
|
}).catch(error => {
|
uni.hideLoading()
|
//let [err, res] = error
|
//console.log('error', error)
|
})
|
})
|
}
|
|
const goPages = (url) => {
|
uni.navigateTo({
|
url: url
|
})
|
}
|
|
const goBack = () => {
|
uni.navigateBack()
|
}
|
|
//身份证号严格校验
|
const identityIDCard = (code) => {
|
//身份证号前两位代表区域
|
var city = {
|
11: "北京",
|
12: "天津",
|
13: "河北",
|
14: "山西",
|
15: "内蒙古",
|
21: "辽宁",
|
22: "吉林",
|
23: "黑龙江 ",
|
31: "上海",
|
32: "江苏",
|
33: "浙江",
|
34: "安徽",
|
35: "福建",
|
36: "江西",
|
37: "山东",
|
41: "河南",
|
42: "湖北 ",
|
43: "湖南",
|
44: "广东",
|
45: "广西",
|
46: "海南",
|
50: "重庆",
|
51: "四川",
|
52: "贵州",
|
53: "云南",
|
54: "西藏 ",
|
61: "陕西",
|
62: "甘肃",
|
63: "青海",
|
64: "宁夏",
|
65: "新疆",
|
71: "台湾",
|
81: "香港",
|
82: "澳门",
|
91: "国外 "
|
};
|
//身份证格式正则表达式
|
var idCardReg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
|
var errorMsg = ""; //错误提示信息
|
var isPass = true; //身份证验证是否通过(true通过、false未通过)
|
|
//如果身份证不满足格式正则表达式
|
if (!idCardReg.test(code)) {
|
errorMsg = "身份证格式有误!";
|
isPass = false;
|
}
|
|
//区域数组中不包含需验证的身份证前两位
|
else if (!city[code.substr(0, 2)]) {
|
errorMsg = "身份证地址编码有误!";
|
isPass = false;
|
} else {
|
//18位身份证需要验证最后一位校验位
|
if (code.length == 18) {
|
code = code.split('');
|
//∑(ai×Wi)(mod 11)
|
//加权因子
|
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
|
//校验位
|
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
|
var sum = 0;
|
var ai = 0;
|
var wi = 0;
|
for (var i = 0; i < 17; i++) {
|
ai = code[i];
|
wi = factor[i];
|
sum += ai * wi;
|
}
|
var last = parity[sum % 11];
|
if (parity[sum % 11] != code[17]) {
|
errorMsg = "身份证号不存在!";
|
isPass = false;
|
}
|
}
|
}
|
var returnParam = {
|
'errorMsg': errorMsg,
|
'isPass': isPass
|
}
|
return returnParam;
|
}
|
|
const checkLogin = (url = '', burl = '') => {
|
let token = uni.getStorageSync('lzsc-token') ? uni.getStorageSync('lzsc-token') : null
|
if(token == null){
|
uni.showModal({
|
title: '温馨提示',
|
content: '请您先登录账号!',
|
success: function (res) {
|
if (res.confirm) {
|
let goUrl = ''
|
if(burl != ''){
|
goUrl = '/pages/login/login?backUrl=' + burl
|
} else{
|
goUrl = '/pages/login/login'
|
}
|
uni.navigateTo({
|
url: goUrl
|
})
|
}
|
}
|
})
|
return false
|
}else if(url != ''){
|
uni.navigateTo({
|
url: url
|
})
|
}
|
return true
|
}
|
|
const checkGoPages = (url = '', burl = '', isgo = 1) => {
|
let token = uni.getStorageSync('lzsc-token') ? uni.getStorageSync('lzsc-token') : null
|
console.log('token', token)
|
if(token == null){
|
uni.showModal({
|
title: '温馨提示',
|
content: '请您先登录账号!',
|
success: function (res) {
|
if (res.confirm) {
|
let goUrl = ''
|
|
if(burl != ''){
|
goUrl = '/pages/login/login?backUrl=' + burl
|
} else{
|
goUrl = '/pages/login/login'
|
}
|
uni.navigateTo({
|
url: goUrl
|
})
|
}
|
}
|
})
|
return false
|
} else {
|
let userInfo = getUserInfo()
|
let goUrl = ''
|
if(userInfo.idcard_auth == 0){
|
goUrl = '/pages/idcard/idcard'
|
} else if(userInfo.face_auth == 0){
|
goUrl = '/pages/face/face'
|
} else if(userInfo.job_auth == 0){
|
goUrl = '/pages/job/job'
|
} else if(userInfo.bank_auth == 0){
|
goUrl = '/pages/addBank/addBank?backUrl=/pages/face/face'
|
}
|
console.log('goUrl', goUrl)
|
if(goUrl != ''){
|
uni.showModal({
|
title: '温馨提示',
|
content: '根据国家法律法规规定,使用本服务需要完成实名认证,是否前往认证?',
|
success: function (res) {
|
if (res.confirm) {
|
uni.navigateTo({
|
url: goUrl
|
})
|
}
|
}
|
})
|
return false
|
}
|
if(url != '' && isgo == 1){
|
uni.navigateTo({
|
url: url
|
})
|
} else {
|
return true
|
}
|
}
|
}
|
|
const goSwitch = (url) => {
|
uni.switchTab({
|
url: url
|
})
|
}
|
|
const getUserInfo = () => {
|
let userStr = uni.getStorageSync('user-info') ? uni.getStorageSync('user-info') : null
|
if(userStr != null) {
|
userStr = JSON.parse(userStr)
|
}
|
return userStr
|
}
|
|
const goSetting = () => {
|
var Intent = plus.android.importClass("android.content.Intent")
|
var Uri = plus.android.importClass("android.net.Uri")
|
var Settings = plus.android.importClass("android.provider.Settings")
|
var activity = plus.android.runtimeMainActivity()
|
var intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
|
var uri = Uri.fromParts("package", activity.getPackageName(), null)
|
intent.setData(uri)
|
activity.startActivity(intent)
|
}
|
|
const goAgree = (t) => {
|
let userInfo = null
|
let userStr = uni.getStorageSync('user-info') ? uni.getStorageSync('user-info') : null
|
if(userStr != null) {
|
userInfo = JSON.parse(userStr)
|
}
|
console.log(userInfo)
|
// #ifdef APP-PLUS
|
let url = ''
|
if(userInfo != null && userInfo.realname != null && userInfo.idcard != null && userInfo.phone != null){
|
let url = this.$baseUrl + '/?gp=' + t + '&name=' + userInfo.realname + '&idcard=' + userInfo.idcard + '&phone=' + userInfo.phone
|
} else {
|
let url = this.$baseUrl + '/?gp=' + t
|
}
|
console.log(url)
|
plus.runtime.openURL(url)
|
// #endif
|
}
|
|
export default {
|
goBack: goBack,
|
post: post,
|
goPages: goPages,
|
decryptDes: decryptDes,
|
identityIDCard: identityIDCard,
|
checkGoPages: checkGoPages,
|
goSwitch: goSwitch,
|
getUserInfo: getUserInfo,
|
goSetting: goSetting,
|
goAgree: goAgree,
|
checkLogin: checkLogin,
|
sendMsg: sendMsg,
|
}
|