|
|
@@ -1,148 +1,167 @@ |
|
|
|
import { |
|
|
|
ksort |
|
|
|
} from '../util/ksort.js' |
|
|
|
import { |
|
|
|
md5 |
|
|
|
} from '../util/md5.js' |
|
|
|
import { |
|
|
|
sha1 |
|
|
|
} from '../util/sha1.js' |
|
|
|
import { ksort } from "../util/ksort.js"; |
|
|
|
import { md5 } from "../util/md5.js"; |
|
|
|
import { sha1 } from "../util/sha1.js"; |
|
|
|
|
|
|
|
|
|
|
|
const _signCode = 'etc123456'; //签名码 |
|
|
|
const _signCode = "etc123456"; //签名码 |
|
|
|
|
|
|
|
function pad2(n) { |
|
|
|
return n < 10 ? '0' + n : n |
|
|
|
return n < 10 ? "0" + n : n; |
|
|
|
} |
|
|
|
|
|
|
|
//获取时间ymdHis |
|
|
|
function getDate() { |
|
|
|
var date = new Date(); |
|
|
|
return date.getFullYear().toString() + pad2(date.getMonth() + 1) + |
|
|
|
pad2(date.getDate()) + pad2(date.getHours()) + |
|
|
|
pad2(date.getMinutes()) + pad2(date.getSeconds()); |
|
|
|
var date = new Date(); |
|
|
|
return ( |
|
|
|
date.getFullYear().toString() + |
|
|
|
pad2(date.getMonth() + 1) + |
|
|
|
pad2(date.getDate()) + |
|
|
|
pad2(date.getHours()) + |
|
|
|
pad2(date.getMinutes()) + |
|
|
|
pad2(date.getSeconds()) |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取随机数 |
|
|
|
*/ |
|
|
|
function generateMixed(n) { |
|
|
|
var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; |
|
|
|
var res = ""; |
|
|
|
for (var i = 0; i < n; i++) { |
|
|
|
var id = Math.ceil(Math.random() * 8); |
|
|
|
res += chars[id]; |
|
|
|
} |
|
|
|
return res; |
|
|
|
var chars = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]; |
|
|
|
var res = ""; |
|
|
|
for (var i = 0; i < n; i++) { |
|
|
|
var id = Math.ceil(Math.random() * 8); |
|
|
|
res += chars[id]; |
|
|
|
} |
|
|
|
return res; |
|
|
|
} |
|
|
|
|
|
|
|
//签名 |
|
|
|
function sign(data, signCode) { |
|
|
|
data = ksort(data); |
|
|
|
var signStr = ''; |
|
|
|
var requestId = false; |
|
|
|
for (let k in data) { |
|
|
|
if (k != 'sign') { |
|
|
|
if (k == 'requestId') { |
|
|
|
requestId = data[k]; |
|
|
|
} |
|
|
|
signStr += k + '=' + data[k] + '&'; |
|
|
|
} |
|
|
|
} |
|
|
|
signStr += 'signCode=' + signCode; |
|
|
|
// console.log("signStr*************"+signStr); |
|
|
|
if (!requestId) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
signStr = md5(signStr); |
|
|
|
signStr = signStr.toUpperCase(); |
|
|
|
// console.log('MD5**************' + signStr); |
|
|
|
signStr += requestId; |
|
|
|
// console.log('requestId**************' + signStr); |
|
|
|
signStr = sha1(signStr); |
|
|
|
signStr = signStr.toUpperCase(); |
|
|
|
// console.log('SHA1**************' + signStr); |
|
|
|
return signStr; |
|
|
|
data = ksort(data); |
|
|
|
var signStr = ""; |
|
|
|
var requestId = false; |
|
|
|
for (let k in data) { |
|
|
|
if (k != "sign") { |
|
|
|
if (k == "requestId") { |
|
|
|
requestId = data[k]; |
|
|
|
} |
|
|
|
signStr += k + "=" + data[k] + "&"; |
|
|
|
} |
|
|
|
} |
|
|
|
signStr += "signCode=" + signCode; |
|
|
|
// console.log("signStr*************"+signStr); |
|
|
|
if (!requestId) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
signStr = md5(signStr); |
|
|
|
signStr = signStr.toUpperCase(); |
|
|
|
// console.log('MD5**************' + signStr); |
|
|
|
signStr += requestId; |
|
|
|
// console.log('requestId**************' + signStr); |
|
|
|
signStr = sha1(signStr); |
|
|
|
signStr = signStr.toUpperCase(); |
|
|
|
// console.log('SHA1**************' + signStr); |
|
|
|
return signStr; |
|
|
|
} |
|
|
|
|
|
|
|
//arrayToJsonString array 转json字符串 |
|
|
|
export function arrayToJsonString(array) { |
|
|
|
var json = {}; |
|
|
|
for (var i in array) { |
|
|
|
if (array[i] instanceof Array) { |
|
|
|
json[i] = {}; |
|
|
|
for (var o in array[i]) { |
|
|
|
if (array[i][o] instanceof Array) { |
|
|
|
json[i][o] = {}; |
|
|
|
for (var q in array[i][o]) { |
|
|
|
if (array[i][o][q] instanceof Array) { |
|
|
|
json[i][o][q] = {}; |
|
|
|
for (var w in array[i][o][q]) { |
|
|
|
json[i][o][q][w] = array[i][o][q][w]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
json[i][o][q] = array[i][o][q]; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
json[i][o] = array[i][o]; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
json[i] = array[i]; |
|
|
|
} |
|
|
|
} |
|
|
|
return JSON.stringify(json); |
|
|
|
var json = {}; |
|
|
|
for (var i in array) { |
|
|
|
if (array[i] instanceof Array) { |
|
|
|
json[i] = {}; |
|
|
|
for (var o in array[i]) { |
|
|
|
if (array[i][o] instanceof Array) { |
|
|
|
json[i][o] = {}; |
|
|
|
for (var q in array[i][o]) { |
|
|
|
if (array[i][o][q] instanceof Array) { |
|
|
|
json[i][o][q] = {}; |
|
|
|
for (var w in array[i][o][q]) { |
|
|
|
json[i][o][q][w] = array[i][o][q][w]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
json[i][o][q] = array[i][o][q]; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
json[i][o] = array[i][o]; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
json[i] = array[i]; |
|
|
|
} |
|
|
|
} |
|
|
|
return JSON.stringify(json); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
*json字符串转换成json对象 |
|
|
|
*/ |
|
|
|
export function stringToJson(data) { |
|
|
|
return JSON.parse(data); |
|
|
|
return JSON.parse(data); |
|
|
|
} |
|
|
|
|
|
|
|
//array转json对象 |
|
|
|
export function arrayToJson(array) { |
|
|
|
return stringToJson(arrayToJsonString(array)); |
|
|
|
return stringToJson(arrayToJsonString(array)); |
|
|
|
} |
|
|
|
|
|
|
|
//时间格式化 |
|
|
|
export function formatTime (date) { |
|
|
|
const year = date.getFullYear() |
|
|
|
const month = date.getMonth() + 1 |
|
|
|
const day = date.getDate() |
|
|
|
const hour = date.getHours() |
|
|
|
const minute = date.getMinutes() |
|
|
|
const second = date.getSeconds() |
|
|
|
export function formatTime(date) { |
|
|
|
const year = date.getFullYear(); |
|
|
|
const month = date.getMonth() + 1; |
|
|
|
const day = date.getDate(); |
|
|
|
const hour = date.getHours(); |
|
|
|
const minute = date.getMinutes(); |
|
|
|
const second = date.getSeconds(); |
|
|
|
|
|
|
|
return `${[year, month, day].map(formatNumber).join('-')}T${[hour, minute, second].map(formatNumber).join(':')}` |
|
|
|
return `${[year, month, day].map(formatNumber).join("-")}T${[ |
|
|
|
hour, |
|
|
|
minute, |
|
|
|
second, |
|
|
|
] |
|
|
|
.map(formatNumber) |
|
|
|
.join(":")}`; |
|
|
|
} |
|
|
|
|
|
|
|
function formatNumber (n) { |
|
|
|
n = n.toString() |
|
|
|
return n[1] ? n : `0${n}` |
|
|
|
function formatNumber(n) { |
|
|
|
n = n.toString(); |
|
|
|
return n[1] ? n : `0${n}`; |
|
|
|
} |
|
|
|
|
|
|
|
//调用中台参数 |
|
|
|
export function encryption(urlcode, subdata, type) { |
|
|
|
// console.log('输出内容',stringToJson(JSON.stringify(subdata))) |
|
|
|
var requestData = new Array(); |
|
|
|
requestData['IFCODE'] = urlcode; |
|
|
|
requestData['AppId'] = 'admin001'; |
|
|
|
requestData['encryptType'] = 'NONE'; |
|
|
|
requestData['signType'] = 'MD5'; |
|
|
|
requestData['ReqId'] = requestData['AppId']+'_'+getDate()+'_' + generateMixed(5); |
|
|
|
requestData['timestamp'] = formatTime(new Date()); |
|
|
|
//更据type判断是否转字符串 |
|
|
|
if (type === 2) { |
|
|
|
requestData['bizContent'] = JSON.stringify(subdata); |
|
|
|
} else { |
|
|
|
requestData['bizContent'] = subdata; |
|
|
|
} |
|
|
|
console.log('bizContent='+requestData['bizContent']+'&signType=MD5&encryptType=NONE×tamp='+requestData['timestamp']+'&IFCODE='+urlcode); |
|
|
|
requestData['sign'] = md5('bizContent='+requestData['bizContent']+'&signType=MD5&encryptType=NONE×tamp='+requestData['timestamp']+'&IFCODE='+urlcode); |
|
|
|
let endData = arrayToJson(requestData); |
|
|
|
console.log('输出内容', endData) |
|
|
|
return endData; |
|
|
|
// console.log('输出内容',stringToJson(JSON.stringify(subdata))) |
|
|
|
var requestData = new Array(); |
|
|
|
requestData["IFCODE"] = urlcode; |
|
|
|
requestData["AppId"] = "admin001"; |
|
|
|
requestData["encryptType"] = "NONE"; |
|
|
|
requestData["signType"] = "MD5"; |
|
|
|
requestData["ReqId"] = |
|
|
|
requestData["AppId"] + "_" + getDate() + "_" + generateMixed(5); |
|
|
|
requestData["timestamp"] = formatTime(new Date()); |
|
|
|
//更据type判断是否转字符串 |
|
|
|
if (type === 2) { |
|
|
|
requestData["bizContent"] = JSON.stringify(subdata); |
|
|
|
} else { |
|
|
|
requestData["bizContent"] = subdata; |
|
|
|
} |
|
|
|
console.log( |
|
|
|
"bizContent=" + |
|
|
|
requestData["bizContent"] + |
|
|
|
"&signType=MD5&encryptType=NONE×tamp=" + |
|
|
|
requestData["timestamp"] + |
|
|
|
"&IFCODE=" + |
|
|
|
urlcode |
|
|
|
); |
|
|
|
requestData["sign"] = md5( |
|
|
|
"bizContent=" + |
|
|
|
requestData["bizContent"] + |
|
|
|
"&signType=MD5&encryptType=NONE×tamp=" + |
|
|
|
requestData["timestamp"] + |
|
|
|
"&IFCODE=" + |
|
|
|
urlcode |
|
|
|
); |
|
|
|
let endData = arrayToJson(requestData); |
|
|
|
console.log("输出内容", endData); |
|
|
|
return endData; |
|
|
|
} |