mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-11-01 03:25:35 +08:00 
			
		
		
		
	转移群发消息相关接口到单独接口及其实现类中
This commit is contained in:
		| @ -0,0 +1,95 @@ | |||||||
|  | package me.chanjar.weixin.mp.api; | ||||||
|  |  | ||||||
|  | import me.chanjar.weixin.common.exception.WxErrorException; | ||||||
|  | import me.chanjar.weixin.mp.bean.*; | ||||||
|  | import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; | ||||||
|  | import me.chanjar.weixin.mp.bean.result.WxMpMassUploadResult; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * <pre> | ||||||
|  |  * 群发消息服务类 | ||||||
|  |  * Created by Binary Wang on 2017-8-16. | ||||||
|  |  * </pre> | ||||||
|  |  * | ||||||
|  |  * @author <a href="https://github.com/binarywang">Binary Wang</a> | ||||||
|  |  */ | ||||||
|  | public interface WxMpMassMessageService { | ||||||
|  |   /** | ||||||
|  |    * 上传群发用的图文消息 | ||||||
|  |    */ | ||||||
|  |   String MEDIA_UPLOAD_NEWS_URL = "https://api.weixin.qq.com/cgi-bin/media/uploadnews"; | ||||||
|  |   /** | ||||||
|  |    * 上传群发用的视频 | ||||||
|  |    */ | ||||||
|  |   String MEDIA_UPLOAD_VIDEO_URL = "https://api.weixin.qq.com/cgi-bin/media/uploadvideo"; | ||||||
|  |   /** | ||||||
|  |    * 分组群发消息 | ||||||
|  |    */ | ||||||
|  |   String MESSAGE_MASS_SENDALL_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall"; | ||||||
|  |   /** | ||||||
|  |    * 按openId列表群发消息 | ||||||
|  |    */ | ||||||
|  |   String MESSAGE_MASS_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/send"; | ||||||
|  |   /** | ||||||
|  |    * 群发消息预览接口 | ||||||
|  |    */ | ||||||
|  |   String MESSAGE_MASS_PREVIEW_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/preview"; | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * <pre> | ||||||
|  |    * 上传群发用的图文消息,上传后才能群发图文消息 | ||||||
|  |    * | ||||||
|  |    * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN | ||||||
|  |    * </pre> | ||||||
|  |    * | ||||||
|  |    * @see #massGroupMessageSend(WxMpMassTagMessage) | ||||||
|  |    * @see #massOpenIdsMessageSend(WxMpMassOpenIdsMessage) | ||||||
|  |    */ | ||||||
|  |   WxMpMassUploadResult massNewsUpload(WxMpMassNews news) throws WxErrorException; | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * <pre> | ||||||
|  |    * 上传群发用的视频,上传后才能群发视频消息 | ||||||
|  |    * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN | ||||||
|  |    * </pre> | ||||||
|  |    * | ||||||
|  |    * @see #massGroupMessageSend(WxMpMassTagMessage) | ||||||
|  |    * @see #massOpenIdsMessageSend(WxMpMassOpenIdsMessage) | ||||||
|  |    */ | ||||||
|  |   WxMpMassUploadResult massVideoUpload(WxMpMassVideo video) throws WxErrorException; | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * <pre> | ||||||
|  |    * 分组群发消息 | ||||||
|  |    * 如果发送图文消息,必须先使用 {@link #massNewsUpload(WxMpMassNews)} 获得media_id,然后再发送 | ||||||
|  |    * 如果发送视频消息,必须先使用 {@link #massVideoUpload(WxMpMassVideo)} 获得media_id,然后再发送 | ||||||
|  |    * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN | ||||||
|  |    * </pre> | ||||||
|  |    */ | ||||||
|  |   WxMpMassSendResult massGroupMessageSend(WxMpMassTagMessage message) throws WxErrorException; | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * <pre> | ||||||
|  |    * 按openId列表群发消息 | ||||||
|  |    * 如果发送图文消息,必须先使用 {@link #massNewsUpload(WxMpMassNews)} 获得media_id,然后再发送 | ||||||
|  |    * 如果发送视频消息,必须先使用 {@link #massVideoUpload(WxMpMassVideo)} 获得media_id,然后再发送 | ||||||
|  |    * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN | ||||||
|  |    * </pre> | ||||||
|  |    */ | ||||||
|  |   WxMpMassSendResult massOpenIdsMessageSend(WxMpMassOpenIdsMessage message) throws WxErrorException; | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * <pre> | ||||||
|  |    * 群发消息预览接口 | ||||||
|  |    * 开发者可通过该接口发送消息给指定用户,在手机端查看消息的样式和排版。为了满足第三方平台开发者的需求,在保留对openID预览能力的同时,增加了对指定微信号发送预览的能力,但该能力每日调用次数有限制(100次),请勿滥用。 | ||||||
|  |    * 接口调用请求说明 | ||||||
|  |    *  http请求方式: POST | ||||||
|  |    *  https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=ACCESS_TOKEN | ||||||
|  |    * 详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN | ||||||
|  |    * </pre> | ||||||
|  |    * | ||||||
|  |    * @return wxMpMassSendResult | ||||||
|  |    */ | ||||||
|  |   WxMpMassSendResult massMessagePreview(WxMpMassPreviewMessage wxMpMassPreviewMessage) throws Exception; | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -20,26 +20,6 @@ public interface WxMpService { | |||||||
|    * 获得jsapi_ticket |    * 获得jsapi_ticket | ||||||
|    */ |    */ | ||||||
|   String GET_JSAPI_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi"; |   String GET_JSAPI_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi"; | ||||||
|   /** |  | ||||||
|    * 上传群发用的图文消息 |  | ||||||
|    */ |  | ||||||
|   String MEDIA_UPLOAD_NEWS_URL = "https://api.weixin.qq.com/cgi-bin/media/uploadnews"; |  | ||||||
|   /** |  | ||||||
|    * 上传群发用的视频 |  | ||||||
|    */ |  | ||||||
|   String MEDIA_UPLOAD_VIDEO_URL = "https://api.weixin.qq.com/cgi-bin/media/uploadvideo"; |  | ||||||
|   /** |  | ||||||
|    * 分组群发消息 |  | ||||||
|    */ |  | ||||||
|   String MESSAGE_MASS_SENDALL_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall"; |  | ||||||
|   /** |  | ||||||
|    * 按openId列表群发消息 |  | ||||||
|    */ |  | ||||||
|   String MESSAGE_MASS_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/send"; |  | ||||||
|   /** |  | ||||||
|    * 群发消息预览接口 |  | ||||||
|    */ |  | ||||||
|   String MESSAGE_MASS_PREVIEW_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/preview"; |  | ||||||
|   /** |   /** | ||||||
|    * 长链接转短链接接口 |    * 长链接转短链接接口 | ||||||
|    */ |    */ | ||||||
| @ -141,63 +121,6 @@ public interface WxMpService { | |||||||
|    */ |    */ | ||||||
|   WxJsapiSignature createJsapiSignature(String url) throws WxErrorException; |   WxJsapiSignature createJsapiSignature(String url) throws WxErrorException; | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * <pre> |  | ||||||
|    * 上传群发用的图文消息,上传后才能群发图文消息 |  | ||||||
|    * |  | ||||||
|    * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN |  | ||||||
|    * </pre> |  | ||||||
|    * |  | ||||||
|    * @see #massGroupMessageSend(me.chanjar.weixin.mp.bean.WxMpMassTagMessage) |  | ||||||
|    * @see #massOpenIdsMessageSend(me.chanjar.weixin.mp.bean.WxMpMassOpenIdsMessage) |  | ||||||
|    */ |  | ||||||
|   WxMpMassUploadResult massNewsUpload(WxMpMassNews news) throws WxErrorException; |  | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * <pre> |  | ||||||
|    * 上传群发用的视频,上传后才能群发视频消息 |  | ||||||
|    * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN |  | ||||||
|    * </pre> |  | ||||||
|    * |  | ||||||
|    * @see #massGroupMessageSend(me.chanjar.weixin.mp.bean.WxMpMassTagMessage) |  | ||||||
|    * @see #massOpenIdsMessageSend(me.chanjar.weixin.mp.bean.WxMpMassOpenIdsMessage) |  | ||||||
|    */ |  | ||||||
|   WxMpMassUploadResult massVideoUpload(WxMpMassVideo video) throws WxErrorException; |  | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * <pre> |  | ||||||
|    * 分组群发消息 |  | ||||||
|    * 如果发送图文消息,必须先使用 {@link #massNewsUpload(me.chanjar.weixin.mp.bean.WxMpMassNews)} 获得media_id,然后再发送 |  | ||||||
|    * 如果发送视频消息,必须先使用 {@link #massVideoUpload(me.chanjar.weixin.mp.bean.WxMpMassVideo)} 获得media_id,然后再发送 |  | ||||||
|    * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN |  | ||||||
|    * </pre> |  | ||||||
|    */ |  | ||||||
|   WxMpMassSendResult massGroupMessageSend(WxMpMassTagMessage message) throws WxErrorException; |  | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * <pre> |  | ||||||
|    * 按openId列表群发消息 |  | ||||||
|    * 如果发送图文消息,必须先使用 {@link #massNewsUpload(me.chanjar.weixin.mp.bean.WxMpMassNews)} 获得media_id,然后再发送 |  | ||||||
|    * 如果发送视频消息,必须先使用 {@link #massVideoUpload(me.chanjar.weixin.mp.bean.WxMpMassVideo)} 获得media_id,然后再发送 |  | ||||||
|    * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN |  | ||||||
|    * </pre> |  | ||||||
|    */ |  | ||||||
|   WxMpMassSendResult massOpenIdsMessageSend(WxMpMassOpenIdsMessage message) throws WxErrorException; |  | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * <pre> |  | ||||||
|    * 群发消息预览接口 |  | ||||||
|    * 开发者可通过该接口发送消息给指定用户,在手机端查看消息的样式和排版。为了满足第三方平台开发者的需求,在保留对openID预览能力的同时,增加了对指定微信号发送预览的能力,但该能力每日调用次数有限制(100次),请勿滥用。 |  | ||||||
|    * 接口调用请求说明 |  | ||||||
|    *  http请求方式: POST |  | ||||||
|    *  https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=ACCESS_TOKEN |  | ||||||
|    * 详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN |  | ||||||
|    * </pre> |  | ||||||
|    * |  | ||||||
|    * @return wxMpMassSendResult |  | ||||||
|    */ |  | ||||||
|   WxMpMassSendResult massMessagePreview(WxMpMassPreviewMessage wxMpMassPreviewMessage) throws Exception; |  | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * <pre> |    * <pre> | ||||||
|    * 长链接转短链接接口 |    * 长链接转短链接接口 | ||||||
| @ -451,5 +374,9 @@ public interface WxMpService { | |||||||
|    */ |    */ | ||||||
|   RequestHttp getRequestHttp(); |   RequestHttp getRequestHttp(); | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 返回群发消息相关接口方法的实现类对象,以方便调用其各个接口 | ||||||
|  |    * @return WxMpMassMessageService | ||||||
|  |    */ | ||||||
|  |   WxMpMassMessageService getMassMessageService(); | ||||||
| } | } | ||||||
|  | |||||||
| @ -0,0 +1,58 @@ | |||||||
|  | package me.chanjar.weixin.mp.api.impl; | ||||||
|  |  | ||||||
|  | import me.chanjar.weixin.common.exception.WxErrorException; | ||||||
|  | import me.chanjar.weixin.mp.api.WxMpMassMessageService; | ||||||
|  | import me.chanjar.weixin.mp.api.WxMpService; | ||||||
|  | import me.chanjar.weixin.mp.bean.*; | ||||||
|  | import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; | ||||||
|  | import me.chanjar.weixin.mp.bean.result.WxMpMassUploadResult; | ||||||
|  | import org.slf4j.Logger; | ||||||
|  | import org.slf4j.LoggerFactory; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * <pre> | ||||||
|  |  * 群发消息服务类 | ||||||
|  |  * Created by Binary Wang on 2017-8-16. | ||||||
|  |  * </pre> | ||||||
|  |  * | ||||||
|  |  * @author <a href="https://github.com/binarywang">Binary Wang</a> | ||||||
|  |  */ | ||||||
|  | public class WxMpMassMessageServiceImpl implements WxMpMassMessageService { | ||||||
|  |   protected final Logger log = LoggerFactory.getLogger(this.getClass()); | ||||||
|  |   private WxMpService wxMpService; | ||||||
|  |  | ||||||
|  |   public WxMpMassMessageServiceImpl(WxMpService wxMpService) { | ||||||
|  |     this.wxMpService = wxMpService; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public WxMpMassUploadResult massNewsUpload(WxMpMassNews news) throws WxErrorException { | ||||||
|  |     String responseContent = this.wxMpService.post(MEDIA_UPLOAD_NEWS_URL, news.toJson()); | ||||||
|  |     return WxMpMassUploadResult.fromJson(responseContent); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public WxMpMassUploadResult massVideoUpload(WxMpMassVideo video) throws WxErrorException { | ||||||
|  |     String responseContent = this.wxMpService.post(MEDIA_UPLOAD_VIDEO_URL, video.toJson()); | ||||||
|  |     return WxMpMassUploadResult.fromJson(responseContent); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public WxMpMassSendResult massGroupMessageSend(WxMpMassTagMessage message) throws WxErrorException { | ||||||
|  |     String responseContent = this.wxMpService.post(WxMpMassMessageService.MESSAGE_MASS_SENDALL_URL, message.toJson()); | ||||||
|  |     return WxMpMassSendResult.fromJson(responseContent); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public WxMpMassSendResult massOpenIdsMessageSend(WxMpMassOpenIdsMessage message) throws WxErrorException { | ||||||
|  |     String responseContent = this.wxMpService.post(MESSAGE_MASS_SEND_URL, message.toJson()); | ||||||
|  |     return WxMpMassSendResult.fromJson(responseContent); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public WxMpMassSendResult massMessagePreview(WxMpMassPreviewMessage wxMpMassPreviewMessage) throws Exception { | ||||||
|  |     String responseContent = this.wxMpService.post(MESSAGE_MASS_PREVIEW_URL, wxMpMassPreviewMessage.toJson()); | ||||||
|  |     return WxMpMassSendResult.fromJson(responseContent); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -43,6 +43,7 @@ public abstract class WxMpServiceAbstractImpl<H, P> implements WxMpService, Requ | |||||||
|   private WxMpDeviceService deviceService = new WxMpDeviceServiceImpl(this); |   private WxMpDeviceService deviceService = new WxMpDeviceServiceImpl(this); | ||||||
|   private WxMpShakeService shakeService = new WxMpShakeServiceImpl(this); |   private WxMpShakeService shakeService = new WxMpShakeServiceImpl(this); | ||||||
|   private WxMpMemberCardService memberCardService = new WxMpMemberCardServiceImpl(this); |   private WxMpMemberCardService memberCardService = new WxMpMemberCardServiceImpl(this); | ||||||
|  |   private WxMpMassMessageService massMessageService = new WxMpMassMessageServiceImpl(this); | ||||||
|  |  | ||||||
|   private int retrySleepMillis = 1000; |   private int retrySleepMillis = 1000; | ||||||
|   private int maxRetryTimes = 5; |   private int maxRetryTimes = 5; | ||||||
| @ -108,36 +109,6 @@ public abstract class WxMpServiceAbstractImpl<H, P> implements WxMpService, Requ | |||||||
|     return getAccessToken(false); |     return getAccessToken(false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   @Override |  | ||||||
|   public WxMpMassUploadResult massNewsUpload(WxMpMassNews news) throws WxErrorException { |  | ||||||
|     String responseContent = this.post(WxMpService.MEDIA_UPLOAD_NEWS_URL, news.toJson()); |  | ||||||
|     return WxMpMassUploadResult.fromJson(responseContent); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   @Override |  | ||||||
|   public WxMpMassUploadResult massVideoUpload(WxMpMassVideo video) throws WxErrorException { |  | ||||||
|     String responseContent = this.post(WxMpService.MEDIA_UPLOAD_VIDEO_URL, video.toJson()); |  | ||||||
|     return WxMpMassUploadResult.fromJson(responseContent); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   @Override |  | ||||||
|   public WxMpMassSendResult massGroupMessageSend(WxMpMassTagMessage message) throws WxErrorException { |  | ||||||
|     String responseContent = this.post(WxMpService.MESSAGE_MASS_SENDALL_URL, message.toJson()); |  | ||||||
|     return WxMpMassSendResult.fromJson(responseContent); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   @Override |  | ||||||
|   public WxMpMassSendResult massOpenIdsMessageSend(WxMpMassOpenIdsMessage message) throws WxErrorException { |  | ||||||
|     String responseContent = this.post(WxMpService.MESSAGE_MASS_SEND_URL, message.toJson()); |  | ||||||
|     return WxMpMassSendResult.fromJson(responseContent); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   @Override |  | ||||||
|   public WxMpMassSendResult massMessagePreview(WxMpMassPreviewMessage wxMpMassPreviewMessage) throws Exception { |  | ||||||
|     String responseContent = this.post(WxMpService.MESSAGE_MASS_PREVIEW_URL, wxMpMassPreviewMessage.toJson()); |  | ||||||
|     return WxMpMassSendResult.fromJson(responseContent); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   @Override |   @Override | ||||||
|   public String shortUrl(String long_url) throws WxErrorException { |   public String shortUrl(String long_url) throws WxErrorException { | ||||||
|     JsonObject o = new JsonObject(); |     JsonObject o = new JsonObject(); | ||||||
| @ -415,4 +386,9 @@ public abstract class WxMpServiceAbstractImpl<H, P> implements WxMpService, Requ | |||||||
|   public RequestHttp getRequestHttp() { |   public RequestHttp getRequestHttp() { | ||||||
|     return this; |     return this; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public WxMpMassMessageService getMassMessageService() { | ||||||
|  |     return this.massMessageService; | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,9 +1,10 @@ | |||||||
| package me.chanjar.weixin.mp.api; | package me.chanjar.weixin.mp.api.impl; | ||||||
| 
 | 
 | ||||||
| import com.google.inject.Inject; | import com.google.inject.Inject; | ||||||
| import me.chanjar.weixin.common.api.WxConsts; | import me.chanjar.weixin.common.api.WxConsts; | ||||||
| import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; | import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; | ||||||
| import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||||
|  | import me.chanjar.weixin.mp.api.WxMpService; | ||||||
| import me.chanjar.weixin.mp.api.test.ApiTestModule; | import me.chanjar.weixin.mp.api.test.ApiTestModule; | ||||||
| import me.chanjar.weixin.mp.api.test.TestConfigStorage; | import me.chanjar.weixin.mp.api.test.TestConfigStorage; | ||||||
| import me.chanjar.weixin.mp.api.test.TestConstants; | import me.chanjar.weixin.mp.api.test.TestConstants; | ||||||
| @ -13,21 +14,21 @@ import me.chanjar.weixin.mp.bean.WxMpMassTagMessage; | |||||||
| import me.chanjar.weixin.mp.bean.WxMpMassVideo; | import me.chanjar.weixin.mp.bean.WxMpMassVideo; | ||||||
| import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; | import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; | ||||||
| import me.chanjar.weixin.mp.bean.result.WxMpMassUploadResult; | import me.chanjar.weixin.mp.bean.result.WxMpMassUploadResult; | ||||||
| import org.testng.*; |  | ||||||
| import org.testng.annotations.*; | import org.testng.annotations.*; | ||||||
| 
 | 
 | ||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
| import java.io.InputStream; | import java.io.InputStream; | ||||||
| 
 | 
 | ||||||
|  | import static org.testng.Assert.*; | ||||||
|  | 
 | ||||||
| /** | /** | ||||||
|  * 测试群发消息 |  * 测试群发消息 | ||||||
|  * |  * | ||||||
|  * @author chanjarster |  * @author chanjarster | ||||||
|  */ |  */ | ||||||
| @Test(groups = "massAPI", dependsOnGroups = {"baseAPI", "mediaAPI", "groupAPI"}) | @Test | ||||||
| @Guice(modules = ApiTestModule.class) | @Guice(modules = ApiTestModule.class) | ||||||
| public class WxMpMassMessageAPITest { | public class WxMpMassMessageServiceImplTest { | ||||||
| 
 |  | ||||||
|   @Inject |   @Inject | ||||||
|   protected WxMpService wxService; |   protected WxMpService wxService; | ||||||
| 
 | 
 | ||||||
| @ -41,10 +42,10 @@ public class WxMpMassMessageAPITest { | |||||||
|     massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); |     massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | ||||||
|     massMessage.getToUsers().add(configProvider.getOpenid()); |     massMessage.getToUsers().add(configProvider.getOpenid()); | ||||||
| 
 | 
 | ||||||
|     WxMpMassSendResult massResult = this.wxService |     WxMpMassSendResult massResult = this.wxService.getMassMessageService() | ||||||
|       .massOpenIdsMessageSend(massMessage); |       .massOpenIdsMessageSend(massMessage); | ||||||
|     Assert.assertNotNull(massResult); |     assertNotNull(massResult); | ||||||
|     Assert.assertNotNull(massResult.getMsgId()); |     assertNotNull(massResult.getMsgId()); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @Test(dataProvider = "massMessages") |   @Test(dataProvider = "massMessages") | ||||||
| @ -57,10 +58,10 @@ public class WxMpMassMessageAPITest { | |||||||
|     massMessage.setMediaId(mediaId); |     massMessage.setMediaId(mediaId); | ||||||
|     massMessage.getToUsers().add(configProvider.getOpenid()); |     massMessage.getToUsers().add(configProvider.getOpenid()); | ||||||
| 
 | 
 | ||||||
|     WxMpMassSendResult massResult = this.wxService |     WxMpMassSendResult massResult = this.wxService.getMassMessageService() | ||||||
|       .massOpenIdsMessageSend(massMessage); |       .massOpenIdsMessageSend(massMessage); | ||||||
|     Assert.assertNotNull(massResult); |     assertNotNull(massResult); | ||||||
|     Assert.assertNotNull(massResult.getMsgId()); |     assertNotNull(massResult.getMsgId()); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @Test |   @Test | ||||||
| @ -71,10 +72,10 @@ public class WxMpMassMessageAPITest { | |||||||
|     massMessage |     massMessage | ||||||
|       .setTagId(this.wxService.getUserTagService().tagGet().get(0).getId()); |       .setTagId(this.wxService.getUserTagService().tagGet().get(0).getId()); | ||||||
| 
 | 
 | ||||||
|     WxMpMassSendResult massResult = this.wxService |     WxMpMassSendResult massResult = this.wxService.getMassMessageService() | ||||||
|       .massGroupMessageSend(massMessage); |       .massGroupMessageSend(massMessage); | ||||||
|     Assert.assertNotNull(massResult); |     assertNotNull(massResult); | ||||||
|     Assert.assertNotNull(massResult.getMsgId()); |     assertNotNull(massResult.getMsgId()); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @Test(dataProvider = "massMessages") |   @Test(dataProvider = "massMessages") | ||||||
| @ -85,10 +86,10 @@ public class WxMpMassMessageAPITest { | |||||||
|     massMessage.setMediaId(mediaId); |     massMessage.setMediaId(mediaId); | ||||||
|     massMessage.setTagId(this.wxService.getUserTagService().tagGet().get(0).getId()); |     massMessage.setTagId(this.wxService.getUserTagService().tagGet().get(0).getId()); | ||||||
| 
 | 
 | ||||||
|     WxMpMassSendResult massResult = this.wxService |     WxMpMassSendResult massResult = this.wxService.getMassMessageService() | ||||||
|       .massGroupMessageSend(massMessage); |       .massGroupMessageSend(massMessage); | ||||||
|     Assert.assertNotNull(massResult); |     assertNotNull(massResult); | ||||||
|     Assert.assertNotNull(massResult.getMsgId()); |     assertNotNull(massResult.getMsgId()); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @DataProvider |   @DataProvider | ||||||
| @ -103,17 +104,17 @@ public class WxMpMassMessageAPITest { | |||||||
|       // 上传视频到媒体库 |       // 上传视频到媒体库 | ||||||
|       WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() |       WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | ||||||
|         .mediaUpload(WxConsts.MEDIA_VIDEO, TestConstants.FILE_MP4, inputStream); |         .mediaUpload(WxConsts.MEDIA_VIDEO, TestConstants.FILE_MP4, inputStream); | ||||||
|       Assert.assertNotNull(uploadMediaRes); |       assertNotNull(uploadMediaRes); | ||||||
|       Assert.assertNotNull(uploadMediaRes.getMediaId()); |       assertNotNull(uploadMediaRes.getMediaId()); | ||||||
| 
 | 
 | ||||||
|       // 把视频变成可被群发的媒体 |       // 把视频变成可被群发的媒体 | ||||||
|       WxMpMassVideo video = new WxMpMassVideo(); |       WxMpMassVideo video = new WxMpMassVideo(); | ||||||
|       video.setTitle("测试标题"); |       video.setTitle("测试标题"); | ||||||
|       video.setDescription("测试描述"); |       video.setDescription("测试描述"); | ||||||
|       video.setMediaId(uploadMediaRes.getMediaId()); |       video.setMediaId(uploadMediaRes.getMediaId()); | ||||||
|       WxMpMassUploadResult uploadResult = this.wxService.massVideoUpload(video); |       WxMpMassUploadResult uploadResult = this.wxService.getMassMessageService().massVideoUpload(video); | ||||||
|       Assert.assertNotNull(uploadResult); |       assertNotNull(uploadResult); | ||||||
|       Assert.assertNotNull(uploadResult.getMediaId()); |       assertNotNull(uploadResult.getMediaId()); | ||||||
|       messages[0] = new Object[]{WxConsts.MASS_MSG_VIDEO, uploadResult.getMediaId()}; |       messages[0] = new Object[]{WxConsts.MASS_MSG_VIDEO, uploadResult.getMediaId()}; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -124,8 +125,8 @@ public class WxMpMassMessageAPITest { | |||||||
|       .getSystemResourceAsStream("mm.jpeg")) { |       .getSystemResourceAsStream("mm.jpeg")) { | ||||||
|       WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() |       WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | ||||||
|         .mediaUpload(WxConsts.MEDIA_IMAGE, TestConstants.FILE_JPG, inputStream); |         .mediaUpload(WxConsts.MEDIA_IMAGE, TestConstants.FILE_JPG, inputStream); | ||||||
|       Assert.assertNotNull(uploadMediaRes); |       assertNotNull(uploadMediaRes); | ||||||
|       Assert.assertNotNull(uploadMediaRes.getMediaId()); |       assertNotNull(uploadMediaRes.getMediaId()); | ||||||
|       messages[1] = new Object[]{WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId()}; |       messages[1] = new Object[]{WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId()}; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -136,8 +137,8 @@ public class WxMpMassMessageAPITest { | |||||||
|       .getSystemResourceAsStream("mm.mp3")) { |       .getSystemResourceAsStream("mm.mp3")) { | ||||||
|       WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() |       WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | ||||||
|         .mediaUpload(WxConsts.MEDIA_VOICE, TestConstants.FILE_MP3, inputStream); |         .mediaUpload(WxConsts.MEDIA_VOICE, TestConstants.FILE_MP3, inputStream); | ||||||
|       Assert.assertNotNull(uploadMediaRes); |       assertNotNull(uploadMediaRes); | ||||||
|       Assert.assertNotNull(uploadMediaRes.getMediaId()); |       assertNotNull(uploadMediaRes.getMediaId()); | ||||||
|       messages[2] = new Object[]{WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMediaId()}; |       messages[2] = new Object[]{WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMediaId()}; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -149,8 +150,8 @@ public class WxMpMassMessageAPITest { | |||||||
|       // 上传照片到媒体库 |       // 上传照片到媒体库 | ||||||
|       WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() |       WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | ||||||
|         .mediaUpload(WxConsts.MEDIA_IMAGE, TestConstants.FILE_JPG, inputStream); |         .mediaUpload(WxConsts.MEDIA_IMAGE, TestConstants.FILE_JPG, inputStream); | ||||||
|       Assert.assertNotNull(uploadMediaRes); |       assertNotNull(uploadMediaRes); | ||||||
|       Assert.assertNotNull(uploadMediaRes.getMediaId()); |       assertNotNull(uploadMediaRes.getMediaId()); | ||||||
| 
 | 
 | ||||||
|       // 上传图文消息 |       // 上传图文消息 | ||||||
|       WxMpMassNews news = new WxMpMassNews(); |       WxMpMassNews news = new WxMpMassNews(); | ||||||
| @ -170,10 +171,10 @@ public class WxMpMassMessageAPITest { | |||||||
|       article2.setDigest("摘要2"); |       article2.setDigest("摘要2"); | ||||||
|       news.addArticle(article2); |       news.addArticle(article2); | ||||||
| 
 | 
 | ||||||
|       WxMpMassUploadResult massUploadResult = this.wxService |       WxMpMassUploadResult massUploadResult = this.wxService.getMassMessageService() | ||||||
|         .massNewsUpload(news); |         .massNewsUpload(news); | ||||||
|       Assert.assertNotNull(massUploadResult); |       assertNotNull(massUploadResult); | ||||||
|       Assert.assertNotNull(uploadMediaRes.getMediaId()); |       assertNotNull(uploadMediaRes.getMediaId()); | ||||||
|       messages[3] = new Object[]{WxConsts.MASS_MSG_NEWS, massUploadResult.getMediaId()}; |       messages[3] = new Object[]{WxConsts.MASS_MSG_NEWS, massUploadResult.getMediaId()}; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -5,7 +5,7 @@ | |||||||
|     <classes> |     <classes> | ||||||
|       <class name="me.chanjar.weixin.mp.api.WxMpBusyRetryTest"/> |       <class name="me.chanjar.weixin.mp.api.WxMpBusyRetryTest"/> | ||||||
|       <class name="me.chanjar.weixin.mp.api.WxMpBaseAPITest"/> |       <class name="me.chanjar.weixin.mp.api.WxMpBaseAPITest"/> | ||||||
|       <class name="me.chanjar.weixin.mp.api.WxMpMassMessageAPITest"/> |       <class name="me.chanjar.weixin.mp.api.impl.WxMpMassMessageServiceImplTest"/> | ||||||
|       <class name="me.chanjar.weixin.mp.api.impl.WxMpUserServiceImplTest"/> |       <class name="me.chanjar.weixin.mp.api.impl.WxMpUserServiceImplTest"/> | ||||||
|       <class name="me.chanjar.weixin.mp.api.impl.WxMpQrcodeServiceImplTest"/> |       <class name="me.chanjar.weixin.mp.api.impl.WxMpQrcodeServiceImplTest"/> | ||||||
|       <class name="me.chanjar.weixin.mp.api.WxMpShortUrlAPITest"/> |       <class name="me.chanjar.weixin.mp.api.WxMpShortUrlAPITest"/> | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Binary Wang
					Binary Wang