参数按照参数名ASCII码从小到大排序--代码如下
/**
* @Author : lilong
* @Description :根据签名算法得出签名---参数按照参数名ASCII码从小到大排序(字典序)
* @Date : 10:55 2018/6/5
**/
public String createSign(Map<String, String> parameters) throws Exception {
String key = "WYzflI4Pv***********4xWalZKD1T";
StringBuffer sb = new StringBuffer();
StringBuffer sbkey = new StringBuffer();
Set es = parameters.entrySet(); //所有参与传参的参数按照accsii排序(升序)
Iterator it = es.iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
String k = (String) entry.getKey();
Object v = entry.getValue();
//空值不传递,不参与签名组串
if (null != v && !"".equals(v)) {
sb.append(k + "=" + v + "&");
sbkey.append(k + "=" + v + "&");
}
}
//MD5加密,结果转换为大写字符
String sign = WXPayUtil.generateSignature(parameters, key, SignType.MD5);
return sign;
}