소스 검색

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

Xiao_123 6 달 전
부모
커밋
9041b0cb6f
1개의 변경된 파일14개의 추가작업 그리고 5개의 파일을 삭제
  1. 14 5
      src/utils/openEncryption.js

+ 14 - 5
src/utils/openEncryption.js

@@ -24,13 +24,22 @@ export const encryptionFun = (config) => {
   // console.log('加密内容用完请注释->paramsStr', paramsStr)
 
   // 请求的参数json // 携带的参数json一下,url拼接参数的直接用,没有参数不拼接
-  const queryJsonData = config.data ? JSON.stringify(config.data) :
-    config.params ? qs.stringify(config.params, { allowDots: true }) :
-    config.url.split('?')?.length>1 ? config.url.split('?')[1] : ''
-
+  const queryJsonData = config.data && Object.keys(config.data).length ?
+    decodeURIComponent(JSON.stringify(sortObjectByKey(config.data))) : config.params && Object.keys(config.params).length ?
+    decodeURIComponent(qs.stringify(sortObjectByKey(config.params), { allowDots: true }) ): config.url.split('?')?.length>1 ?
+    config.url.split('?')[1] : ''
   // sha256加密字符串 
   if (paramsStr) initSign.sign = sha256(queryJsonData + paramsStr)
-
+  // console.log('加密内容用完请注释->queryJsonData', queryJsonData)
   // 请求头加参数initSign,请求头加参数: appId + nonce + timestamp + sign
   if (initSign &&  Object.keys(initSign).length) Object.keys(initSign).forEach(key => { (config).headers[key] = initSign[key] })
 }
+
+function sortObjectByKey(obj) {
+  return Object.keys(obj)
+    .sort()
+    .reduce((sortedObj, key) => {
+      sortedObj[key] = obj[key];
+      return sortedObj;
+    }, {});
+}