@@ -17,7 +17,7 @@ weixin-java-tools | |||||
<dependency> | <dependency> | ||||
<groupId>me.chanjar</groupId> | <groupId>me.chanjar</groupId> | ||||
<artifactId>weixin-java-mp</artifactId> | <artifactId>weixin-java-mp</artifactId> | ||||
<version>1.1.3</version> | |||||
<version>1.1.4</version> | |||||
</dependency> | </dependency> | ||||
``` | ``` | ||||
@@ -27,7 +27,7 @@ weixin-java-tools | |||||
<dependency> | <dependency> | ||||
<groupId>me.chanjar</groupId> | <groupId>me.chanjar</groupId> | ||||
<artifactId>weixin-java-cp</artifactId> | <artifactId>weixin-java-cp</artifactId> | ||||
<version>1.1.3</version> | |||||
<version>1.1.4</version> | |||||
</dependency> | </dependency> | ||||
``` | ``` | ||||
@@ -5,7 +5,7 @@ | |||||
<modelVersion>4.0.0</modelVersion> | <modelVersion>4.0.0</modelVersion> | ||||
<groupId>me.chanjar</groupId> | <groupId>me.chanjar</groupId> | ||||
<artifactId>weixin-java-parent</artifactId> | <artifactId>weixin-java-parent</artifactId> | ||||
<version>1.1.3</version> | |||||
<version>1.1.4</version> | |||||
<packaging>pom</packaging> | <packaging>pom</packaging> | ||||
<name>WeiXin Java Tools - Parent</name> | <name>WeiXin Java Tools - Parent</name> | ||||
<description>微信公众号、企业号上级POM</description> | <description>微信公众号、企业号上级POM</description> | ||||
@@ -6,7 +6,7 @@ | |||||
<parent> | <parent> | ||||
<groupId>me.chanjar</groupId> | <groupId>me.chanjar</groupId> | ||||
<artifactId>weixin-java-parent</artifactId> | <artifactId>weixin-java-parent</artifactId> | ||||
<version>1.1.3</version> | |||||
<version>1.1.4</version> | |||||
</parent> | </parent> | ||||
<artifactId>weixin-java-common</artifactId> | <artifactId>weixin-java-common</artifactId> | ||||
@@ -6,7 +6,7 @@ | |||||
<parent> | <parent> | ||||
<groupId>me.chanjar</groupId> | <groupId>me.chanjar</groupId> | ||||
<artifactId>weixin-java-parent</artifactId> | <artifactId>weixin-java-parent</artifactId> | ||||
<version>1.1.3</version> | |||||
<version>1.1.4</version> | |||||
</parent> | </parent> | ||||
<artifactId>weixin-java-cp</artifactId> | <artifactId>weixin-java-cp</artifactId> | ||||
@@ -7,6 +7,7 @@ import com.google.gson.JsonPrimitive; | |||||
import com.google.gson.internal.Streams; | import com.google.gson.internal.Streams; | ||||
import com.google.gson.reflect.TypeToken; | import com.google.gson.reflect.TypeToken; | ||||
import com.google.gson.stream.JsonReader; | import com.google.gson.stream.JsonReader; | ||||
import com.sun.media.sound.SoftTuning; | |||||
import me.chanjar.weixin.common.bean.WxAccessToken; | import me.chanjar.weixin.common.bean.WxAccessToken; | ||||
import me.chanjar.weixin.common.bean.WxJsapiSignature; | import me.chanjar.weixin.common.bean.WxJsapiSignature; | ||||
import me.chanjar.weixin.common.bean.WxMenu; | import me.chanjar.weixin.common.bean.WxMenu; | ||||
@@ -46,6 +47,7 @@ import java.io.File; | |||||
import java.io.IOException; | import java.io.IOException; | ||||
import java.io.InputStream; | import java.io.InputStream; | ||||
import java.io.StringReader; | import java.io.StringReader; | ||||
import java.math.BigDecimal; | |||||
import java.security.NoSuchAlgorithmException; | import java.security.NoSuchAlgorithmException; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.UUID; | import java.util.UUID; | ||||
@@ -445,7 +447,7 @@ public class WxCpServiceImpl implements WxCpService { | |||||
@Override | @Override | ||||
public String[] oauth2getUserInfo(String code) throws WxErrorException { | public String[] oauth2getUserInfo(String code) throws WxErrorException { | ||||
return oauth2getUserInfo(code, wxCpConfigStorage.getAgentId()); | |||||
return oauth2getUserInfo(wxCpConfigStorage.getAgentId(), code); | |||||
} | } | ||||
@Override | @Override | ||||
@@ -626,4 +628,12 @@ public class WxCpServiceImpl implements WxCpService { | |||||
this.sessionManager = sessionManager; | this.sessionManager = sessionManager; | ||||
} | } | ||||
public static void main(String[] args) { | |||||
Float a = 3.1f; | |||||
System.out.println(3.1d); | |||||
System.out.println(new BigDecimal(3.1d)); | |||||
System.out.println(new BigDecimal(a)); | |||||
System.out.println(a.toString()); | |||||
System.out.println(a.doubleValue()); | |||||
} | |||||
} | } |
@@ -34,7 +34,7 @@ public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> { | |||||
messageJson.addProperty("toparty", message.getToParty()); | messageJson.addProperty("toparty", message.getToParty()); | ||||
} | } | ||||
if (StringUtils.isNotBlank(message.getToTag())) { | if (StringUtils.isNotBlank(message.getToTag())) { | ||||
messageJson.addProperty("totag", message.getToUser()); | |||||
messageJson.addProperty("totag", message.getToTag()); | |||||
} | } | ||||
if (WxConsts.CUSTOM_MSG_TEXT.equals(message.getMsgType())) { | if (WxConsts.CUSTOM_MSG_TEXT.equals(message.getMsgType())) { | ||||
JsonObject text = new JsonObject(); | JsonObject text = new JsonObject(); | ||||
@@ -19,17 +19,17 @@ import java.lang.reflect.Type; | |||||
*/ | */ | ||||
public class WxCpTagGsonAdapter implements JsonSerializer<WxCpTag>, JsonDeserializer<WxCpTag> { | public class WxCpTagGsonAdapter implements JsonSerializer<WxCpTag>, JsonDeserializer<WxCpTag> { | ||||
public JsonElement serialize(WxCpTag group, Type typeOfSrc, JsonSerializationContext context) { | |||||
public JsonElement serialize(WxCpTag tag, Type typeOfSrc, JsonSerializationContext context) { | |||||
JsonObject o = new JsonObject(); | JsonObject o = new JsonObject(); | ||||
o.addProperty("tagid", group.getId()); | |||||
o.addProperty("tagname", group.getName()); | |||||
o.addProperty("tagid", tag.getId()); | |||||
o.addProperty("tagname", tag.getName()); | |||||
return o; | return o; | ||||
} | } | ||||
public WxCpTag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) | public WxCpTag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) | ||||
throws JsonParseException { | throws JsonParseException { | ||||
JsonObject jsonObject = json.getAsJsonObject(); | JsonObject jsonObject = json.getAsJsonObject(); | ||||
return new WxCpTag(GsonHelper.getString(jsonObject, "tagid"), GsonHelper.getString(jsonObject, "name")); | |||||
return new WxCpTag(GsonHelper.getString(jsonObject, "tagid"), GsonHelper.getString(jsonObject, "tagname")); | |||||
} | } | ||||
} | } |
@@ -6,7 +6,7 @@ | |||||
<parent> | <parent> | ||||
<groupId>me.chanjar</groupId> | <groupId>me.chanjar</groupId> | ||||
<artifactId>weixin-java-parent</artifactId> | <artifactId>weixin-java-parent</artifactId> | ||||
<version>1.1.3</version> | |||||
<version>1.1.4</version> | |||||
</parent> | </parent> | ||||
<artifactId>weixin-java-mp</artifactId> | <artifactId>weixin-java-mp</artifactId> | ||||
<name>WeiXin Java Tools - MP</name> | <name>WeiXin Java Tools - MP</name> | ||||
@@ -387,6 +387,18 @@ public interface WxMpService { | |||||
*/ | */ | ||||
public String oauth2buildAuthorizationUrl(String scope, String state); | public String oauth2buildAuthorizationUrl(String scope, String state); | ||||
/** | |||||
* <pre> | |||||
* 构造oauth2授权的url连接 | |||||
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=网页授权获取用户基本信息 | |||||
* </pre> | |||||
* @param redirectURI | |||||
* 用户授权完成后的重定向链接,无需urlencode, 方法内会进行encode | |||||
* @param scope | |||||
* @param state | |||||
* @return code | |||||
*/ | |||||
public String oauth2buildAuthorizationUrl(String redirectURI, String scope, String state); | |||||
/** | /** | ||||
* <pre> | * <pre> | ||||
* 用code换取oauth2的access token | * 用code换取oauth2的access token | ||||
@@ -363,9 +363,14 @@ public class WxMpServiceImpl implements WxMpService { | |||||
@Override | @Override | ||||
public String oauth2buildAuthorizationUrl(String scope, String state) { | public String oauth2buildAuthorizationUrl(String scope, String state) { | ||||
return this.oauth2buildAuthorizationUrl(wxMpConfigStorage.getOauth2redirectUri(), scope, state); | |||||
} | |||||
@Override | |||||
public String oauth2buildAuthorizationUrl(String redirectURI, String scope, String state) { | |||||
String url = "https://open.weixin.qq.com/connect/oauth2/authorize?" ; | String url = "https://open.weixin.qq.com/connect/oauth2/authorize?" ; | ||||
url += "appid=" + wxMpConfigStorage.getAppId(); | url += "appid=" + wxMpConfigStorage.getAppId(); | ||||
url += "&redirect_uri=" + URIUtil.encodeURIComponent(wxMpConfigStorage.getOauth2redirectUri()); | |||||
url += "&redirect_uri=" + URIUtil.encodeURIComponent(redirectURI); | |||||
url += "&response_type=code"; | url += "&response_type=code"; | ||||
url += "&scope=" + scope; | url += "&scope=" + scope; | ||||
if (state != null) { | if (state != null) { | ||||