| @@ -46,4 +46,15 @@ public interface WxMpTemplateMsgService { | |||||
| */ | */ | ||||
| String sendTemplateMsg(WxMpTemplateMessage templateMessage) throws WxErrorException; | String sendTemplateMsg(WxMpTemplateMessage templateMessage) throws WxErrorException; | ||||
| /** | |||||
| * <pre> | |||||
| * 获得模板ID | |||||
| * 从行业模板库选择模板到帐号后台,获得模板ID的过程可在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/api_add_template?access_token=ACCESS_TOKEN | |||||
| * </pre> | |||||
| *@param shortTemplateId 模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式 | |||||
| * @return templateId 模板Id | |||||
| */ | |||||
| String addTemplate(String shortTemplateId) throws WxErrorException; | |||||
| } | } | ||||
| @@ -2,6 +2,7 @@ package me.chanjar.weixin.mp.api.impl; | |||||
| import com.google.gson.JsonObject; | import com.google.gson.JsonObject; | ||||
| import com.google.gson.JsonParser; | import com.google.gson.JsonParser; | ||||
| import me.chanjar.weixin.common.bean.result.WxError; | import me.chanjar.weixin.common.bean.result.WxError; | ||||
| import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||
| import me.chanjar.weixin.mp.api.WxMpService; | import me.chanjar.weixin.mp.api.WxMpService; | ||||
| @@ -55,4 +56,18 @@ public class WxMpTemplateMsgServiceImpl implements WxMpTemplateMsgService { | |||||
| return WxMpIndustry.fromJson(responseContent); | return WxMpIndustry.fromJson(responseContent); | ||||
| } | } | ||||
| @Override | |||||
| public String addTemplate(String shortTemplateId) throws WxErrorException { | |||||
| String url = API_URL_PREFIX + "/api_add_template"; | |||||
| JsonObject jsonObject = new JsonObject(); | |||||
| jsonObject.addProperty("template_id_short", shortTemplateId); | |||||
| String responseContent = this.wxMpService.post(url, jsonObject.toString()); | |||||
| final JsonObject result = JSON_PARSER.parse(responseContent).getAsJsonObject(); | |||||
| if (result.get("errcode").getAsInt() == 0) { | |||||
| return result.get("template_id").getAsString(); | |||||
| } | |||||
| throw new WxErrorException(WxError.fromJson(responseContent)); | |||||
| } | |||||
| } | } | ||||
| @@ -1,18 +1,20 @@ | |||||
| package me.chanjar.weixin.mp.api.impl; | package me.chanjar.weixin.mp.api.impl; | ||||
| import java.text.SimpleDateFormat; | |||||
| import java.util.Date; | |||||
| import org.testng.Assert; | |||||
| import org.testng.annotations.Guice; | |||||
| import org.testng.annotations.Test; | |||||
| import com.google.inject.Inject; | import com.google.inject.Inject; | ||||
| import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||
| import me.chanjar.weixin.mp.api.ApiTestModule; | import me.chanjar.weixin.mp.api.ApiTestModule; | ||||
| import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage; | import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage; | ||||
| import me.chanjar.weixin.mp.bean.WxMpIndustry; | import me.chanjar.weixin.mp.bean.WxMpIndustry; | ||||
| import me.chanjar.weixin.mp.bean.WxMpTemplateData; | import me.chanjar.weixin.mp.bean.WxMpTemplateData; | ||||
| import me.chanjar.weixin.mp.bean.WxMpTemplateMessage; | import me.chanjar.weixin.mp.bean.WxMpTemplateMessage; | ||||
| import org.testng.Assert; | |||||
| import org.testng.annotations.Guice; | |||||
| import org.testng.annotations.Test; | |||||
| import java.text.SimpleDateFormat; | |||||
| import java.util.Date; | |||||
| /** | /** | ||||
| * <pre> | * <pre> | ||||
| @@ -56,4 +58,11 @@ public class WxMpTemplateMsgServiceImplTest { | |||||
| Assert.assertTrue(result); | Assert.assertTrue(result); | ||||
| } | } | ||||
| @Test | |||||
| public void testAddTemplate() throws Exception { | |||||
| String result = this.wxService.getTemplateMsgService().addTemplate("TM00015"); | |||||
| Assert.assertNotNull(result); | |||||
| System.err.println(result); | |||||
| } | |||||
| } | } | ||||