|  | @@ -19,6 +19,17 @@ import { sha256 } from 'js-sha256'
 | 
	
		
			
				|  |  |   * @param { Object } body
 | 
	
		
			
				|  |  |   * @returns 
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// 替换无效编码序列(解决 decodeURIComponent 报错 "URI malformed" 的问题)
 | 
	
		
			
				|  |  | +export const decodeURIComponentSafe = (str) => {
 | 
	
		
			
				|  |  | +  try {
 | 
	
		
			
				|  |  | +    return decodeURIComponent(str);
 | 
	
		
			
				|  |  | +  } catch (e) {
 | 
	
		
			
				|  |  | +    // 替换无效的百分号编码为空字符串
 | 
	
		
			
				|  |  | +    return decodeURIComponent(str.replace(/%(?![\da-f]{2})/gi, ''));
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  export const encryptionFun = ({raw, body, appId, AppSecret, timestamp}) => {
 | 
	
		
			
				|  |  |    const initSign = {
 | 
	
		
			
				|  |  |      appId,
 | 
	
	
		
			
				|  | @@ -33,10 +44,10 @@ export const encryptionFun = ({raw, body, appId, AppSecret, timestamp}) => {
 | 
	
		
			
				|  |  |    const paramsStr = _initSign + AppSecret
 | 
	
		
			
				|  |  |    let str = ''
 | 
	
		
			
				|  |  |    if (raw) {
 | 
	
		
			
				|  |  | -    str += decodeURIComponent(raw)
 | 
	
		
			
				|  |  | +    str += decodeURIComponentSafe(raw)
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    if (body && Object.keys(body).length) {
 | 
	
		
			
				|  |  | -    str += decodeURIComponent(JSON.stringify(body))
 | 
	
		
			
				|  |  | +    str += decodeURIComponentSafe(JSON.stringify(body))
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    return {
 | 
	
		
			
				|  |  |      ...initSign,
 |