签名排序ksort升序排序
public static String sign(final Map<String, Object> data) {
Set<String> keySet = data.keySet();
String[] keyArray = keySet.toArray(new String[0]);
Arrays.sort(keyArray);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < keyArray.length; i++) {
if ("sign".equals(keyArray[i])) {
continue;
}
// 参数值为空,则不参与签名
if (String.valueOf(data.get(keyArray[i])).length() > 0) {
sb.append(keyArray[i]).append("=").append(data.get(keyArray[i]));
if (i < keyArray.length - 1) {
sb.append("&");
}
}
}
return sb.toString();
}