123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- 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;
- }
|