diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpTemplateMsgService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpTemplateMsgService.java index 9f6965974..4788bf3e9 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpTemplateMsgService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpTemplateMsgService.java @@ -1,8 +1,11 @@ package me.chanjar.weixin.mp.api; +import java.util.List; + import me.chanjar.weixin.common.exception.WxErrorException; -import me.chanjar.weixin.mp.bean.WxMpIndustry; -import me.chanjar.weixin.mp.bean.WxMpTemplateMessage; +import me.chanjar.weixin.mp.bean.template.WxMpTemplate; +import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry; +import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; /** *
@@ -24,7 +27,7 @@ public interface WxMpTemplateMsgService {
*
* @return 是否成功
*/
- boolean setIndustry(WxMpIndustry wxMpIndustry) throws WxErrorException;
+ boolean setIndustry(WxMpTemplateIndustry wxMpIndustry) throws WxErrorException;
/***
*
@@ -34,7 +37,7 @@ public interface WxMpTemplateMsgService {
*
* @return wxMpIndustry
*/
- WxMpIndustry getIndustry() throws WxErrorException;
+ WxMpTemplateIndustry getIndustry() throws WxErrorException;
/**
*
@@ -53,8 +56,20 @@ public interface WxMpTemplateMsgService {
* 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277&token=&lang=zh_CN
* 接口地址格式:https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=ACCESS_TOKEN
*
- *@param shortTemplateId 模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式
+ * @param shortTemplateId 模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式
* @return templateId 模板Id
*/
String addTemplate(String shortTemplateId) throws WxErrorException;
+
+ /**
+ *
+ * 获取模板列表
+ * 获取已添加至帐号下所有模板列表,可在MP中查看模板列表信息,为方便第三方开发者,提供通过接口调用的方式来获取帐号下所有模板信息
+ * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277&token=&lang=zh_CN
+ * 接口地址格式:https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=ACCESS_TOKEN
+ *
+ *
+ * @return templateId 模板Id
+ */
+ List getAllPrivateTemplate() throws WxErrorException;
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpTemplateMsgServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpTemplateMsgServiceImpl.java
index a404cb021..e4ee2a1b3 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpTemplateMsgServiceImpl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpTemplateMsgServiceImpl.java
@@ -1,5 +1,7 @@
package me.chanjar.weixin.mp.api.impl;
+import java.util.List;
+
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@@ -7,8 +9,9 @@ import me.chanjar.weixin.common.bean.result.WxError;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.WxMpTemplateMsgService;
-import me.chanjar.weixin.mp.bean.WxMpIndustry;
-import me.chanjar.weixin.mp.bean.WxMpTemplateMessage;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplate;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
/**
*
@@ -38,7 +41,7 @@ public class WxMpTemplateMsgServiceImpl implements WxMpTemplateMsgService {
}
@Override
- public boolean setIndustry(WxMpIndustry wxMpIndustry) throws WxErrorException {
+ public boolean setIndustry(WxMpTemplateIndustry wxMpIndustry) throws WxErrorException {
if (null == wxMpIndustry.getPrimaryIndustry() || null == wxMpIndustry.getPrimaryIndustry().getId()
|| null == wxMpIndustry.getSecondIndustry() || null == wxMpIndustry.getSecondIndustry().getId()) {
throw new IllegalArgumentException("行业Id不能为空,请核实");
@@ -50,10 +53,10 @@ public class WxMpTemplateMsgServiceImpl implements WxMpTemplateMsgService {
}
@Override
- public WxMpIndustry getIndustry() throws WxErrorException {
+ public WxMpTemplateIndustry getIndustry() throws WxErrorException {
String url = API_URL_PREFIX + "/get_industry";
String responseContent = this.wxMpService.get(url, null);
- return WxMpIndustry.fromJson(responseContent);
+ return WxMpTemplateIndustry.fromJson(responseContent);
}
@Override
@@ -70,4 +73,10 @@ public class WxMpTemplateMsgServiceImpl implements WxMpTemplateMsgService {
throw new WxErrorException(WxError.fromJson(responseContent));
}
+ @Override
+ public List getAllPrivateTemplate() throws WxErrorException {
+ String url = API_URL_PREFIX + "/get_all_private_template";
+ return WxMpTemplate.fromJson(this.wxMpService.get(url, null));
+ }
+
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplate.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplate.java
new file mode 100644
index 000000000..ffa2711f3
--- /dev/null
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplate.java
@@ -0,0 +1,126 @@
+package me.chanjar.weixin.mp.bean.template;
+
+import java.util.List;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import com.google.gson.JsonParser;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.reflect.TypeToken;
+
+import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
+
+/**
+ *
+ * 模板列表信息
+ * Created by Binary Wang on 2016-10-17.
+ * @author binarywang(Binary Wang)
+ *
+ */
+public class WxMpTemplate {
+
+ private static final JsonParser JSON_PARSER = new JsonParser();
+
+ public static List fromJson(String json) {
+ return WxMpGsonBuilder.create().fromJson(JSON_PARSER.parse(json).getAsJsonObject().get("template_list"),
+ new TypeToken>() {
+ }.getType());
+ }
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
+ }
+
+ /**
+ * template_id
+ * 模板ID
+ */
+ @SerializedName("template_id")
+ private String templateId;
+
+ /**
+ * title
+ * 模板标题
+ */
+ @SerializedName("title")
+ private String title;
+
+ /**
+ * primary_industry
+ * 模板所属行业的一级行业
+ */
+ @SerializedName("primary_industry")
+ private String primaryIndustry;
+
+ /**
+ * deputy_industry
+ * 模板所属行业的二级行业
+ */
+ @SerializedName("deputy_industry")
+ private String deputyIndustry;
+
+ /**
+ * content
+ * 模板内容
+ */
+ @SerializedName("content")
+ private String content;
+
+ /**
+ * example
+ * 模板示例
+ */
+ @SerializedName("example")
+ private String example;
+
+ public String getTemplateId() {
+ return templateId;
+ }
+
+ public void setTemplateId(String templateId) {
+ this.templateId = templateId;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getPrimaryIndustry() {
+ return primaryIndustry;
+ }
+
+ public void setPrimaryIndustry(String primaryIndustry) {
+ this.primaryIndustry = primaryIndustry;
+ }
+
+ public String getDeputyIndustry() {
+ return deputyIndustry;
+ }
+
+ public void setDeputyIndustry(String deputyIndustry) {
+ this.deputyIndustry = deputyIndustry;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getExample() {
+ return example;
+ }
+
+ public void setExample(String example) {
+ this.example = example;
+ }
+
+}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpTemplateData.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateData.java
similarity index 95%
rename from weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpTemplateData.java
rename to weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateData.java
index d46ae24b6..0eb0eaa58 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpTemplateData.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateData.java
@@ -1,4 +1,4 @@
-package me.chanjar.weixin.mp.bean;
+package me.chanjar.weixin.mp.bean.template;
import java.io.Serializable;
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpIndustry.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateIndustry.java
similarity index 86%
rename from weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpIndustry.java
rename to weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateIndustry.java
index b94fe10be..b0f689a4a 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpIndustry.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateIndustry.java
@@ -1,4 +1,4 @@
-package me.chanjar.weixin.mp.bean;
+package me.chanjar.weixin.mp.bean.template;
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
@@ -10,15 +10,15 @@ import java.io.Serializable;
/**
* @author miller
*/
-public class WxMpIndustry implements Serializable {
+public class WxMpTemplateIndustry implements Serializable {
private static final long serialVersionUID = -7700398224795914722L;
private Industry primaryIndustry;
private Industry secondIndustry;
- public WxMpIndustry() {
+ public WxMpTemplateIndustry() {
}
- public WxMpIndustry(Industry primaryIndustry, Industry secondIndustry) {
+ public WxMpTemplateIndustry(Industry primaryIndustry, Industry secondIndustry) {
this.primaryIndustry = primaryIndustry;
this.secondIndustry = secondIndustry;
}
@@ -81,8 +81,8 @@ public class WxMpIndustry implements Serializable {
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
}
- public static WxMpIndustry fromJson(String json) {
- return WxMpGsonBuilder.create().fromJson(json, WxMpIndustry.class);
+ public static WxMpTemplateIndustry fromJson(String json) {
+ return WxMpGsonBuilder.create().fromJson(json, WxMpTemplateIndustry.class);
}
public String toJson() {
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpTemplateMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessage.java
similarity index 98%
rename from weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpTemplateMessage.java
rename to weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessage.java
index 408abb50b..106e5fb6e 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpTemplateMessage.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessage.java
@@ -1,4 +1,4 @@
-package me.chanjar.weixin.mp.bean;
+package me.chanjar.weixin.mp.bean.template;
import java.io.Serializable;
import java.util.ArrayList;
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java
index df63ac648..e2f215e68 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java
@@ -5,7 +5,6 @@ import com.google.gson.GsonBuilder;
import me.chanjar.weixin.mp.bean.WxMpCard;
import me.chanjar.weixin.mp.bean.WxMpCustomMessage;
-import me.chanjar.weixin.mp.bean.WxMpIndustry;
import me.chanjar.weixin.mp.bean.WxMpMassNews;
import me.chanjar.weixin.mp.bean.WxMpMassOpenIdsMessage;
import me.chanjar.weixin.mp.bean.WxMpMassPreviewMessage;
@@ -13,7 +12,6 @@ import me.chanjar.weixin.mp.bean.WxMpMassTagMessage;
import me.chanjar.weixin.mp.bean.WxMpMassVideo;
import me.chanjar.weixin.mp.bean.WxMpMaterialArticleUpdate;
import me.chanjar.weixin.mp.bean.WxMpMaterialNews;
-import me.chanjar.weixin.mp.bean.WxMpTemplateMessage;
import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserCumulate;
import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary;
import me.chanjar.weixin.mp.bean.result.WxMediaImgUploadResult;
@@ -31,6 +29,8 @@ import me.chanjar.weixin.mp.bean.result.WxMpSemanticQueryResult;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import me.chanjar.weixin.mp.bean.result.WxMpUserBlacklistGetResult;
import me.chanjar.weixin.mp.bean.result.WxMpUserList;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
public class WxMpGsonBuilder {
@@ -68,7 +68,7 @@ public class WxMpGsonBuilder {
INSTANCE.registerTypeAdapter(WxMpCard.class, new WxMpCardGsonAdapter());
INSTANCE.registerTypeAdapter(WxMpMassPreviewMessage.class, new WxMpMassPreviewMessageGsonAdapter());
INSTANCE.registerTypeAdapter(WxMediaImgUploadResult.class, new WxMediaImgUploadResultGsonAdapter());
- INSTANCE.registerTypeAdapter(WxMpIndustry.class, new WxMpIndustryGsonAdapter());
+ INSTANCE.registerTypeAdapter(WxMpTemplateIndustry.class, new WxMpIndustryGsonAdapter());
INSTANCE.registerTypeAdapter(WxMpUserBlacklistGetResult.class, new WxUserBlacklistGetResultGsonAdapter());
}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpIndustryGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpIndustryGsonAdapter.java
index ea715a703..68106bb65 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpIndustryGsonAdapter.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpIndustryGsonAdapter.java
@@ -2,7 +2,7 @@ package me.chanjar.weixin.mp.util.json;
import com.google.gson.*;
import me.chanjar.weixin.common.util.json.GsonHelper;
-import me.chanjar.weixin.mp.bean.WxMpIndustry;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry;
import java.lang.reflect.Type;
@@ -10,9 +10,9 @@ import java.lang.reflect.Type;
* @author miller
*/
public class WxMpIndustryGsonAdapter
- implements JsonSerializer, JsonDeserializer {
+ implements JsonSerializer, JsonDeserializer {
@Override
- public JsonElement serialize(WxMpIndustry wxMpIndustry, Type type,
+ public JsonElement serialize(WxMpTemplateIndustry wxMpIndustry, Type type,
JsonSerializationContext jsonSerializationContext) {
JsonObject json = new JsonObject();
json.addProperty("industry_id1", wxMpIndustry.getPrimaryIndustry().getId());
@@ -21,10 +21,10 @@ public class WxMpIndustryGsonAdapter
}
@Override
- public WxMpIndustry deserialize(JsonElement jsonElement, Type type,
+ public WxMpTemplateIndustry deserialize(JsonElement jsonElement, Type type,
JsonDeserializationContext jsonDeserializationContext)
throws JsonParseException {
- WxMpIndustry wxMpIndustry = new WxMpIndustry();
+ WxMpTemplateIndustry wxMpIndustry = new WxMpTemplateIndustry();
JsonObject primaryIndustry = jsonElement.getAsJsonObject()
.get("primary_industry").getAsJsonObject();
wxMpIndustry.setPrimaryIndustry(convertFromJson(primaryIndustry));
@@ -34,8 +34,8 @@ public class WxMpIndustryGsonAdapter
return wxMpIndustry;
}
- private static WxMpIndustry.Industry convertFromJson(JsonObject json) {
- WxMpIndustry.Industry industry = new WxMpIndustry.Industry();
+ private static WxMpTemplateIndustry.Industry convertFromJson(JsonObject json) {
+ WxMpTemplateIndustry.Industry industry = new WxMpTemplateIndustry.Industry();
industry.setFirstClass(GsonHelper.getString(json, "first_class"));
industry.setSecondClass(GsonHelper.getString(json, "second_class"));
return industry;
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpTemplateMessageGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpTemplateMessageGsonAdapter.java
index 4c2d12272..4e2630209 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpTemplateMessageGsonAdapter.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpTemplateMessageGsonAdapter.java
@@ -12,8 +12,9 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
-import me.chanjar.weixin.mp.bean.WxMpTemplateData;
-import me.chanjar.weixin.mp.bean.WxMpTemplateMessage;
+
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import java.lang.reflect.Type;
diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpTemplateMsgServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpTemplateMsgServiceImplTest.java
index b967719f5..3c6fd0b42 100644
--- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpTemplateMsgServiceImplTest.java
+++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpTemplateMsgServiceImplTest.java
@@ -2,6 +2,7 @@ package me.chanjar.weixin.mp.api.impl;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.List;
import org.testng.Assert;
import org.testng.annotations.Guice;
@@ -12,9 +13,10 @@ import com.google.inject.Inject;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.mp.api.ApiTestModule;
import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage;
-import me.chanjar.weixin.mp.bean.WxMpIndustry;
-import me.chanjar.weixin.mp.bean.WxMpTemplateData;
-import me.chanjar.weixin.mp.bean.WxMpTemplateMessage;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplate;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry;
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
/**
*
@@ -45,15 +47,15 @@ public class WxMpTemplateMsgServiceImplTest {
@Test
public void testGetIndustry() throws Exception {
- final WxMpIndustry industry = this.wxService.getTemplateMsgService().getIndustry();
+ final WxMpTemplateIndustry industry = this.wxService.getTemplateMsgService().getIndustry();
Assert.assertNotNull(industry);
System.out.println(industry);
}
@Test
public void testSetIndustry() throws Exception {
- WxMpIndustry industry = new WxMpIndustry(new WxMpIndustry.Industry("1"),
- new WxMpIndustry.Industry("04"));
+ WxMpTemplateIndustry industry = new WxMpTemplateIndustry(new WxMpTemplateIndustry.Industry("1"),
+ new WxMpTemplateIndustry.Industry("04"));
boolean result = this.wxService.getTemplateMsgService().setIndustry(industry);
Assert.assertTrue(result);
}
@@ -65,4 +67,11 @@ public class WxMpTemplateMsgServiceImplTest {
System.err.println(result);
}
+ @Test
+ public void testGetAllPrivateTemplate() throws Exception {
+ List result = this.wxService.getTemplateMsgService().getAllPrivateTemplate();
+ Assert.assertNotNull(result);
+ System.err.println(result);
+ }
+
}