添加微信的模板消息API

This commit is contained in:
wangkang
2018-03-02 11:31:54 +08:00
parent 0de12e6702
commit 39476d64a0
5 changed files with 207 additions and 0 deletions
@@ -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;
}
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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<String, SendMessageTemplateDataVo> data;
}