From 09ed3652131e4c33c90c07cf56d2db9d984293c7 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Tue, 22 Aug 2017 23:43:21 +0800 Subject: [PATCH] =?UTF-8?q?#312=20=E6=B7=BB=E5=8A=A0=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=BE=A4=E5=8F=91=20=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpMassMessageService.java | 24 +++++++++++++++++++ .../api/impl/WxMpMassMessageServiceImpl.java | 9 +++++++ .../impl/WxMpMassMessageServiceImplTest.java | 5 ++++ 3 files changed, 38 insertions(+) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMassMessageService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMassMessageService.java index e4a57de9..6d1f0257 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMassMessageService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMassMessageService.java @@ -34,6 +34,10 @@ public interface WxMpMassMessageService { * 群发消息预览接口 */ String MESSAGE_MASS_PREVIEW_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/preview"; + /** + * 删除群发接口 + */ + String MESSAGE_MASS_DELETE_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/delete"; /** *
@@ -92,4 +96,24 @@ public interface WxMpMassMessageService {
    */
   WxMpMassSendResult massMessagePreview(WxMpMassPreviewMessage wxMpMassPreviewMessage) throws Exception;
 
+  /**
+   * 
+   * 删除群发
+   * 群发之后,随时可以通过该接口删除群发。
+   * 请注意:
+   * 1、只有已经发送成功的消息才能删除
+   * 2、删除消息是将消息的图文详情页失效,已经收到的用户,还是能在其本地看到消息卡片。
+   * 3、删除群发消息只能删除图文消息和视频消息,其他类型的消息一经发送,无法删除。
+   * 4、如果多次群发发送的是一个图文消息,那么删除其中一次群发,就会删除掉这个图文消息也,导致所有群发都失效
+   * 接口调用请求说明:
+   *  http请求方式: POST
+   *  https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=ACCESS_TOKEN
+   * 详情请见:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1481187827_i0l21
+   * 
+ * + * @param msgId 发送出去的消息ID + * @param articleIndex 要删除的文章在图文消息中的位置,第一篇编号为1,该字段不填或填0会删除全部文章 + */ + void delete(Integer msgId, Integer articleIndex) throws Exception; + } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMassMessageServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMassMessageServiceImpl.java index 015c465c..c54fcc76 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMassMessageServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMassMessageServiceImpl.java @@ -1,5 +1,6 @@ package me.chanjar.weixin.mp.api.impl; +import com.google.gson.JsonObject; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.api.WxMpMassMessageService; import me.chanjar.weixin.mp.api.WxMpService; @@ -55,4 +56,12 @@ public class WxMpMassMessageServiceImpl implements WxMpMassMessageService { return WxMpMassSendResult.fromJson(responseContent); } + @Override + public void delete(Integer msgId, Integer articleIndex) throws Exception { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("msg_id", msgId); + jsonObject.addProperty("article_idx", articleIndex); + this.wxMpService.post(MESSAGE_MASS_DELETE_URL, jsonObject.toString()); + } + } diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMassMessageServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMassMessageServiceImplTest.java index b896723a..3b6c0489 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMassMessageServiceImplTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMassMessageServiceImplTest.java @@ -181,4 +181,9 @@ public class WxMpMassMessageServiceImplTest { return messages; } + @Test + public void testMassDelete() throws Exception { + this.wxService.getMassMessageService().delete(1,2); + } + }