public static String sign(Object data, String key) {
return sign(JSON.parseObject(JSONObject.toJSONString(data)), key);
}
public static String sign(Map<String, Object> data, String key) {
data.remove("sign");
String signedValue = getSignedValue(data);
signedValue += "key=" + key;
log.info("signedValue:{}", signedValue);
return md5(signedValue, "UTF-8").toUpperCase();
}
private static String getSignedValue(Map<String, Object> reqMap) {
Map<String, String> copy = new TreeMap<>();
reqMap.forEach((k, v) -> {
if (v != null && !"".equals(v)) {
copy.put(k, v.toString());
}
});
StringBuilder sb = new StringBuilder();
copy.forEach((k, v) -> {
if (v != null) {
sb.append(k).append("=").append(v).append("&");
}
});
return sb.toString();
}