Browse Source

公众平台增加群发接口对原创校验逻辑的支持

master
Binary Wang 8 years ago
parent
commit
f221ea3487
6 changed files with 65 additions and 42 deletions
  1. +17
    -5
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassOpenIdsMessage.java
  2. +27
    -12
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassTagMessage.java
  3. +5
    -8
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java
  4. +3
    -2
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassOpenIdsMessageGsonAdapter.java
  5. +1
    -3
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassSendResultAdapter.java
  6. +12
    -12
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassTagMessageGsonAdapter.java

+ 17
- 5
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassOpenIdsMessage.java View File

@@ -1,28 +1,29 @@
package me.chanjar.weixin.mp.bean; package me.chanjar.weixin.mp.bean;


import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;

import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;


import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;

/** /**
* openid列表群发的消息 * openid列表群发的消息
*
*
* @author chanjarster * @author chanjarster
*/ */
public class WxMpMassOpenIdsMessage implements Serializable { public class WxMpMassOpenIdsMessage implements Serializable {
private static final long serialVersionUID = -8022910911104788999L; private static final long serialVersionUID = -8022910911104788999L;
private List<String> toUsers = new ArrayList<>(); private List<String> toUsers = new ArrayList<>();
private String msgType; private String msgType;
private String content; private String content;
private String mediaId; private String mediaId;
private boolean sendIgnoreReprint = false;


public WxMpMassOpenIdsMessage() { public WxMpMassOpenIdsMessage() {
super(); super();
} }
public String getMsgType() { public String getMsgType() {
return this.msgType; return this.msgType;
} }
@@ -86,4 +87,15 @@ public class WxMpMassOpenIdsMessage implements Serializable {
this.toUsers = toUsers; this.toUsers = toUsers;
} }


public boolean isSendIgnoreReprint() {
return sendIgnoreReprint;
}

/**
*
* @param sendIgnoreReprint 文章被判定为转载时,是否继续进行群发操作。
*/
public void setSendIgnoreReprint(boolean sendIgnoreReprint) {
this.sendIgnoreReprint = sendIgnoreReprint;
}
} }

+ 27
- 12
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassTagMessage.java View File

@@ -1,28 +1,29 @@
package me.chanjar.weixin.mp.bean; package me.chanjar.weixin.mp.bean;


import java.io.Serializable;

import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;


import java.io.Serializable;

