签名传入的参数中包含数组类型的参数,String[] xy = new String[]{”116.288418”, “39.832535”}; 加密过程中需要转换为字符串Arrays.toString(xy)
1public static Map<String, Object> addCommonParams(Map<String, Object> reqMap,Object object){ 2 if(object instanceof PXOrderInfoDTO){ 3 PXOrderInfoDTO vo = (PXOrderInfoDTO)object; 4 reqMap.put("imei", vo.getImei()); 5 reqMap.put("version", vo.getVersion()); 6 reqMap.put("platform", vo.getPlatform()); 7 reqMap.put("ch", vo.getCh()); 8 reqMap.put("app_id", vo.getApp_id()); 9 reqMap.put("client_id", vo.getClient_id()); 10 reqMap.put("timestamp", vo.getTimestamp()); 11 reqMap.put("token", vo.getToken1()); 12 }else if(object instanceof PXRequestVO){ 13 PXRequestVO vo = (PXRequestVO)object; 14 reqMap.put("imei", vo.getImei()); 15 reqMap.put("version", vo.getVersion()); 16 reqMap.put("platform", vo.getPlatform()); 17 reqMap.put("ch", vo.getCh()); 18 reqMap.put("app_id", vo.getApp_id()); 19 reqMap.put("client_id", vo.getClient_id()); 20 reqMap.put("timestamp", vo.getTimestamp()); 21 reqMap.put("token", vo.getToken1()); 22 } 23 return reqMap; 24 } 25 26 /** 27 * 验证码验证签名 28 * @param paramsMap 29 * @return 30 */ 31 public static String sign (Map<String, Object> paramsMap){ 32 paramsMap.put("clinetSecret", "54e4b395976c872d65ce71216fc0fefb"); 33 paramsMap.remove("sign"); 34 List<String> keys = new ArrayList<String>(paramsMap.keySet()); 35 Collections.sort(keys); 36 List<String> keyValueList = new ArrayList<String>(); 37 for (String key : keys) { 38 Object value = paramsMap.get(key); 39 if (value != null) { 40 keyValueList.add(key + "=" + value); 41 } 42 } 43 String queryString=""; 44 for(String obj :keyValueList){ 45 queryString+=obj+"&"; 46 } 47 log.info("加密参数串:"+queryString.substring(0,queryString.length()-1)); 48 String sign = PxMD5Util.getMD5Str(queryString.substring(0,queryString.length()-1)); 49 return sign; 50 }