2525 */
2626@ Slf4j
2727public class SignUtils {
28-
2928 /**
3029 * 签名的时候不携带的参数
3130 */
32- private static List <String > NO_SIGN_PARAMS = Lists .newArrayList ("sign" , "key" , "xmlString" , "xmlDoc" , "couponList" );
31+ private static final List <String > NO_SIGN_PARAMS = Lists .newArrayList ("sign" , "key" , "xmlString" , "xmlDoc" , "couponList" );
3332
3433 /**
3534 * 请参考并使用 {@link #createSign(Object, String, String, String[])}.
@@ -89,10 +88,8 @@ public static String createSign(Object xmlBean, String signType, String signKey,
8988 * @return 签名字符串 string
9089 */
9190 public static String createSign (Map <String , String > params , String signType , String signKey , String [] ignoredParams ) {
92- SortedMap <String , String > sortedMap = new TreeMap <>(params );
93-
9491 StringBuilder toSign = new StringBuilder ();
95- for (String key : sortedMap .keySet ()) {
92+ for (String key : new TreeMap <>( params ) .keySet ()) {
9693 String value = params .get (key );
9794 boolean shouldSign = false ;
9895 if (StringUtils .isNotEmpty (value ) && !ArrayUtils .contains (ignoredParams , key )
@@ -121,7 +118,7 @@ public static String createSign(Map<String, String> params, String signType, Str
121118 public static String createEntSign (String actName , String mchBillNo , String mchId , String nonceStr ,
122119 String reOpenid , Integer totalAmount , String wxAppId , String signKey ,
123120 String signType ) {
124- Map <String , String > sortedMap = new HashMap <>();
121+ Map <String , String > sortedMap = new HashMap <>(8 );
125122 sortedMap .put ("act_name" , actName );
126123 sortedMap .put ("mch_billno" , mchBillNo );
127124 sortedMap .put ("mch_id" , mchId );
@@ -130,21 +127,18 @@ public static String createEntSign(String actName, String mchBillNo, String mchI
130127 sortedMap .put ("total_amount" , totalAmount + "" );
131128 sortedMap .put ("wxappid" , wxAppId );
132129
133- Map <String , String > sortParams = new TreeMap <>(sortedMap );
134- Set <Map .Entry <String , String >> entries = sortParams .entrySet ();
135- Iterator <Map .Entry <String , String >> iterator = entries .iterator ();
130+ Iterator <Map .Entry <String , String >> iterator = new TreeMap <>(sortedMap ).entrySet ().iterator ();
136131 StringBuilder toSign = new StringBuilder ();
137132 while (iterator .hasNext ()) {
138- Map .Entry entry = iterator .next ();
139- String key = String .valueOf (entry .getKey ());
140- String value = String .valueOf (entry .getValue ());
133+ Map .Entry <String , String > entry = iterator .next ();
134+ String value = entry .getValue ();
141135 boolean shouldSign = false ;
142136 if (StringUtils .isNotEmpty (value )) {
143137 shouldSign = true ;
144138 }
145139
146140 if (shouldSign ) {
147- toSign .append (key ).append ("=" ).append (value ).append ("&" );
141+ toSign .append (entry . getKey () ).append ("=" ).append (value ).append ("&" );
148142 }
149143 }
150144 //企业微信这里字段名不一样
0 commit comments