|
|
@@ -1,173 +1,167 @@ |
|
|
|
import {
|
|
|
|
ksort
|
|
|
|
} from "../util/ksort.js";
|
|
|
|
import {
|
|
|
|
md5
|
|
|
|
} from "../util/md5.js";
|
|
|
|
import {
|
|
|
|
sha1
|
|
|
|
} from "../util/sha1.js";
|
|
|
|
|
|
|
|
const _signCode = "etc123456"; //签名码
|
|
|
|
|
|
|
|
function pad2(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())
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取随机数
|
|
|
|
*/
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
//签名
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
//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);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*json字符串转换成json对象
|
|
|
|
*/
|
|
|
|
export function stringToJson(data) {
|
|
|
|
return JSON.parse(data);
|
|
|
|
}
|
|
|
|
|
|
|
|
//array转json对象
|
|
|
|
export function arrayToJson(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();
|
|
|
|
|
|
|
|
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}`;
|
|
|
|
}
|
|
|
|
|
|
|
|
//调用中台参数
|
|
|
|
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;
|
|
|
|
import { ksort } from "../util/ksort.js"; |
|
|
|
import { md5 } from "../util/md5.js"; |
|
|
|
import { sha1 } from "../util/sha1.js"; |
|
|
|
|
|
|
|
const _signCode = "etc123456"; //签名码 |
|
|
|
|
|
|
|
function pad2(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()) |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取随机数 |
|
|
|
*/ |
|
|
|
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; |
|
|
|
} |
|
|
|
|
|
|
|
//签名 |
|
|
|
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; |
|
|
|
} |
|
|
|
|
|
|
|
//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); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
*json字符串转换成json对象 |
|
|
|
*/ |
|
|
|
export function stringToJson(data) { |
|
|
|
return JSON.parse(data); |
|
|
|
} |
|
|
|
|
|
|
|
//array转json对象 |
|
|
|
export function arrayToJson(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(); |
|
|
|
|
|
|
|
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}`; |
|
|
|
} |
|
|
|
|
|
|
|
//调用中台参数 |
|
|
|
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; |
|
|
|
} |