You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. import {
  2. ksort
  3. } from '../util/ksort.js'
  4. import {
  5. md5
  6. } from '../util/md5.js'
  7. import {
  8. sha1
  9. } from '../util/sha1.js'
  10. const _signCode = 'etc123456'; //签名码
  11. function pad2(n) {
  12. return n < 10 ? '0' + n : n
  13. }
  14. //获取时间ymdHis
  15. function getDate() {
  16. var date = new Date();
  17. return date.getFullYear().toString() + pad2(date.getMonth() + 1) +
  18. pad2(date.getDate()) + pad2(date.getHours()) +
  19. pad2(date.getMinutes()) + pad2(date.getSeconds());
  20. }
  21. /**
  22. * 获取随机数
  23. */
  24. function generateMixed(n) {
  25. var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
  26. var res = "";
  27. for (var i = 0; i < n; i++) {
  28. var id = Math.ceil(Math.random() * 8);
  29. res += chars[id];
  30. }
  31. return res;
  32. }
  33. //签名
  34. function sign(data, signCode) {
  35. data = ksort(data);
  36. var signStr = '';
  37. var requestId = false;
  38. for (let k in data) {
  39. if (k != 'sign') {
  40. if (k == 'requestId') {
  41. requestId = data[k];
  42. }
  43. signStr += k + '=' + data[k] + '&';
  44. }
  45. }
  46. signStr += 'signCode=' + signCode;
  47. // console.log("signStr*************"+signStr);
  48. if (!requestId) {
  49. return false;
  50. }
  51. signStr = md5(signStr);
  52. signStr = signStr.toUpperCase();
  53. // console.log('MD5**************' + signStr);
  54. signStr += requestId;
  55. // console.log('requestId**************' + signStr);
  56. signStr = sha1(signStr);
  57. signStr = signStr.toUpperCase();
  58. // console.log('SHA1**************' + signStr);
  59. return signStr;
  60. }
  61. //arrayToJsonString array 转json字符串
  62. export function arrayToJsonString(array) {
  63. var json = {};
  64. for (var i in array) {
  65. if (array[i] instanceof Array) {
  66. json[i] = {};
  67. for (var o in array[i]) {
  68. if (array[i][o] instanceof Array) {
  69. json[i][o] = {};
  70. for (var q in array[i][o]) {
  71. if (array[i][o][q] instanceof Array) {
  72. json[i][o][q] = {};
  73. for (var w in array[i][o][q]) {
  74. json[i][o][q][w] = array[i][o][q][w];
  75. }
  76. } else {
  77. json[i][o][q] = array[i][o][q];
  78. }
  79. }
  80. } else {
  81. json[i][o] = array[i][o];
  82. }
  83. }
  84. } else {
  85. json[i] = array[i];
  86. }
  87. }
  88. return JSON.stringify(json);
  89. }
  90. /**
  91. *json字符串转换成json对象
  92. */
  93. export function stringToJson(data) {
  94. return JSON.parse(data);
  95. }
  96. //array转json对象
  97. export function arrayToJson(array) {
  98. return stringToJson(arrayToJsonString(array));
  99. }
  100. //时间格式化
  101. export function formatTime (date) {
  102. const year = date.getFullYear()
  103. const month = date.getMonth() + 1
  104. const day = date.getDate()
  105. const hour = date.getHours()
  106. const minute = date.getMinutes()
  107. const second = date.getSeconds()
  108. return `${[year, month, day].map(formatNumber).join('-')}T${[hour, minute, second].map(formatNumber).join(':')}`
  109. }
  110. function formatNumber (n) {
  111. n = n.toString()
  112. return n[1] ? n : `0${n}`
  113. }
  114. //调用中台参数
  115. export function encryption(urlcode, subdata, type) {
  116. // console.log('输出内容',stringToJson(JSON.stringify(subdata)))
  117. var requestData = new Array();
  118. requestData['IFCODE'] = urlcode;
  119. requestData['AppId'] = 'admin001';
  120. requestData['encryptType'] = 'NONE';
  121. requestData['signType'] = 'MD5';
  122. requestData['ReqId'] = requestData['AppId']+'_'+getDate()+'_' + generateMixed(5);
  123. requestData['timestamp'] = formatTime(new Date());
  124. //更据type判断是否转字符串
  125. if (type === 2) {
  126. requestData['bizContent'] = JSON.stringify(subdata);
  127. } else {
  128. requestData['bizContent'] = subdata;
  129. }
  130. console.log('bizContent='+requestData['bizContent']+'&signType=MD5&encryptType=NONE&timestamp='+requestData['timestamp']+'&IFCODE='+urlcode);
  131. requestData['sign'] = md5('bizContent='+requestData['bizContent']+'&signType=MD5&encryptType=NONE&timestamp='+requestData['timestamp']+'&IFCODE='+urlcode);
  132. let endData = arrayToJson(requestData);
  133. console.log('输出内容', endData)
  134. return endData;
  135. }