@Override
public void sendWechatShort(Integer memberId, String url, String templateId, String value1, String value2, String value3, String remark) throws Exception {
WeChatBean w = new WeChatBean();
w.setUrl(url);
Map map = new HashMap();
map.put("appid", "");
map.put("pagepath", "");
w.setMiniprogram(map);
w.setTemplate_id(templateId);
DataForm dataform = new DataForm();
ValueNaturn v = new ValueNaturn(value1, "");
dataform.setFirst(v);
ValueNaturn v1 = new ValueNaturn(value2, "");
dataform.setKeyword1(v1);
ValueNaturn v2 = new ValueNaturn(value3, "");
dataform.setKeyword2(v2);
ValueNaturn v3 = new ValueNaturn(remark, "");
dataform.setRemark(v3);
w.setData(dataform);
List<WechatInfo> wechatInfos = wechatInfoMapper.selectWechatInfoByMemberId(memberId);
if (wechatInfos.size() <= 0) {
throw new BusinessException("未找到此用户微信信息");
}
String urlFirst = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
urlFirst = urlFirst.replace("APPID", apppId);
urlFirst = urlFirst.replace("APPSECRET", appSecret);
String str = HttpClientUtils.doGet(urlFirst);
JSONObject parseObject = JSONArray.parseObject(str);
String accessToken = parseObject.getString("access_token");
for (WechatInfo wechatInfo : wechatInfos) {
w.setTouser(wechatInfo.getopenid());
String urlSecond = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";
urlSecond = urlSecond.replace("ACCESS_TOKEN", accessToken);
Object tokenJson = JSONArray.toJSON(w);
String flag = HttpClientUtils.sendHttpPost(urlSecond, tokenJson.toString());
if (flag.contains(":43004")) {
throw new BusinessException("该用户未关注公众号");
}
if (!flag.contains("ok")) {
throw new BusinessException("发送信息失败");
}
}
}
import java.io.Serializable;
import java.util.Map;
public class WeChatBean implements Serializable {
private String touser;
private String template_id;
private String url;
private Map<String, String> miniprogram;
private DataForm data;
public String getTouser() {
return touser;
}
public void setTouser(String touser) {
this.touser = touser;
}
public String getTemplate_id() {
return template_id;
}
public void setTemplate_id(String template_id) {
this.template_id = template_id;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public Map<String, String> getMiniprogram() {
return miniprogram;
}
public void setMiniprogram(Map<String, String> miniprogram) {
this.miniprogram = miniprogram;
}
public DataForm getData() {
return data;
}
public void setData(DataForm data) {
this.data = data;
}
@Override
public String toString() {
return "WeChatBean [touser=" + touser + ", template_id=" + template_id + ", url=" + url + ", miniprogram="
+ miniprogram + ", data=" + data + "]";
}
}
public class DataForm implements Serializable {
private ValueNaturn first;
private ValueNaturn keyword1;
private ValueNaturn keyword2;
private ValueNaturn keyword3;
private ValueNaturn remark;
@Override
public String toString() {
return "DataForm [first=" + first + ", keyword1=" + keyword1 + ", keyword2=" + keyword2 + ", keyword3="
+ keyword3 + ", remark=" + remark + "]";
}
public ValueNaturn getFirst() {
return first;
}
public void setFirst(ValueNaturn first) {
this.first = first;
}
public ValueNaturn getKeyword1() {
return keyword1;
}
public void setKeyword1(ValueNaturn keyword1) {
this.keyword1 = keyword1;
}
public ValueNaturn getKeyword2() {
return keyword2;
}
public void setKeyword2(ValueNaturn keyword2) {
this.keyword2 = keyword2;
}
public ValueNaturn getKeyword3() {
return keyword3;
}
public void setKeyword3(ValueNaturn keyword3) {
this.keyword3 = keyword3;
}
public ValueNaturn getRemark() {
return remark;
}
public void setRemark(ValueNaturn remark) {
this.remark = remark;
}
}
public class ValueNaturn implements Serializable {
private String value;
private String color;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public ValueNaturn(String value, String color) {
super();
this.value = value;
this.color = color;
}
@Override
public String toString() {
return "ValueNaturn [value=" + value + ", color=" + color + "]";
}
}