/** /**
* 按标签群发的消息 * 按标签群发的消息
*
*
* @author chanjarster * @author chanjarster
*/ */
public class WxMpMassTagMessage implements Serializable { public class WxMpMassTagMessage implements Serializable {
private static final long serialVersionUID = -6625914040986749286L; private static final long serialVersionUID = -6625914040986749286L;
private Long tagId; private Long tagId;
private String msgtype;
private String msgType;
private String content; private String content;
private String mediaId; private String mediaId;
private boolean sendIgnoreReprint = false;


public WxMpMassTagMessage() { public WxMpMassTagMessage() {
super(); super();
} }
public String getMsgtype() {
return this.msgtype;
public String getMsgType() {
return this.msgType;
} }


/** /**
@@ -35,10 +36,11 @@ public class WxMpMassTagMessage implements Serializable {
* {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_VOICE} * {@link me.chanjar.weixin.common.api.WxConsts#MASS_MSG_VOICE}
* 如果msgtype和media_id不匹配的话,会返回系统繁忙的错误 * 如果msgtype和media_id不匹配的话,会返回系统繁忙的错误
* </pre> * </pre>
* @param msgtype
*
* @param msgType 消息类型
*/ */
public void setMsgtype(String msgtype) {
this.msgtype = msgtype;
public void setMsgType(String msgType) {
this.msgType = msgType;
} }


public String getContent() { public String getContent() {
@@ -67,10 +69,23 @@ public class WxMpMassTagMessage implements Serializable {


/** /**
* 如果不设置则就意味着发给所有用户 * 如果不设置则就意味着发给所有用户
* @param tagId
*
* @param tagId 标签id
*/ */
public void setTagId(Long tagId) { public void setTagId(Long tagId) {
this.tagId = tagId; this.tagId = tagId;
} }


public boolean isSendIgnoreReprint() {
return sendIgnoreReprint;
}

/**
*
* @param sendIgnoreReprint 文章被判定为转载时,是否继续进行群发操作。
*/
public void setSendIgnoreReprint(boolean sendIgnoreReprint) {
this.sendIgnoreReprint = sendIgnoreReprint;
}

} }

+ 5
- 8
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpMassSendResult.java View File

@@ -1,5 +1,6 @@
package me.chanjar.weixin.mp.bean.result; package me.chanjar.weixin.mp.bean.result;


import me.chanjar.weixin.common.util.ToStringUtils;
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;


import java.io.Serializable; import java.io.Serializable;
@@ -7,19 +8,15 @@ import java.io.Serializable;
/** /**
* <pre> * <pre>
* 群发消息一发送就返回的结果 * 群发消息一发送就返回的结果
*
*
* 真正的群发消息是否发送成功要看 * 真正的群发消息是否发送成功要看
* http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口#.E4.BA.8B.E4.BB.B6.E6.8E.A8.E9.80.81.E7.BE.A4.E5.8F.91.E7.BB.93.E6.9E.9C * http://mp.weixin.qq.com/wiki/index.php?title=高级群发接口#.E4.BA.8B.E4.BB.B6.E6.8E.A8.E9.80.81.E7.BE.A4.E5.8F.91.E7.BB.93.E6.9E.9C
*
*
* </pre> * </pre>
* @author chanjarster * @author chanjarster
* *
*/ */
public class WxMpMassSendResult implements Serializable { public class WxMpMassSendResult implements Serializable {

/**
*
*/
private static final long serialVersionUID = -4816336807575562818L; private static final long serialVersionUID = -4816336807575562818L;
private String errorCode; private String errorCode;
private String errorMsg; private String errorMsg;
@@ -64,7 +61,7 @@ public class WxMpMassSendResult implements Serializable {


@Override @Override
public String toString() { public String toString() {
return "WxMassSendResult [errcode=" + this.errorCode + ", errmsg=" + this.errorMsg + ", msg_id=" + this.msgId + "]";
return ToStringUtils.toSimpleString(this);
} }
} }

+ 3
- 2
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassOpenIdsMessageGsonAdapter.java View File

@@ -19,13 +19,13 @@ public class WxMpMassOpenIdsMessageGsonAdapter implements JsonSerializer<WxMpMas
@Override @Override
public JsonElement serialize(WxMpMassOpenIdsMessage message, Type typeOfSrc, JsonSerializationContext context) { public JsonElement serialize(WxMpMassOpenIdsMessage message, Type typeOfSrc, JsonSerializationContext context) {
JsonObject messageJson = new JsonObject(); JsonObject messageJson = new JsonObject();
JsonArray toUsers = new JsonArray(); JsonArray toUsers = new JsonArray();
for (String openId : message.getToUsers()) { for (String openId : message.getToUsers()) {
toUsers.add(new JsonPrimitive(openId)); toUsers.add(new JsonPrimitive(openId));
} }
messageJson.add("touser", toUsers); messageJson.add("touser", toUsers);
if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgType())) { if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgType())) {
JsonObject sub = new JsonObject(); JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMediaId()); sub.addProperty("media_id", message.getMediaId());
@@ -52,6 +52,7 @@ public class WxMpMassOpenIdsMessageGsonAdapter implements JsonSerializer<WxMpMas
messageJson.add(WxConsts.MASS_MSG_VIDEO, sub); messageJson.add(WxConsts.MASS_MSG_VIDEO, sub);
} }
messageJson.addProperty("msgtype", message.getMsgType()); messageJson.addProperty("msgtype", message.getMsgType());
messageJson.addProperty("send_ignore_reprint", message.isSendIgnoreReprint() ? 0 : 1);
return messageJson; return messageJson;
} }




+ 1
- 3
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassSendResultAdapter.java View File

@@ -15,9 +15,7 @@ import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult;
import java.lang.reflect.Type; import java.lang.reflect.Type;


