mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 02:28:25 +08:00 
			
		
		
		
	| @ -28,13 +28,7 @@ import me.chanjar.weixin.common.util.StringUtils; | ||||
| import me.chanjar.weixin.common.util.crypto.SHA1; | ||||
| import me.chanjar.weixin.common.util.crypto.WxCryptUtil; | ||||
| import me.chanjar.weixin.common.util.fs.FileUtils; | ||||
| import me.chanjar.weixin.common.util.http.MediaDownloadRequestExecutor; | ||||
| import me.chanjar.weixin.common.util.http.MediaUploadRequestExecutor; | ||||
| import me.chanjar.weixin.common.util.http.RequestExecutor; | ||||
| import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor; | ||||
| import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor; | ||||
| import me.chanjar.weixin.common.util.http.URIUtil; | ||||
| import me.chanjar.weixin.common.util.http.Utf8ResponseHandler; | ||||
| import me.chanjar.weixin.common.util.http.*; | ||||
| import me.chanjar.weixin.common.util.json.GsonHelper; | ||||
| import me.chanjar.weixin.common.util.json.WxGsonBuilder; | ||||
| import me.chanjar.weixin.common.util.xml.XStreamInitializer; | ||||
| @ -190,7 +184,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|       synchronized (globalJsapiTicketRefreshLock) { | ||||
|         if (wxMpConfigStorage.isJsapiTicketExpired()) { | ||||
|           String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi"; | ||||
|           String responseContent = execute(new SimpleGetRequestExecutor(), url, null); | ||||
|           String responseContent = execute(new JoddGetRequestExecutor(), url, null); | ||||
|           JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent))); | ||||
|           JsonObject tmpJsonObject = tmpJsonElement.getAsJsonObject(); | ||||
|           String jsapiTicket = tmpJsonObject.get("ticket").getAsString(); | ||||
| @ -227,33 +221,33 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|  | ||||
|   public void customMessageSend(WxMpCustomMessage message) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/message/custom/send"; | ||||
|     execute(new SimplePostRequestExecutor(), url, message.toJson()); | ||||
|     execute(new JoddPostRequestExecutor(), url, message.toJson()); | ||||
|   } | ||||
|  | ||||
|   public void menuCreate(WxMenu menu) throws WxErrorException { | ||||
|     if (menu.getMatchRule() != null) { | ||||
|       String url = "https://api.weixin.qq.com/cgi-bin/menu/addconditional"; | ||||
|       execute(new SimplePostRequestExecutor(), url, menu.toJson()); | ||||
|       execute(new JoddPostRequestExecutor(), url, menu.toJson()); | ||||
|     } else { | ||||
|       String url = "https://api.weixin.qq.com/cgi-bin/menu/create"; | ||||
|       execute(new SimplePostRequestExecutor(), url, menu.toJson()); | ||||
|       execute(new JoddPostRequestExecutor(), url, menu.toJson()); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   public void menuDelete() throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/menu/delete"; | ||||
|     execute(new SimpleGetRequestExecutor(), url, null); | ||||
|     execute(new JoddGetRequestExecutor(), url, null); | ||||
|   } | ||||
|    | ||||
|   public void menuDelete(String menuid) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/menu/delconditional"; | ||||
|     execute(new SimpleGetRequestExecutor(), url, "menuid=" + menuid); | ||||
|     execute(new JoddGetRequestExecutor(), url, "menuid=" + menuid); | ||||
|   } | ||||
|  | ||||
|   public WxMenu menuGet() throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/menu/get"; | ||||
|     try { | ||||
|       String resultContent = execute(new SimpleGetRequestExecutor(), url, null); | ||||
|       String resultContent = execute(new JoddGetRequestExecutor(), url, null); | ||||
|       return WxMenu.fromJson(resultContent); | ||||
|     } catch (WxErrorException e) { | ||||
|       // 46003 不存在的菜单数据 | ||||
| @ -267,7 +261,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|   public WxMenu menuTryMatch(String userid) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/menu/trymatch"; | ||||
|     try { | ||||
|       String resultContent = execute(new SimpleGetRequestExecutor(), url, "user_id=" + userid); | ||||
|       String resultContent = execute(new JoddGetRequestExecutor(), url, "user_id=" + userid); | ||||
|       return WxMenu.fromJson(resultContent); | ||||
|     } catch (WxErrorException e) { | ||||
|       // 46003 不存在的菜单数据     46002 不存在的菜单版本 | ||||
| @ -380,25 +374,25 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|  | ||||
|   public WxMpMassUploadResult massNewsUpload(WxMpMassNews news) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/media/uploadnews"; | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, news.toJson()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, news.toJson()); | ||||
|     return WxMpMassUploadResult.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
|   public WxMpMassUploadResult massVideoUpload(WxMpMassVideo video) throws WxErrorException { | ||||
|     String url = "http://file.api.weixin.qq.com/cgi-bin/media/uploadvideo"; | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, video.toJson()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, video.toJson()); | ||||
|     return WxMpMassUploadResult.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
|   public WxMpMassSendResult massGroupMessageSend(WxMpMassGroupMessage message) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall"; | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, message.toJson()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, message.toJson()); | ||||
|     return WxMpMassSendResult.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
|   public WxMpMassSendResult massOpenIdsMessageSend(WxMpMassOpenIdsMessage message) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/message/mass/send"; | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, message.toJson()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, message.toJson()); | ||||
|     return WxMpMassSendResult.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
| @ -410,7 +404,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     groupJson.addProperty("name", name); | ||||
|  | ||||
|     String responseContent = execute( | ||||
|         new SimplePostRequestExecutor(), | ||||
|         new JoddPostRequestExecutor(), | ||||
|         url, | ||||
|         json.toString()); | ||||
|     return WxMpGroup.fromJson(responseContent); | ||||
| @ -418,7 +412,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|  | ||||
|   public List<WxMpGroup> groupGet() throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/groups/get"; | ||||
|     String responseContent = execute(new SimpleGetRequestExecutor(), url, null); | ||||
|     String responseContent = execute(new JoddGetRequestExecutor(), url, null); | ||||
|     /* | ||||
|      * 操蛋的微信API,创建时返回的是 { group : { id : ..., name : ...} } | ||||
|      * 查询时返回的是 { groups : [ { id : ..., name : ..., count : ... }, ... ] } | ||||
| @ -433,14 +427,14 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/groups/getid"; | ||||
|     JsonObject o = new JsonObject(); | ||||
|     o.addProperty("openid", openid); | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, o.toString()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, o.toString()); | ||||
|     JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent))); | ||||
|     return GsonHelper.getAsLong(tmpJsonElement.getAsJsonObject().get("groupid")); | ||||
|   } | ||||
|  | ||||
|   public void groupUpdate(WxMpGroup group) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/groups/update"; | ||||
|     execute(new SimplePostRequestExecutor(), url, group.toJson()); | ||||
|     execute(new JoddPostRequestExecutor(), url, group.toJson()); | ||||
|   } | ||||
|  | ||||
|   public void userUpdateGroup(String openid, long to_groupid) throws WxErrorException { | ||||
| @ -448,7 +442,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     JsonObject json = new JsonObject(); | ||||
|     json.addProperty("openid", openid); | ||||
|     json.addProperty("to_groupid", to_groupid); | ||||
|     execute(new SimplePostRequestExecutor(), url, json.toString()); | ||||
|     execute(new JoddPostRequestExecutor(), url, json.toString()); | ||||
|   } | ||||
|  | ||||
|   public void userUpdateRemark(String openid, String remark) throws WxErrorException { | ||||
| @ -456,19 +450,19 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     JsonObject json = new JsonObject(); | ||||
|     json.addProperty("openid", openid); | ||||
|     json.addProperty("remark", remark); | ||||
|     execute(new SimplePostRequestExecutor(), url, json.toString()); | ||||
|     execute(new JoddPostRequestExecutor(), url, json.toString()); | ||||
|   } | ||||
|  | ||||
|   public WxMpUser userInfo(String openid, String lang) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/user/info"; | ||||
|     lang = lang == null ? "zh_CN" : lang; | ||||
|     String responseContent = execute(new SimpleGetRequestExecutor(), url, "openid=" + openid + "&lang=" + lang); | ||||
|     String responseContent = execute(new JoddGetRequestExecutor(), url, "openid=" + openid + "&lang=" + lang); | ||||
|     return WxMpUser.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
|   public WxMpUserList userList(String next_openid) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/user/get"; | ||||
|     String responseContent = execute(new SimpleGetRequestExecutor(), url, next_openid == null ? null : "next_openid=" + next_openid); | ||||
|     String responseContent = execute(new JoddGetRequestExecutor(), url, next_openid == null ? null : "next_openid=" + next_openid); | ||||
|     return WxMpUserList.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
| @ -484,7 +478,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     scene.addProperty("scene_id", scene_id); | ||||
|     actionInfo.add("scene", scene); | ||||
|     json.add("action_info", actionInfo); | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, json.toString()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, json.toString()); | ||||
|     return WxMpQrCodeTicket.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
| @ -497,7 +491,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     scene.addProperty("scene_id", scene_id); | ||||
|     actionInfo.add("scene", scene); | ||||
|     json.add("action_info", actionInfo); | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, json.toString()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, json.toString()); | ||||
|     return WxMpQrCodeTicket.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
| @ -510,7 +504,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     scene.addProperty("scene_str", scene_str); | ||||
|     actionInfo.add("scene", scene); | ||||
|     json.add("action_info", actionInfo); | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, json.toString()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, json.toString()); | ||||
|     return WxMpQrCodeTicket.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
| @ -524,14 +518,14 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     JsonObject o = new JsonObject(); | ||||
|     o.addProperty("action", "long2short"); | ||||
|     o.addProperty("long_url", long_url); | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, o.toString()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, o.toString()); | ||||
|     JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent))); | ||||
|     return tmpJsonElement.getAsJsonObject().get("short_url").getAsString(); | ||||
|   } | ||||
|  | ||||
|   public String templateSend(WxMpTemplateMessage templateMessage) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/cgi-bin/message/template/send"; | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, templateMessage.toJson()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, templateMessage.toJson()); | ||||
|     JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent))); | ||||
|     final JsonObject jsonObject = tmpJsonElement.getAsJsonObject(); | ||||
|     if (jsonObject.get("errcode").getAsInt() == 0) | ||||
| @ -541,7 +535,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|  | ||||
|   public WxMpSemanticQueryResult semanticQuery(WxMpSemanticQuery semanticQuery) throws WxErrorException { | ||||
|     String url = "https://api.weixin.qq.com/semantic/semproxy/search"; | ||||
|     String responseContent = execute(new SimplePostRequestExecutor(), url, semanticQuery.toJson()); | ||||
|     String responseContent = execute(new JoddPostRequestExecutor(), url, semanticQuery.toJson()); | ||||
|     return WxMpSemanticQueryResult.fromJson(responseContent); | ||||
|   } | ||||
|  | ||||
| @ -573,7 +567,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     url += "&grant_type=authorization_code"; | ||||
|  | ||||
|     try { | ||||
|       RequestExecutor<String, String> executor = new SimpleGetRequestExecutor(); | ||||
|       RequestExecutor<String, String> executor = new JoddGetRequestExecutor(); | ||||
|       String responseText = executor.execute(getHttpclient(), httpProxy, url, null); | ||||
|       return WxMpOAuth2AccessToken.fromJson(responseText); | ||||
|     } catch (ClientProtocolException e) { | ||||
| @ -591,7 +585,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     url += "&refresh_token=" + refreshToken; | ||||
|  | ||||
|     try { | ||||
|       RequestExecutor<String, String> executor = new SimpleGetRequestExecutor(); | ||||
|       RequestExecutor<String, String> executor = new JoddGetRequestExecutor(); | ||||
|       String responseText = executor.execute(getHttpclient(), httpProxy, url, null); | ||||
|       return WxMpOAuth2AccessToken.fromJson(responseText); | ||||
|     } catch (ClientProtocolException e) { | ||||
| @ -613,7 +607,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     } | ||||
|  | ||||
|     try { | ||||
|       RequestExecutor<String, String> executor = new SimpleGetRequestExecutor(); | ||||
|       RequestExecutor<String, String> executor = new JoddGetRequestExecutor(); | ||||
|       String responseText = executor.execute(getHttpclient(), httpProxy, url, null); | ||||
|       return WxMpUser.fromJson(responseText); | ||||
|     } catch (ClientProtocolException e) { | ||||
| @ -630,7 +624,7 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|     url += "&openid=" + oAuth2AccessToken.getOpenId(); | ||||
|  | ||||
|     try { | ||||
|       RequestExecutor<String, String> executor = new SimpleGetRequestExecutor(); | ||||
|       RequestExecutor<String, String> executor = new JoddGetRequestExecutor(); | ||||
|       executor.execute(getHttpclient(), httpProxy, url, null); | ||||
|     } catch (ClientProtocolException e) { | ||||
|       throw new RuntimeException(e); | ||||
| @ -683,11 +677,11 @@ public class WxMpServiceImpl implements WxMpService { | ||||
|   } | ||||
|  | ||||
|   public String get(String url, String queryParam) throws WxErrorException { | ||||
|     return execute(new SimpleGetRequestExecutor(), url, queryParam); | ||||
|     return execute(new JoddGetRequestExecutor(), url, queryParam); | ||||
|   } | ||||
|  | ||||
|   public String post(String url, String postData) throws WxErrorException { | ||||
|     return execute(new SimplePostRequestExecutor(), url, postData); | ||||
|     return execute(new JoddPostRequestExecutor(), url, postData); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Daniel Qian
					Daniel Qian