From 92a847ecacef5da0180d083b18ed6ee12bc286e6 Mon Sep 17 00:00:00 2001 From: jinyu Date: Mon, 28 Dec 2015 16:41:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3toJoinString=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E7=AD=BE=E5=90=8D=E9=94=99=E8=AF=AF=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/foxinmy/weixin4j/jssdk/JSSDKAPI.java | 2 +- .../foxinmy/weixin4j/jssdk/JSSDKConfigurator.java | 15 +++++++++++++-- .../java/com/foxinmy/weixin4j/util/MapUtil.java | 11 +++-------- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/jssdk/JSSDKAPI.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/jssdk/JSSDKAPI.java index 9eab6a43..846d3a33 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/jssdk/JSSDKAPI.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/jssdk/JSSDKAPI.java @@ -3,7 +3,7 @@ package com.foxinmy.weixin4j.jssdk; /** * JSSDK接口列表 * - * @className JSSDKAPIs + * @className JSSDKAPI * @author jy * @date 2015年12月23日 * @since JDK 1.7 diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/jssdk/JSSDKConfigurator.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/jssdk/JSSDKConfigurator.java index 2081ae0a..31654d9d 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/jssdk/JSSDKConfigurator.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/jssdk/JSSDKConfigurator.java @@ -111,7 +111,7 @@ public class JSSDKConfigurator { signMap.put("jsapi_ticket", this.ticketTokenHolder.getAccessToken()); signMap.put("url", url); String sign = DigestUtil.SHA1(MapUtil - .toJoinString(signMap, false, true)); + .toJoinString(signMap, false, false)); if (StringUtil.isBlank(config.getString("appId"))) { config.put("appId", Weixin4jConfigUtil.getWeixinAccount().getId()); } @@ -122,9 +122,20 @@ public class JSSDKConfigurator { throw new WeixinException("jsapilist not be empty"); } config.put("timestamp", timestamp); - config.put("noncestr", noncestr); + config.put("nonceStr", noncestr); config.put("signature", sign); config.put("jsApiList", apis.toArray()); return config.toJSONString(); } + + public static void main(String[] args){ + Map signMap = new HashMap(); + signMap.put("timestamp", "1451291129"); + signMap.put("noncestr", "FXlt1mmwNrU30AIGGNrdLcdO"); + signMap.put("jsapi_ticket", "kgt8ON7yVITDhtdwci0qeQdDHdx7JYipird9HNRuaHAIXFpvYh0mz9vuWOjdZb8a3ftvHZKfqcLzrx_pTFOZ3Q"); + signMap.put("url", "http://wx.jdxg.doubimeizhi.com/apprise/share"); + String sign = DigestUtil.SHA1(MapUtil + .toJoinString(signMap, false, false)); + System.err.println(sign); + } } diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/util/MapUtil.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/util/MapUtil.java index 89ae5fe7..89a95eb8 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/util/MapUtil.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/util/MapUtil.java @@ -2,7 +2,7 @@ package com.foxinmy.weixin4j.util; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.util.Comparator; +import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.TreeMap; @@ -36,13 +36,7 @@ public class MapUtil { */ public static String toJoinString(Object object, boolean encoder, boolean lowerCase, Map extra) { - Map map = new TreeMap( - new Comparator() { - @Override - public int compare(String o1, String o2) { - return o1.compareTo(o2); - } - }); + Map map = new HashMap(); JSONObject obj = null; if (object instanceof String) { obj = JSONObject.parseObject(object.toString()); @@ -72,6 +66,7 @@ public class MapUtil { public static String toJoinString(Map map, boolean encoder, boolean lowerCase) { map.remove("sign"); + map = new TreeMap(map); StringBuilder sb = new StringBuilder(); Set> set = map.entrySet(); try {