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 e4a57de99..6d1f02572 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 015c465c0..c54fcc768 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 b896723ab..3b6c04898 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);
+ }
+
}