package forezp.com.douyalibrary.utils; import java.util.Iterator; import java.util.Map; import java.util.Random; import java.util.Set; import java.util.SortedMap; /** * Created by Administrator on 2016/6/8 0008. */ public class WxPayUtils { public static int type; public static String order_id; private static String Key = ""; public static final String partnerId =""; public static final String appId =""; public static final String packageValue="Sign=WXPay"; public static String createSign(String characterEncoding, SortedMap<Object,Object> parameters){ StringBuffer sb = 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) && !"sign".equals(k) && !"key".equals(k)) { sb.append(k + "=" + v + "&"); } } sb.append("key=" + Key); String sign = Md5Utils.MD5Encode(sb.toString(), characterEncoding).toUpperCase(); return sign; } /** 返回一个定长的随机字符串(只包含大小写字母、数字) * * * @param length * 随机字符串长度 * @return 随机字符串 */ public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; public static String generateString(int length) { StringBuffer sb = new StringBuffer(); Random random = new Random(); for (int i = 0; i < length; i++) { sb.append(ALLCHAR.charAt(random.nextInt(ALLCHAR.length()))); } return sb.toString(); } }