| @@ -45,7 +45,7 @@ public interface WxService { | |||
| * </pre> | |||
| * @throws WxErrorException | |||
| */ | |||
| public void refreshAccessToken() throws WxErrorException; | |||
| public void accessTokenRefresh() throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| @@ -64,15 +64,15 @@ public interface WxService { | |||
| * @param inputStream 输入流 | |||
| * @throws WxErrorException | |||
| */ | |||
| public WxMediaUploadResult uploadMedia(String mediaType, String fileType, InputStream inputStream) throws WxErrorException, IOException; | |||
| public WxMediaUploadResult mediaUpload(String mediaType, String fileType, InputStream inputStream) throws WxErrorException, IOException; | |||
| /** | |||
| * @see #uploadMedia(String, String, InputStream) | |||
| * @see #mediaUpload(String, String, InputStream) | |||
| * @param mediaType | |||
| * @param file | |||
| * @throws WxErrorException | |||
| */ | |||
| public WxMediaUploadResult uploadMedia(String mediaType, File file) throws WxErrorException; | |||
| public WxMediaUploadResult mediaUpload(String mediaType, File file) throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| @@ -84,7 +84,7 @@ public interface WxService { | |||
| * @return 保存到本地的临时文件 | |||
| * @throws WxErrorException | |||
| */ | |||
| public File downloadMedia(String media_id) throws WxErrorException; | |||
| public File mediaDownload(String media_id) throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| @@ -94,54 +94,58 @@ public interface WxService { | |||
| * @param message | |||
| * @throws WxErrorException | |||
| */ | |||
| public void sendCustomMessage(WxCustomMessage message) throws WxErrorException; | |||
| public void customMessageSend(WxCustomMessage message) throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| * 上传群发用的图文消息,上传后才能群发图文消息 {@link #sendMassMessage(WxMassMessage)} | |||
| * 上传群发用的图文消息,上传后才能群发图文消息 | |||
| * | |||
| * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口 | |||
| * </pre> | |||
| * @param news | |||
| * @throws WxErrorException | |||
| * @see #massGroupMessageSend(WxMassGroupMessage) | |||
| * @see #massOpenIdsMessageSend(WxMassOpenIdsMessage) | |||
| */ | |||
| public WxMassUploadResult uploadMassNews(WxMassNews news) throws WxErrorException; | |||
| public WxMassUploadResult massNewsUpload(WxMassNews news) throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| * 上传群发用的视频,上传后才能群发视频消息 {@link #sendMassMessage(WxMassMessage)} | |||
| * 上传群发用的视频,上传后才能群发视频消息 | |||
| * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口 | |||
| * </pre> | |||
| * @return | |||
| * @throws WxErrorException | |||
| * @see #massGroupMessageSend(WxMassGroupMessage) | |||
| * @see #massOpenIdsMessageSend(WxMassOpenIdsMessage) | |||
| */ | |||
| public WxMassUploadResult uploadMassVideo(WxMassVideo video) throws WxErrorException; | |||
| public WxMassUploadResult massVideoUpload(WxMassVideo video) throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| * 分组群发消息 | |||
| * 如果发送图文消息,必须先使用 {@link #uploadMassNews(WxMassNews)} 获得media_id,然后再发送 | |||
| * 如果发送视频消息,必须先使用 {@link #uploadMassVideo(WxMassVideo)} 获得media_id,然后再发送 | |||
| * 如果发送图文消息,必须先使用 {@link #massNewsUpload(WxMassNews)} 获得media_id,然后再发送 | |||
| * 如果发送视频消息,必须先使用 {@link #massVideoUpload(WxMassVideo)} 获得media_id,然后再发送 | |||
| * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口 | |||
| * </pre> | |||
| * @param message | |||
| * @throws WxErrorException | |||
| * @return | |||
| */ | |||
| public WxMassSendResult sendMassMessageByGroup(WxMassGroupMessage message) throws WxErrorException; | |||
| public WxMassSendResult massGroupMessageSend(WxMassGroupMessage message) throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| * 按openId列表群发消息 | |||
| * 如果发送图文消息,必须先使用 {@link #uploadMassNews(WxMassNews)} 获得media_id,然后再发送 | |||
| * 如果发送视频消息,必须先使用 {@link #uploadMassVideo(WxMassVideo)} 获得media_id,然后再发送 | |||
| * 如果发送图文消息,必须先使用 {@link #massNewsUpload(WxMassNews)} 获得media_id,然后再发送 | |||
| * 如果发送视频消息,必须先使用 {@link #massVideoUpload(WxMassVideo)} 获得media_id,然后再发送 | |||
| * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口 | |||
| * </pre> | |||
| * @param message | |||
| * @return | |||
| * @throws WxErrorException | |||
| */ | |||
| public WxMassSendResult sendMassMessageByOpenIds(WxMassOpenIdsMessage message) throws WxErrorException; | |||
| public WxMassSendResult massOpenIdsMessageSend(WxMassOpenIdsMessage message) throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| @@ -151,7 +155,7 @@ public interface WxService { | |||
| * @param menu | |||
| * @throws WxErrorException | |||
| */ | |||
| public void createMenu(WxMenu menu) throws WxErrorException; | |||
| public void menuCreate(WxMenu menu) throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| @@ -160,7 +164,7 @@ public interface WxService { | |||
| * </pre> | |||
| * @throws WxErrorException | |||
| */ | |||
| public void deleteMenu() throws WxErrorException; | |||
| public void menuDelete() throws WxErrorException; | |||
| /** | |||
| * <pre> | |||
| @@ -170,7 +174,7 @@ public interface WxService { | |||
| * @return | |||
| * @throws WxErrorException | |||
| */ | |||
| public WxMenu getMenu() throws WxErrorException; | |||
| public WxMenu menuGet() throws WxErrorException; | |||
| public void setWxConfigStorage(WxConfigStorage wxConfigProvider); | |||
| } | |||
| @@ -79,7 +79,7 @@ public class WxServiceImpl implements WxService { | |||
| return buf.toString(); | |||
| } | |||
| public void refreshAccessToken() throws WxErrorException { | |||
| public void accessTokenRefresh() throws WxErrorException { | |||
| if (!GLOBAL_ACCESS_TOKEN_REFRESH_FLAG.getAndSet(true)) { | |||
| try { | |||
| String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential" | |||
| @@ -116,22 +116,22 @@ public class WxServiceImpl implements WxService { | |||
| } | |||
| } | |||
| public void sendCustomMessage(WxCustomMessage message) throws WxErrorException { | |||
| public void customMessageSend(WxCustomMessage message) throws WxErrorException { | |||
| String url = "https://api.weixin.qq.com/cgi-bin/message/custom/send"; | |||
| execute(new SimplePostRequestExecutor(), url, message.toJson()); | |||
| } | |||
| public void createMenu(WxMenu menu) throws WxErrorException { | |||
| public void menuCreate(WxMenu menu) throws WxErrorException { | |||
| String url = "https://api.weixin.qq.com/cgi-bin/menu/create"; | |||
| execute(new SimplePostRequestExecutor(), url, menu.toJson()); | |||
| } | |||
| public void deleteMenu() throws WxErrorException { | |||
| public void menuDelete() throws WxErrorException { | |||
| String url = "https://api.weixin.qq.com/cgi-bin/menu/delete"; | |||
| execute(new SimpleGetRequestExecutor(), url, null); | |||
| } | |||
| public WxMenu getMenu() throws WxErrorException { | |||
| public WxMenu menuGet() throws WxErrorException { | |||
| String url = "https://api.weixin.qq.com/cgi-bin/menu/get"; | |||
| try { | |||
| String resultContent = execute(new SimpleGetRequestExecutor(), url, null); | |||
| @@ -145,39 +145,39 @@ public class WxServiceImpl implements WxService { | |||
| } | |||
| } | |||
| public WxMediaUploadResult uploadMedia(String mediaType, String fileType, InputStream inputStream) throws WxErrorException, IOException { | |||
| return uploadMedia(mediaType,FileUtil.createTmpFile(inputStream, UUID.randomUUID().toString(), fileType)); | |||
| public WxMediaUploadResult mediaUpload(String mediaType, String fileType, InputStream inputStream) throws WxErrorException, IOException { | |||
| return mediaUpload(mediaType,FileUtil.createTmpFile(inputStream, UUID.randomUUID().toString(), fileType)); | |||
| } | |||
| public WxMediaUploadResult uploadMedia(String mediaType, File file) throws WxErrorException { | |||
| public WxMediaUploadResult mediaUpload(String mediaType, File file) throws WxErrorException { | |||
| String url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?type=" + mediaType; | |||
| return execute(new MediaUploadRequestExecutor(), url, file); | |||
| } | |||
| public File downloadMedia(String media_id) throws WxErrorException { | |||
| public File mediaDownload(String media_id) throws WxErrorException { | |||
| String url = "http://file.api.weixin.qq.com/cgi-bin/media/get"; | |||
| return execute(new MediaDownloadRequestExecutor(), url, "media_id=" + media_id); | |||
| } | |||
| public WxMassUploadResult uploadMassNews(WxMassNews news) throws WxErrorException { | |||
| public WxMassUploadResult massNewsUpload(WxMassNews news) throws WxErrorException { | |||
| String url = "https://api.weixin.qq.com/cgi-bin/media/uploadnews"; | |||
| String responseContent = execute(new SimplePostRequestExecutor(), url, news.toJson()); | |||
| return WxMassUploadResult.fromJson(responseContent); | |||
| } | |||
| public WxMassUploadResult uploadMassVideo(WxMassVideo video) throws WxErrorException { | |||
| public WxMassUploadResult massVideoUpload(WxMassVideo video) throws WxErrorException { | |||
| String url = "http://file.api.weixin.qq.com/cgi-bin/media/uploadvideo"; | |||
| String responseContent = execute(new SimplePostRequestExecutor(), url, video.toJson()); | |||
| return WxMassUploadResult.fromJson(responseContent); | |||
| } | |||
| public WxMassSendResult sendMassMessageByGroup(WxMassGroupMessage message) throws WxErrorException { | |||
| public WxMassSendResult massGroupMessageSend(WxMassGroupMessage message) throws WxErrorException { | |||
| String url = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall"; | |||
| String responseContent = execute(new SimplePostRequestExecutor(), url, message.toJson()); | |||
| return WxMassSendResult.fromJson(responseContent); | |||
| } | |||
| public WxMassSendResult sendMassMessageByOpenIds(WxMassOpenIdsMessage message) throws WxErrorException { | |||
| public WxMassSendResult massOpenIdsMessageSend(WxMassOpenIdsMessage message) throws WxErrorException { | |||
| String url = "https://api.weixin.qq.com/cgi-bin/message/mass/send"; | |||
| String responseContent = execute(new SimplePostRequestExecutor(), url, message.toJson()); | |||
| return WxMassSendResult.fromJson(responseContent); | |||
| @@ -193,7 +193,7 @@ public class WxServiceImpl implements WxService { | |||
| */ | |||
| public <T, E> T execute(RequestExecutor<T, E> executor, String uri, E data) throws WxErrorException { | |||
| if (StringUtils.isBlank(wxConfigStorage.getAccessToken())) { | |||
| refreshAccessToken(); | |||
| accessTokenRefresh(); | |||
| } | |||
| String accessToken = wxConfigStorage.getAccessToken(); | |||
| @@ -210,7 +210,7 @@ public class WxServiceImpl implements WxService { | |||
| * 42001 access_token超时 | |||
| */ | |||
| if (error.getErrcode() == 42001 || error.getErrcode() == 40001) { | |||
| refreshAccessToken(); | |||
| accessTokenRefresh(); | |||
| return execute(executor, uri, data); | |||
| } | |||
| /** | |||
| @@ -24,7 +24,7 @@ public class WxBaseAPITest { | |||
| public void testRefreshAccessToken() throws WxErrorException { | |||
| WxConfigStorage configStorage = wxService.wxConfigStorage; | |||
| String before = configStorage.getAccessToken(); | |||
| wxService.refreshAccessToken(); | |||
| wxService.accessTokenRefresh(); | |||
| String after = configStorage.getAccessToken(); | |||
| @@ -28,7 +28,7 @@ public class WxCustomMessageAPITest { | |||
| message.setTouser(configProvider.getOpenId()); | |||
| message.setContent("欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | |||
| wxService.sendCustomMessage(message); | |||
| wxService.customMessageSend(message); | |||
| } | |||
| } | |||
| @@ -41,7 +41,7 @@ public class WxMassMessageAPITest { | |||
| massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | |||
| massMessage.getTouser().add(configProvider.getOpenId()); | |||
| WxMassSendResult massResult = wxService.sendMassMessageByOpenIds(massMessage); | |||
| WxMassSendResult massResult = wxService.massOpenIdsMessageSend(massMessage); | |||
| Assert.assertNotNull(massResult); | |||
| Assert.assertNotNull(massResult.getMsg_id()); | |||
| } | |||
| @@ -55,7 +55,7 @@ public class WxMassMessageAPITest { | |||
| massMessage.setMedia_id(mediaId); | |||
| massMessage.getTouser().add(configProvider.getOpenId()); | |||
| WxMassSendResult massResult = wxService.sendMassMessageByOpenIds(massMessage); | |||
| WxMassSendResult massResult = wxService.massOpenIdsMessageSend(massMessage); | |||
| Assert.assertNotNull(massResult); | |||
| Assert.assertNotNull(massResult.getMsg_id()); | |||
| } | |||
| @@ -69,7 +69,7 @@ public class WxMassMessageAPITest { | |||
| { | |||
| // 上传视频到媒体库 | |||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.mp4"); | |||
| WxMediaUploadResult uploadMediaRes = wxService.uploadMedia(WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, inputStream); | |||
| WxMediaUploadResult uploadMediaRes = wxService.mediaUpload(WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, inputStream); | |||
| Assert.assertNotNull(uploadMediaRes); | |||
| Assert.assertNotNull(uploadMediaRes.getMedia_id()); | |||
| @@ -78,7 +78,7 @@ public class WxMassMessageAPITest { | |||
| video.setTitle("测试标题"); | |||
| video.setDescription("测试描述"); | |||
| video.setMedia_id(uploadMediaRes.getMedia_id()); | |||
| WxMassUploadResult uploadResult = wxService.uploadMassVideo(video); | |||
| WxMassUploadResult uploadResult = wxService.massVideoUpload(video); | |||
| Assert.assertNotNull(uploadResult); | |||
| Assert.assertNotNull(uploadResult.getMedia_id()); | |||
| messages[0] = new Object[] { WxConsts.MASS_MSG_VIDEO, uploadResult.getMedia_id() }; | |||
| @@ -88,7 +88,7 @@ public class WxMassMessageAPITest { | |||
| */ | |||
| { | |||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.jpeg"); | |||
| WxMediaUploadResult uploadMediaRes = wxService.uploadMedia(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); | |||
| WxMediaUploadResult uploadMediaRes = wxService.mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); | |||
| Assert.assertNotNull(uploadMediaRes); | |||
| Assert.assertNotNull(uploadMediaRes.getMedia_id()); | |||
| messages[1] = new Object[] { WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMedia_id() }; | |||
| @@ -98,7 +98,7 @@ public class WxMassMessageAPITest { | |||
| */ | |||
| { | |||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.mp3"); | |||
| WxMediaUploadResult uploadMediaRes = wxService.uploadMedia(WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, inputStream); | |||
| WxMediaUploadResult uploadMediaRes = wxService.mediaUpload(WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, inputStream); | |||
| Assert.assertNotNull(uploadMediaRes); | |||
| Assert.assertNotNull(uploadMediaRes.getMedia_id()); | |||
| messages[2] = new Object[] { WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMedia_id() }; | |||
| @@ -109,7 +109,7 @@ public class WxMassMessageAPITest { | |||
| { | |||
| // 上传照片到媒体库 | |||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.jpeg"); | |||
| WxMediaUploadResult uploadMediaRes = wxService.uploadMedia(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); | |||
| WxMediaUploadResult uploadMediaRes = wxService.mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); | |||
| Assert.assertNotNull(uploadMediaRes); | |||
| Assert.assertNotNull(uploadMediaRes.getMedia_id()); | |||
| @@ -131,7 +131,7 @@ public class WxMassMessageAPITest { | |||
| article2.setDigest("摘要2"); | |||
| news.addArticle(article2); | |||
| WxMassUploadResult massUploadResult = wxService.uploadMassNews(news); | |||
| WxMassUploadResult massUploadResult = wxService.massNewsUpload(news); | |||
| Assert.assertNotNull(massUploadResult); | |||
| Assert.assertNotNull(uploadMediaRes.getMedia_id()); | |||
| messages[3] = new Object[] { WxConsts.MASS_MSG_VIDEO, massUploadResult.getMedia_id() }; | |||
| @@ -32,7 +32,7 @@ public class WxMediaAPITest { | |||
| @Test(dataProvider="uploadMedia", enabled = true) | |||
| public void testUploadMedia(String mediaType, String fileType, String fileName) throws WxErrorException, IOException { | |||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName); | |||
| WxMediaUploadResult res = wxService.uploadMedia(mediaType, fileType, inputStream); | |||
| WxMediaUploadResult res = wxService.mediaUpload(mediaType, fileType, inputStream); | |||
| Assert.assertNotNull(res.getType()); | |||
| Assert.assertNotNull(res.getCreated_at()); | |||
| Assert.assertTrue(res.getMedia_id() != null || res.getThumb_media_id() != null); | |||
| @@ -57,7 +57,7 @@ public class WxMediaAPITest { | |||
| @Test(dependsOnMethods = { "testUploadMedia" }, dataProvider="downloadMedia") | |||
| public void testDownloadMedia(String media_id) throws WxErrorException { | |||
| wxService.downloadMedia(media_id); | |||
| wxService.mediaDownload(media_id); | |||
| } | |||
| @DataProvider | |||
| @@ -27,17 +27,17 @@ public class WxMenuAPITest { | |||
| @Test(dataProvider = "menu", enabled = true) | |||
| public void testCreateMenu(WxMenu wxMenu) throws WxErrorException { | |||
| wxService.createMenu(wxMenu); | |||
| wxService.menuCreate(wxMenu); | |||
| } | |||
| @Test(dependsOnMethods = { "testCreateMenu"}, enabled = true) | |||
| public void testGetMenu() throws WxErrorException { | |||
| Assert.assertNotNull(wxService.getMenu()); | |||
| Assert.assertNotNull(wxService.menuGet()); | |||
| } | |||
| @Test(dependsOnMethods = { "testGetMenu"}, enabled = true) | |||
| public void testDeleteMenu() throws WxErrorException { | |||
| wxService.deleteMenu(); | |||
| wxService.menuDelete(); | |||
| } | |||
| @DataProvider(name="menu") | |||