From a0545600873f27381bb325c8040d96e85d0697a4 Mon Sep 17 00:00:00 2001 From: allovine Date: Thu, 13 Jul 2023 11:32:16 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20#3078=20=E3=80=90=E5=85=AC=E4=BC=97?= =?UTF-8?q?=E5=8F=B7=E3=80=91=E6=A8=A1=E6=9D=BF=E6=B6=88=E6=81=AF=E8=8E=B7?= =?UTF-8?q?=E5=BE=97=E6=A8=A1=E6=9D=BFID=E7=9A=84=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=80=89=E7=94=A8=E7=B1=BB=E7=9B=AE=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=9A=84=E5=85=B3=E9=94=AE=E8=AF=8D=E7=9A=84=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpTemplateMsgService.java | 15 +++++++++++++++ .../mp/api/impl/WxMpTemplateMsgServiceImpl.java | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) 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 a2a8a2cff..9034866f5 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 @@ -66,6 +66,21 @@ public interface WxMpTemplateMsgService { */ String addTemplate(String shortTemplateId) throws WxErrorException; + /** + *
+   * 获得模板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
+   * 
+ * + * @param shortTemplateId 模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式,对于类目模板,为纯数字ID + * @param keywordNameList 选用的类目模板的关键词,按顺序传入,如果为空,或者关键词不在模板库中,会返回40246错误码 + * @return templateId 模板Id + * @throws WxErrorException . + */ + String addTemplate(String shortTemplateId, List keywordNameList) 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 b5a94ef0a..d72a2d531 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,6 @@
 package me.chanjar.weixin.mp.api.impl;
 
+import com.google.gson.Gson;
 import com.google.gson.JsonObject;
 import lombok.RequiredArgsConstructor;
 import me.chanjar.weixin.common.api.WxConsts;
@@ -68,6 +69,21 @@ public class WxMpTemplateMsgServiceImpl implements WxMpTemplateMsgService {
     throw new WxErrorException(WxError.fromJson(responseContent, WxType.MP));
   }
 
+  @Override
+  public String addTemplate(String shortTemplateId, List keywordNameList) throws WxErrorException {
+    JsonObject jsonObject = new JsonObject();
+    Gson gson = new Gson();
+    jsonObject.addProperty("template_id_short", shortTemplateId);
+    jsonObject.addProperty("keyword_name_list",gson.toJson(keywordNameList));
+    String responseContent = this.wxMpService.post(TEMPLATE_API_ADD_TEMPLATE, jsonObject.toString());
+    final JsonObject result = GsonParser.parse(responseContent);
+    if (result.get(WxConsts.ERR_CODE).getAsInt() == 0) {
+      return result.get("template_id").getAsString();
+    }
+
+    throw new WxErrorException(WxError.fromJson(responseContent, WxType.MP));
+  }
+
   @Override
   public List getAllPrivateTemplate() throws WxErrorException {
     return WxMpTemplate.fromJson(this.wxMpService.get(TEMPLATE_GET_ALL_PRIVATE_TEMPLATE, null));