From 39476d64a0e8aecec5cc547c7f7a000092119947 Mon Sep 17 00:00:00 2001 From: wangkang Date: Fri, 2 Mar 2018 11:31:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BE=AE=E4=BF=A1=E7=9A=84?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E6=B6=88=E6=81=AFAPI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../udf/weixin/mp/api/MessageTemplate.java | 56 +++++++++++++++++++ .../udf/weixin/mp/api/domain/Miniprogram.java | 35 ++++++++++++ .../api/domain/SendMessageTemplateDataVo.java | 35 ++++++++++++ .../api/domain/SendMessageTemplateResult.java | 27 +++++++++ .../mp/api/domain/SendMessageTemplateVo.java | 54 ++++++++++++++++++ 5 files changed, 207 insertions(+) create mode 100644 udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/MessageTemplate.java create mode 100644 udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Miniprogram.java create mode 100644 udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateDataVo.java create mode 100644 udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateResult.java create mode 100644 udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateVo.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/MessageTemplate.java b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/MessageTemplate.java new file mode 100644 index 0000000..b38bbcf --- /dev/null +++ b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/MessageTemplate.java @@ -0,0 +1,56 @@ +package org.itkk.udf.weixin.mp.api; + +import org.itkk.udf.weixin.mp.api.domain.SendMessageTemplateResult; +import org.itkk.udf.weixin.mp.api.domain.SendMessageTemplateVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; + +/** + * MessageTemplate + */ +@Component +public class MessageTemplate { + + /** + * weixinMpApiProperties + */ + @Autowired + private WeixinMpApiProperties weixinMpApiProperties; + + /** + * token + */ + @Autowired + private Token token; + + /** + * externalRestTemplate + */ + @Autowired + @Qualifier("externalRestTemplate") + private RestTemplate externalRestTemplate; + + /** + * SendMessageTemplateResult + * + * @param businessCode businessCode + * @param param param + * @return SendMessageTemplateResult + */ + public SendMessageTemplateResult send(String businessCode, SendMessageTemplateVo param) { + //获得接口地址 + String path = weixinMpApiProperties.getApiPath().get("message_template_send"); + //拼接url + StringBuilder url = new StringBuilder(path); + url.append(WeixinMpConsont.appendAccessToken(token.get(businessCode))); + //请求 + SendMessageTemplateResult result = externalRestTemplate.postForEntity(url.toString(), param, SendMessageTemplateResult.class).getBody(); + //验证 + WeixinMpConsont.checkResult(result); + //返回 + return result; + } + +} diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Miniprogram.java b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Miniprogram.java new file mode 100644 index 0000000..0afd2f3 --- /dev/null +++ b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Miniprogram.java @@ -0,0 +1,35 @@ +package org.itkk.udf.weixin.mp.api.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * Miniprogram + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(description = "小程序") +public class Miniprogram implements Serializable { + + /** + * ID + */ + private static final long serialVersionUID = 1L; + + /** + * appid + */ + @ApiModelProperty(value = "所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系)", required = true, dataType = "string") + private String appid; + + /** + * pagepath + */ + @ApiModelProperty(value = "所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar)", required = true, dataType = "string") + private String pagepath; + +} diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateDataVo.java b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateDataVo.java new file mode 100644 index 0000000..8bf4577 --- /dev/null +++ b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateDataVo.java @@ -0,0 +1,35 @@ +package org.itkk.udf.weixin.mp.api.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * SendMessageTemplateDataVo + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(description = "发送模板消息变量Data实体") +public class SendMessageTemplateDataVo implements Serializable { + + /** + * ID + */ + private static final long serialVersionUID = 1L; + + /** + * value + */ + @ApiModelProperty(value = "变量的数据", required = true, dataType = "string") + private String value; + + /** + * color + */ + @ApiModelProperty(value = "模板内容字体颜色,不填默认为黑色", dataType = "string") + private String color; + +} diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateResult.java b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateResult.java new file mode 100644 index 0000000..9e3449b --- /dev/null +++ b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateResult.java @@ -0,0 +1,27 @@ +package org.itkk.udf.weixin.mp.api.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * SendMessageTemplateResult + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(description = "模板消息发送结果") +public class SendMessageTemplateResult extends BaseResult { + + /** + * ID + */ + private static final long serialVersionUID = 1L; + + /** + * msgid + */ + @ApiModelProperty(value = "消息ID", required = true, dataType = "String") + private String msgid; + +} diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateVo.java b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateVo.java new file mode 100644 index 0000000..dd9c6e0 --- /dev/null +++ b/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/SendMessageTemplateVo.java @@ -0,0 +1,54 @@ +package org.itkk.udf.weixin.mp.api.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Map; + +/** + * SendMessageTemplateVo + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(description = "发送模板消息实体") +public class SendMessageTemplateVo implements Serializable { + + /** + * ID + */ + private static final long serialVersionUID = 1L; + + /** + * touser + */ + @ApiModelProperty(value = "接收者openid", required = true, dataType = "string") + private String touser; + + /** + * template_id + */ + @ApiModelProperty(value = "模板ID", required = true, dataType = "string") + private String template_id; //NOSONAR + + /** + * url + */ + @ApiModelProperty(value = "模板跳转链接", dataType = "string") + private String url; + + /** + * miniprogram + */ + @ApiModelProperty(value = "跳小程序所需数据,不需跳小程序可不用传该数据", dataType = "object") + private Miniprogram miniprogram; + + /** + * data + */ + @ApiModelProperty(value = "模板数据", required = true, dataType = "object") + private Map data; + +}