diff --git a/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/WeixinProxy.java b/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/WeixinProxy.java index e21ded07..df9fc2fd 100644 --- a/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/WeixinProxy.java +++ b/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/WeixinProxy.java @@ -9,6 +9,8 @@ import com.foxinmy.weixin4j.token.TokenCreator; import com.foxinmy.weixin4j.token.TokenManager; import com.foxinmy.weixin4j.wxa.api.LoginApi; import com.foxinmy.weixin4j.wxa.api.QrCodeApi; +import com.foxinmy.weixin4j.wxa.api.TemplateApi; +import com.foxinmy.weixin4j.wxa.api.TemplateMessageApi; /** * @since 1.8 @@ -17,6 +19,8 @@ public class WeixinProxy { private final LoginApi loginApi; private final QrCodeApi qrCodeApi; + private final TemplateApi templateApi; + private final TemplateMessageApi templateMessageApi; public WeixinProxy( WeixinAccount weixinAccount @@ -62,6 +66,8 @@ public class WeixinProxy { this.loginApi = new LoginApi(weixinAccount); this.qrCodeApi = new QrCodeApi(tokenManager); + this.templateApi = new TemplateApi(tokenManager); + this.templateMessageApi = new TemplateMessageApi(tokenManager); } public LoginApi getLoginApi() { @@ -72,4 +78,12 @@ public class WeixinProxy { return qrCodeApi; } + public TemplateApi getTemplateApi() { + return templateApi; + } + + public TemplateMessageApi getTemplateMessageApi() { + return templateMessageApi; + } + } diff --git a/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/api/AddTemplateParameter.java b/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/api/AddTemplateParameter.java new file mode 100644 index 00000000..c4bf016b --- /dev/null +++ b/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/api/AddTemplateParameter.java @@ -0,0 +1,39 @@ +package com.foxinmy.weixin4j.wxa.api; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; + +class AddTemplateParameter implements Serializable { + + private static final long serialVersionUID = 2018052601L; + + private String id; + private int[] keywordIds; + + public AddTemplateParameter() { + } + + public AddTemplateParameter(String id, int[] keywordIds) { + this.id = id; + this.keywordIds = keywordIds; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @JSONField(name = "keyword_id_list") + public int[] getKeywordIds() { + return keywordIds; + } + + public void setKeywordIds(int[] keywordIds) { + this.keywordIds = keywordIds; + } + +} diff --git a/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/api/NoticeApi.java b/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/api/NoticeApi.java new file mode 100644 index 00000000..b1ccb6bf --- /dev/null +++ b/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/api/NoticeApi.java @@ -0,0 +1,30 @@ +package com.foxinmy.weixin4j.wxa.api; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.foxinmy.weixin4j.exception.WeixinException; +import com.foxinmy.weixin4j.http.weixin.WeixinResponse; +import com.foxinmy.weixin4j.token.TokenManager; + +abstract class NoticeApi extends WxaApi { + + private final TokenManager tokenManager; + + public NoticeApi(final TokenManager tokenManager) { + this.tokenManager = tokenManager; + } + + T post(String key, Object params, TypeReference typeReference) throws WeixinException { + final String uri = this.getAccessTokenRequestUri(key); + final String body = JSON.toJSONString(params); + final WeixinResponse response = this.weixinExecutor.post(uri, body); + return response.getAsObject(typeReference); + } + + String getAccessTokenRequestUri(String key) throws WeixinException { + final String accessToken = tokenManager.getAccessToken(); + final String uri = this.getRequestUri(key, accessToken); + return uri; + } + +} diff --git a/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/api/TemplateApi.java b/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/api/TemplateApi.java new file mode 100644 index 00000000..50af65ed --- /dev/null +++ b/weixin4j-wxa/src/main/java/com/foxinmy/weixin4j/wxa/api/TemplateApi.java @@ -0,0 +1,122 @@ +package com.foxinmy.weixin4j.wxa.api; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.foxinmy.weixin4j.exception.WeixinException; +import com.foxinmy.weixin4j.model.paging.Pageable; +import com.foxinmy.weixin4j.model.paging.Pagedata; +import com.foxinmy.weixin4j.token.TokenManager; +import com.foxinmy.weixin4j.wxa.model.template.Template; + +/** + * 模版消息管理 + * + * @see 模版消息管理 + * @since 1.8 + */ +public class TemplateApi extends NoticeApi { + + public TemplateApi(TokenManager tokenManager) { + super(tokenManager); + } + + /** + * 获取小程序模板库标题列表 + * + * @param pageable the pagination information. + * @return templates in library. + * @throws WeixinException indicates getting access token failed or getting templates failed. + * @see 获取小程序模板库标题列表 + */ + public Pagedata