package com.github.sd4324530.fastweixin.util; import com.github.sd4324530.fastweixin.message.aes.SHA1; import java.util.Map; import java.util.TreeMap; /** * @author daxiaoming */ public class JsApiUtil { /** * 计算 wx.config() 中需要使用的签名。每个页面都需要进行计算 * * @param jsApiTicket 微信 js-sdk提供的ticket * @param nonceStr 随机字符串 * @param timestame 时间戳 * @param url 当前网页的URL,不包含#及其后面部分 * @return 合法的签名 * @throws Exception 获取签名异常 */ public static String sign(String jsApiTicket, String nonceStr, long timestame, String url) throws Exception { Map<String, String> paramMap = new TreeMap<String, String>(); paramMap.put("jsapi_ticket", jsApiTicket); paramMap.put("noncestr", nonceStr); paramMap.put("timestamp", Long.toString(timestame)); paramMap.put("url", url); StringBuilder sb = new StringBuilder(); for (Map.Entry<String, String> entry : paramMap.entrySet()) { sb.append("&").append(entry.toString()); } return SHA1.getSHA1HexString(sb.substring(1)); } }