|
|
@ -0,0 +1,86 @@ |
|
|
|
|
|
let sha1 = require("./sha1.min.js"); |
|
|
|
|
|
let SparkMD5 = require("./SparkMD5.js"); // 签名加密js文件
|
|
|
|
|
|
|
|
|
|
|
|
function getsign(params) { |
|
|
|
|
|
let s_data = ""; |
|
|
|
|
|
let keys = []; |
|
|
|
|
|
for (const key in params) { |
|
|
|
|
|
if (params.hasOwnProperty(key)) { |
|
|
|
|
|
const value = params[key]; |
|
|
|
|
|
keys.push(key); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
let arr = []; |
|
|
|
|
|
keys.sort(); |
|
|
|
|
|
for (let i = 0; i < keys.length; i++) { |
|
|
|
|
|
let k = keys[i]; |
|
|
|
|
|
let v = params[k]; |
|
|
|
|
|
arr.push(k + '=' + v); |
|
|
|
|
|
} |
|
|
|
|
|
s_data = arr.join('&'); |
|
|
|
|
|
|
|
|
|
|
|
let sign = sha1(SparkMD5.hash(s_data) + 'lanzu@123'); |
|
|
|
|
|
params.sign = sign; |
|
|
|
|
|
return params; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// TODO this获取
|
|
|
|
|
|
function $http(url, data = {}){ |
|
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
|
|
// 绑定this
|
|
|
|
|
|
let that = this; |
|
|
|
|
|
// 获取当前请求来自哪个页面
|
|
|
|
|
|
let pages = getCurrentPages(); |
|
|
|
|
|
data.create_page = pages[pages.length - 1].route; |
|
|
|
|
|
// 当前请求时间戳
|
|
|
|
|
|
if (!data.timestamp) { |
|
|
|
|
|
data.timestamp = Math.round(new Date().getTime() / 1000); |
|
|
|
|
|
} |
|
|
|
|
|
// 当前请求随机数
|
|
|
|
|
|
if(!data.rand){ |
|
|
|
|
|
data.rand = Math.round(Math.random() * 1000000); |
|
|
|
|
|
} |
|
|
|
|
|
// 当前请求来自的平台 TODO 动态赋值
|
|
|
|
|
|
data.platform = 'wxmini'; |
|
|
|
|
|
// 当前小程序版本号 TODO 实时获取
|
|
|
|
|
|
data.version = '1.0.0'; |
|
|
|
|
|
// 获取设备唯一deviceId,如果没有,自动生成一个
|
|
|
|
|
|
let sysInfo = uni.getSystemInfoSync(); |
|
|
|
|
|
if(typeof sysInfo.deviceId == 'undefined'){ |
|
|
|
|
|
let deviceId = uni.getStorageSync('deviceId'); |
|
|
|
|
|
if(deviceId){ |
|
|
|
|
|
sysInfo.deviceId = deviceId; |
|
|
|
|
|
}else{ |
|
|
|
|
|
let date_time = String(new Date().getTime()); |
|
|
|
|
|
let md5_deviceId = SparkMD5.hash(date_time); |
|
|
|
|
|
uni.setStorageSync('deviceId', md5_deviceId); |
|
|
|
|
|
sysInfo.deviceId = md5_deviceId; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (sysInfo) { |
|
|
|
|
|
data.device_info = JSON.stringify(sysInfo); |
|
|
|
|
|
} |
|
|
|
|
|
// 获取页面options参数
|
|
|
|
|
|
let _mergeParam = that._mergeParam; |
|
|
|
|
|
for (let _keyVar in _mergeParam) { |
|
|
|
|
|
let _k = _keyVar |
|
|
|
|
|
if (data[_k]) { |
|
|
|
|
|
_k = '_' + _k; |
|
|
|
|
|
} |
|
|
|
|
|
data[_k] = _mergeParam[_keyVar]; |
|
|
|
|
|
} |
|
|
|
|
|
// 生成sign
|
|
|
|
|
|
getsign(data); |
|
|
|
|
|
console.log(url, data); |
|
|
|
|
|
// 发起请求
|
|
|
|
|
|
that.$u.post(url, data).then(res => { |
|
|
|
|
|
resolve(res); |
|
|
|
|
|
}).catch(err => { |
|
|
|
|
|
reject(err); |
|
|
|
|
|
}) |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
module.exports = { |
|
|
|
|
|
$http |
|
|
|
|
|
} |