记得上下班打卡 | git大法好,push需谨慎

Commit b243ac37 authored by 胡佳晨's avatar 胡佳晨

提交 erp sign 方法

parent 14bb2b02
...@@ -14,6 +14,7 @@ public class CollectionUtil { ...@@ -14,6 +14,7 @@ public class CollectionUtil {
private static final HashMap<String, Long> STRING_LONG_HASH_MAP = new HashMap<>(); private static final HashMap<String, Long> STRING_LONG_HASH_MAP = new HashMap<>();
private static final HashMap<String, BigDecimal> STRING_BIG_DECIMAL_HASH_MAP = new HashMap<>(); private static final HashMap<String, BigDecimal> STRING_BIG_DECIMAL_HASH_MAP = new HashMap<>();
private static final HashMap<String, Map<String, Object>> STRING_MAP_HASH_MAP = new HashMap<>(); private static final HashMap<String, Map<String, Object>> STRING_MAP_HASH_MAP = new HashMap<>();
private static final LinkedHashMap<String, String> STRING_STRING_LINKED_HASH_MAP = new LinkedHashMap<>();
private static final LinkedList<String> STRING_LINKED_LIST = new LinkedList<>(); private static final LinkedList<String> STRING_LINKED_LIST = new LinkedList<>();
private static final LinkedList<Object[]> OBJECTS_LINKED_LIST = new LinkedList<>(); private static final LinkedList<Object[]> OBJECTS_LINKED_LIST = new LinkedList<>();
private static final LinkedMultiValueMap<String, String> STRING_STRING_LINKED_MULTI_VALUE_MAP = new LinkedMultiValueMap<>(); private static final LinkedMultiValueMap<String, String> STRING_STRING_LINKED_MULTI_VALUE_MAP = new LinkedMultiValueMap<>();
...@@ -31,6 +32,9 @@ public class CollectionUtil { ...@@ -31,6 +32,9 @@ public class CollectionUtil {
public static HashMap<String, String> mapStringString() { public static HashMap<String, String> mapStringString() {
return (HashMap<String, String>) STRING_STRING_HASH_MAP.clone(); return (HashMap<String, String>) STRING_STRING_HASH_MAP.clone();
} }
public static LinkedHashMap<String, String> linkMapStringString() {
return (LinkedHashMap<String, String>) STRING_STRING_LINKED_HASH_MAP.clone();
}
public static HashMap<String, List<String>> mapStringList() { public static HashMap<String, List<String>> mapStringList() {
return (HashMap<String, List<String>>) STRING_LIST_HASH_MAP.clone(); return (HashMap<String, List<String>>) STRING_LIST_HASH_MAP.clone();
} }
......
package com.liquidnet.service.erp.utils;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.MD5Utils;
import java.util.*;
public class BaseUtils {
/**
* 获取 erp的sign
* @param map 请求参数
* @param appSecret 秘钥
* @return
*/
public static String getErpSign(Map<String, String> map, String appSecret) {
String finalStr = "";
map = sortMapByKey(map);
for (Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
String key01 = leftFillChar(key, "0", 2).concat("-").concat(key);
String value01 = leftFillChar(value, "0", 4).concat("-").concat(value);
String data = key01.concat(":").concat(value01).concat(";");
finalStr = finalStr.concat(data);
}
finalStr = finalStr.substring(0, finalStr.length() - 1).concat(appSecret);
return MD5Utils.md5(finalStr);
}
// 根据key 排序 hash
private static HashMap<String,String> sortMapByKey(Map<String, String> map){
LinkedHashMap<String,String> finalMap = CollectionUtil.linkMapStringString();
List<String> ll = new ArrayList<>(map.keySet());
Collections.sort(ll);
for (String str:ll){
finalMap.put(str,map.get(str));
}
return finalMap;
}
// sign补位算法
private static String leftFillChar(String str, String charStr, int a) {
String length = str.length() + "";
for (int i = length.length(); i < a; i++) {
length = charStr.concat(length);
}
return length;
}
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("appkey", "test2-xx");
map.put("page_no", "0");
map.put("end_time", "2016-08-01 13:00:00");
map.put("start_time", "2016-08-01 12:00:00");
map.put("page_size", "40");
map.put("sid", "test2");
map.put("timestamp", "1470042310");
System.out.println(getErpSign(map,"12345"));
System.out.println("ad4e6fe037ea6e3ba4768317be9d1309");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment