docs: private static String generateSignByRule(TreeMap<String, String> map) {
      String sign = "";
      Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
      while (it.hasNext()) {
        Map.Entry<String, String> entry = it.next();
        if (it.hasNext()) {
          if (entry.getValue() != null && !"".equals(entry.getValue().toString().trim())) {
            sign += entry.getKey() + "=" + entry.getValue() + "&";
          }
        } else {
          if (entry.getValue() != null && !"".equals(entry.getValue().toString().trim())) {
            sign += entry.getKey() + "=" + entry.getValue();
          } else {
            sign = sign.substring(0, sign.length() - 1);
          }
        }
      }
      return getMD5(sign);
    }