diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/util/SignUtils.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/util/SignUtils.java index 0d1962ff4..0ce39a731 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/util/SignUtils.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/util/SignUtils.java @@ -25,11 +25,10 @@ import java.util.*; */ @Slf4j public class SignUtils { - /** * 签名的时候不携带的参数 */ - private static List NO_SIGN_PARAMS = Lists.newArrayList("sign", "key", "xmlString", "xmlDoc", "couponList"); + private static final List NO_SIGN_PARAMS = Lists.newArrayList("sign", "key", "xmlString", "xmlDoc", "couponList"); /** * 请参考并使用 {@link #createSign(Object, String, String, String[])}. @@ -89,10 +88,8 @@ public class SignUtils { * @return 签名字符串 string */ public static String createSign(Map params, String signType, String signKey, String[] ignoredParams) { - SortedMap sortedMap = new TreeMap<>(params); - StringBuilder toSign = new StringBuilder(); - for (String key : sortedMap.keySet()) { + for (String key : new TreeMap<>(params).keySet()) { String value = params.get(key); boolean shouldSign = false; if (StringUtils.isNotEmpty(value) && !ArrayUtils.contains(ignoredParams, key) @@ -121,7 +118,7 @@ public class SignUtils { public static String createEntSign(String actName, String mchBillNo, String mchId, String nonceStr, String reOpenid, Integer totalAmount, String wxAppId, String signKey, String signType) { - Map sortedMap = new HashMap<>(); + Map sortedMap = new HashMap<>(8); sortedMap.put("act_name", actName); sortedMap.put("mch_billno", mchBillNo); sortedMap.put("mch_id", mchId); @@ -130,21 +127,18 @@ public class SignUtils { sortedMap.put("total_amount", totalAmount + ""); sortedMap.put("wxappid", wxAppId); - Map sortParams = new TreeMap<>(sortedMap); - Set> entries = sortParams.entrySet(); - Iterator> iterator = entries.iterator(); + Iterator> iterator = new TreeMap<>(sortedMap).entrySet().iterator(); StringBuilder toSign = new StringBuilder(); while (iterator.hasNext()) { - Map.Entry entry = iterator.next(); - String key = String.valueOf(entry.getKey()); - String value = String.valueOf(entry.getValue()); + Map.Entry entry = iterator.next(); + String value = entry.getValue(); boolean shouldSign = false; if (StringUtils.isNotEmpty(value)) { shouldSign = true; } if (shouldSign) { - toSign.append(key).append("=").append(value).append("&"); + toSign.append(entry.getKey()).append("=").append(value).append("&"); } } //企业微信这里字段名不一样