/** /**
*
* @author Daniel Qian * @author Daniel Qian
*
*/ */
public class WxMpMassSendResultAdapter implements JsonDeserializer<WxMpMassSendResult> { public class WxMpMassSendResultAdapter implements JsonDeserializer<WxMpMassSendResult> {


@@ -40,5 +38,5 @@ public class WxMpMassSendResultAdapter implements JsonDeserializer<WxMpMassSendR
} }
return sendResult; return sendResult;
} }
} }

+ 12
- 12
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMassTagMessageGsonAdapter.java View File

@@ -8,57 +8,57 @@
*/ */
package me.chanjar.weixin.mp.util.json; package me.chanjar.weixin.mp.util.json;


import java.lang.reflect.Type;

import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer; import com.google.gson.JsonSerializer;

import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.mp.bean.WxMpMassTagMessage; import me.chanjar.weixin.mp.bean.WxMpMassTagMessage;


import java.lang.reflect.Type;

public class WxMpMassTagMessageGsonAdapter implements JsonSerializer<WxMpMassTagMessage> { public class WxMpMassTagMessageGsonAdapter implements JsonSerializer<WxMpMassTagMessage> {


@Override @Override
public JsonElement serialize(WxMpMassTagMessage message, Type typeOfSrc, JsonSerializationContext context) { public JsonElement serialize(WxMpMassTagMessage message, Type typeOfSrc, JsonSerializationContext context) {
JsonObject messageJson = new JsonObject(); JsonObject messageJson = new JsonObject();
JsonObject filter = new JsonObject(); JsonObject filter = new JsonObject();
if(null == message.getTagId()) {
if (null == message.getTagId()) {
filter.addProperty("is_to_all", true); filter.addProperty("is_to_all", true);
} else { } else {
filter.addProperty("is_to_all", false); filter.addProperty("is_to_all", false);
filter.addProperty("tag_id", message.getTagId()); filter.addProperty("tag_id", message.getTagId());
} }
messageJson.add("filter", filter); messageJson.add("filter", filter);
if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_NEWS.equals(message.getMsgType())) {
JsonObject sub = new JsonObject(); JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMediaId()); sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_NEWS, sub); messageJson.add(WxConsts.MASS_MSG_NEWS, sub);
} }
if (WxConsts.MASS_MSG_TEXT.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_TEXT.equals(message.getMsgType())) {
JsonObject sub = new JsonObject(); JsonObject sub = new JsonObject();
sub.addProperty("content", message.getContent()); sub.addProperty("content", message.getContent());
messageJson.add(WxConsts.MASS_MSG_TEXT, sub); messageJson.add(WxConsts.MASS_MSG_TEXT, sub);
} }
if (WxConsts.MASS_MSG_VOICE.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_VOICE.equals(message.getMsgType())) {
JsonObject sub = new JsonObject(); JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMediaId()); sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_VOICE, sub); messageJson.add(WxConsts.MASS_MSG_VOICE, sub);
} }
if (WxConsts.MASS_MSG_IMAGE.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_IMAGE.equals(message.getMsgType())) {
JsonObject sub = new JsonObject(); JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMediaId()); sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_IMAGE, sub); messageJson.add(WxConsts.MASS_MSG_IMAGE, sub);
} }
if (WxConsts.MASS_MSG_VIDEO.equals(message.getMsgtype())) {
if (WxConsts.MASS_MSG_VIDEO.equals(message.getMsgType())) {
JsonObject sub = new JsonObject(); JsonObject sub = new JsonObject();
sub.addProperty("media_id", message.getMediaId()); sub.addProperty("media_id", message.getMediaId());
messageJson.add(WxConsts.MASS_MSG_VIDEO, sub); messageJson.add(WxConsts.MASS_MSG_VIDEO, sub);
} }
messageJson.addProperty("msgtype", message.getMsgtype());
messageJson.addProperty("msgtype", message.getMsgType());
messageJson.addProperty("send_ignore_reprint", message.isSendIgnoreReprint() ? 0 : 1);
return messageJson; return messageJson;
} }




Loading…
Cancel
Save