|
@@ -54,10 +54,10 @@ public class TlErpOrderServiceImpl implements TlErpOrderService {
|
|
|
Map<String, Object> map = objectMapper.convertValue(item, Map.class);
|
|
Map<String, Object> map = objectMapper.convertValue(item, Map.class);
|
|
|
dataAsMaps.add(map);
|
|
dataAsMaps.add(map);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ //log.info("【dataAsMaps排序前: {}", dataAsMaps);
|
|
|
long timestamp = Instant.now().getEpochSecond();
|
|
long timestamp = Instant.now().getEpochSecond();
|
|
|
String sortedDataJson = sortAndSerializeData(dataAsMaps);
|
|
String sortedDataJson = sortAndSerializeData(dataAsMaps);
|
|
|
-
|
|
|
|
|
|
|
+ //log.info("【sortedDataJson排序后: {}", sortedDataJson);
|
|
|
String signSource = secretKey + corpId + sortedDataJson + timestamp;
|
|
String signSource = secretKey + corpId + sortedDataJson + timestamp;
|
|
|
String sign = DigestUtils.md5Hex(signSource).toLowerCase();
|
|
String sign = DigestUtils.md5Hex(signSource).toLowerCase();
|
|
|
|
|
|
|
@@ -160,22 +160,25 @@ public class TlErpOrderServiceImpl implements TlErpOrderService {
|
|
|
*/
|
|
*/
|
|
|
@SuppressWarnings("unchecked")
|
|
@SuppressWarnings("unchecked")
|
|
|
private Object deepSort(Object obj) {
|
|
private Object deepSort(Object obj) {
|
|
|
|
|
+ if (obj == null) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
if (obj instanceof Map) {
|
|
if (obj instanceof Map) {
|
|
|
Map<String, Object> map = (Map<String, Object>) obj;
|
|
Map<String, Object> map = (Map<String, Object>) obj;
|
|
|
- TreeMap<String, Object> sortedMap = new TreeMap<>();
|
|
|
|
|
- for (Map.Entry<String, Object> entry : map.entrySet()) {
|
|
|
|
|
- sortedMap.put(entry.getKey(), deepSort(entry.getValue()));
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ Map<String, Object> sortedMap = new LinkedHashMap<>();
|
|
|
|
|
+ map.entrySet().stream()
|
|
|
|
|
+ .sorted(Map.Entry.comparingByKey())
|
|
|
|
|
+ .forEach(entry -> sortedMap.put(entry.getKey(), deepSort(entry.getValue())));
|
|
|
return sortedMap;
|
|
return sortedMap;
|
|
|
} else if (obj instanceof List) {
|
|
} else if (obj instanceof List) {
|
|
|
List<?> list = (List<?>) obj;
|
|
List<?> list = (List<?>) obj;
|
|
|
- List<Object> sortedList = new ArrayList<>();
|
|
|
|
|
|
|
+ List<Object> newList = new ArrayList<>(list.size());
|
|
|
for (Object item : list) {
|
|
for (Object item : list) {
|
|
|
- sortedList.add(deepSort(item));
|
|
|
|
|
|
|
+ newList.add(deepSort(item));
|
|
|
}
|
|
}
|
|
|
- return sortedList;
|
|
|
|
|
|
|
+ return newList;
|
|
|
} else {
|
|
} else {
|
|
|
- return obj; // 基本类型、String、Number 等直接返回
|
|
|
|
|
|
|
+ return obj;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|