executor, String uri, E data) throws WxErrorException {
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpMessage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpMessage.java
index d28c178c..cd455d88 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpMessage.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpMessage.java
@@ -10,6 +10,7 @@ import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
import me.chanjar.weixin.cp.bean.article.NewArticle;
import me.chanjar.weixin.cp.bean.messagebuilder.FileBuilder;
import me.chanjar.weixin.cp.bean.messagebuilder.ImageBuilder;
+import me.chanjar.weixin.cp.bean.messagebuilder.MarkdownMsgBuilder;
import me.chanjar.weixin.cp.bean.messagebuilder.MpnewsBuilder;
import me.chanjar.weixin.cp.bean.messagebuilder.NewsBuilder;
import me.chanjar.weixin.cp.bean.messagebuilder.TextBuilder;
@@ -94,6 +95,13 @@ public class WxCpMessage implements Serializable {
return new MpnewsBuilder();
}
+ /**
+ * 获得markdown消息builder.
+ */
+ public static MarkdownMsgBuilder MARKDOWN() {
+ return new MarkdownMsgBuilder();
+ }
+
/**
* 获得文件消息builder.
*/
@@ -112,6 +120,7 @@ public class WxCpMessage implements Serializable {
* {@link WxConsts.KefuMsgType#VIDEO}
* {@link WxConsts.KefuMsgType#NEWS}
* {@link WxConsts.KefuMsgType#MPNEWS}
+ * {@link WxConsts.KefuMsgType#MARKDOWN}
*
*
* @param msgType 消息类型
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/MarkdownMsgBuilder.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/MarkdownMsgBuilder.java
new file mode 100644
index 00000000..6e0a4a33
--- /dev/null
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/MarkdownMsgBuilder.java
@@ -0,0 +1,32 @@
+package me.chanjar.weixin.cp.bean.messagebuilder;
+
+import me.chanjar.weixin.common.api.WxConsts;
+import me.chanjar.weixin.cp.bean.WxCpMessage;
+
+/**
+ *
+ * markdown类型的消息builder
+ * Created by Binary Wang on 2019/1/20.
+ *
+ *
+ * @author Binary Wang
+ */
+public class MarkdownMsgBuilder extends BaseBuilder {
+ private String content;
+
+ public MarkdownMsgBuilder() {
+ this.msgType = WxConsts.KefuMsgType.MARKDOWN;
+ }
+
+ public MarkdownMsgBuilder content(String content) {
+ this.content = content;
+ return this;
+ }
+
+ @Override
+ public WxCpMessage build() {
+ WxCpMessage m = super.build();
+ m.setContent(this.content);
+ return m;
+ }
+}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpMessageGsonAdapter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpMessageGsonAdapter.java
index 7bed435d..fbf70bb5 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpMessageGsonAdapter.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpMessageGsonAdapter.java
@@ -8,14 +8,19 @@
*/
package me.chanjar.weixin.cp.util.json;
-import com.google.gson.*;
+import java.lang.reflect.Type;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.cp.bean.WxCpMessage;
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
import me.chanjar.weixin.cp.bean.article.NewArticle;
-import org.apache.commons.lang3.StringUtils;
-
-import java.lang.reflect.Type;
/**
* @author Daniel Qian
@@ -37,12 +42,19 @@ public class WxCpMessageGsonAdapter implements JsonSerializer {
if (StringUtils.isNotBlank(message.getToTag())) {
messageJson.addProperty("totag", message.getToTag());
}
+
if (WxConsts.KefuMsgType.TEXT.equals(message.getMsgType())) {
JsonObject text = new JsonObject();
text.addProperty("content", message.getContent());
messageJson.add("text", text);
}
+ if (WxConsts.KefuMsgType.MARKDOWN.equals(message.getMsgType())) {
+ JsonObject text = new JsonObject();
+ text.addProperty("content", message.getContent());
+ messageJson.add("markdown", text);
+ }
+
if (WxConsts.KefuMsgType.TEXTCARD.equals(message.getMsgType())) {
JsonObject text = new JsonObject();
text.addProperty("title", message.getTitle());
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java
index 640bbad1..370f33f8 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java
@@ -1,11 +1,12 @@
package me.chanjar.weixin.cp.api;
+import org.testng.annotations.*;
+
import com.google.inject.Inject;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.bean.WxCpMessage;
import me.chanjar.weixin.cp.bean.WxCpMessageSendResult;
-import org.testng.annotations.*;
import static org.testng.Assert.*;
@@ -14,7 +15,7 @@ import static org.testng.Assert.*;
* @author Daniel Qian
*
*/
-@Test(groups = "customMessageAPI")
+@Test
@Guice(modules = ApiTestModule.class)
public class WxCpMessageAPITest {
@@ -59,4 +60,32 @@ public class WxCpMessageAPITest {
System.out.println(messageSendResult.getInvalidUserList());
System.out.println(messageSendResult.getInvalidTagList());
}
+
+ @Test
+ public void testSendMessage_markdown() throws WxErrorException {
+ WxCpMessage message = WxCpMessage
+ .MARKDOWN()
+ .toUser(configStorage.getUserId())
+ .content("您的会议室已经预定,稍后会同步到`邮箱` \n" +
+ " >**事项详情** \n" +
+ " >事 项:开会 \n" +
+ " >组织者:@miglioguan \n" +
+ " >参与者:@miglioguan、@kunliu、@jamdeezhou、@kanexiong、@kisonwang \n" +
+ " > \n" +
+ " >会议室:广州TIT 1楼 301 \n" +
+ " >日 期:2018年5月18日 \n" +
+ " >时 间:上午9:00-11:00 \n" +
+ " > \n" +
+ " >请准时参加会议。 \n" +
+ " > \n" +
+ " >如需修改会议信息,请点击:[修改会议信息](https://work.weixin.qq.com)")
+ .build();
+
+ WxCpMessageSendResult messageSendResult = this.wxService.messageSend(message);
+ assertNotNull(messageSendResult);
+ System.out.println(messageSendResult);
+ System.out.println(messageSendResult.getInvalidPartyList());
+ System.out.println(messageSendResult.getInvalidUserList());
+ System.out.println(messageSendResult.getInvalidTagList());
+ }
}
diff --git a/weixin-java-miniapp/pom.xml b/weixin-java-miniapp/pom.xml
index 68530324..1dc35df6 100644
--- a/weixin-java-miniapp/pom.xml
+++ b/weixin-java-miniapp/pom.xml
@@ -9,9 +9,10 @@
wx-java
3.3.2.B
+
weixin-java-miniapp
- WxJava - MiniApp
- 微信小程序Java SDK
+ WxJava - MiniApp Java SDK
+ 微信小程序 Java SDK
diff --git a/weixin-java-mp/pom.xml b/weixin-java-mp/pom.xml
index 79783a56..4196eb28 100644
--- a/weixin-java-mp/pom.xml
+++ b/weixin-java-mp/pom.xml
@@ -9,8 +9,9 @@
wx-java
3.3.2.B
+
weixin-java-mp
- WxJava - MP
+ WxJava - MP Java SDK
微信公众号Java SDK
diff --git a/weixin-java-open/pom.xml b/weixin-java-open/pom.xml
index 437aef4d..3abad1f2 100644
--- a/weixin-java-open/pom.xml
+++ b/weixin-java-open/pom.xml
@@ -3,16 +3,17 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0">
-
4.0.0
com.github.binarywang
wx-java
3.3.2.B
+
weixin-java-open
- WxJava - Open
- 微信开放平台Java SDK
+ WxJava - Open Java SDK
+ 微信开放平台 Java SDK
+
007
diff --git a/weixin-java-pay/pom.xml b/weixin-java-pay/pom.xml
index 1d401fde..d3f7dc3e 100644
--- a/weixin-java-pay/pom.xml
+++ b/weixin-java-pay/pom.xml
@@ -10,7 +10,7 @@
4.0.0
weixin-java-pay
- WxJava - PAY
+ WxJava - PAY Java SDK
微信支付 Java SDK