赞
踩
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/uniform-message/uniformMessage.send.html
package com.zmkj.springcloud.pass.common.entity.wx.mesPushData; public class TemplateData { private String value;// public TemplateData(String value) { this.value = value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
package com.zmkj.springcloud.pass.common.entity.wx.mesPushData; import java.util.Map; /* * 小程序推送所需数据 * */ public class WxMssVo { private String touser;//用户openid private String template_id;//订阅消息模版id private Map<String, TemplateData> 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 Map<String, TemplateData> getData() { return data; } public void setData(Map<String, TemplateData> data) { this.data = data; } }
package com.zmkj.springcloud.pass.common.util; import com.alibaba.fastjson.JSON; import com.zmkj.springcloud.pass.common.entity.wx.mesPushData.TemplateData; import com.zmkj.springcloud.pass.common.entity.wx.mesPushData.WxMssVo; import com.zmkj.springcloud.pass.common.vo.Result; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; import java.util.Map; /* * 微信消息推送 * */ public class WxMesgPushUtil { private static RestTemplate restTemplate; static { // 构建请求对象 restTemplate = new RestTemplate(); } // 推送 public static Result<Object> wxPush(String appId, String secret, String oppenId, String TemplateId, Map<String, TemplateData> hashMap) { String accessToken = ""; // 微信 获取 token String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={1}&secret={2}"; ResponseEntity<String> forEntity = restTemplate.getForEntity(url, String.class, appId, secret); String code = forEntity.getStatusCode().toString(); if ("200".equals(code)) { String body = forEntity.getBody(); Map map = JSON.parseObject(body, Map.class); accessToken = map.get("access_token").toString(); } // 定义消息推送请求 String postUrl = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken; // 创建消息推送对象 WxMssVo wxMssVo = new WxMssVo(); wxMssVo.setTouser(oppenId); wxMssVo.setTemplate_id(TemplateId); wxMssVo.setData(hashMap); // 发送请求 ResponseEntity<String> responseEntity = restTemplate.postForEntity(postUrl, wxMssVo, String.class); // 推送成功格式: {"errcode":0,"errmsg":"ok"} String wxCode = responseEntity.getStatusCode().toString(); if ("200".equals(wxCode)) { // 判断是否报错 String body = responseEntity.getBody(); Map<String, String> map = JSON.parseObject(body, Map.class); String errmsg = map.get("errmsg"); if ("ok".equals(errmsg)) { // 返回成功 Result<Object> result = new Result<>(StatusMagic.SUCCESS); return result; } else { // 返回失败 Result<Object> result = new Result<>(StatusMagic.ERROR); result.setMsg(errmsg); return result; } } else { Result<Object> result = new Result<>(StatusMagic.ERROR); result.setMsg(wxCode); return result; } } }
package com.zmkj.springcloud.pass.common.vo; import com.alibaba.fastjson.JSONObject; import com.zmkj.springcloud.pass.common.util.StatusMagic; public class Result<T> { public Integer code; public String msg; public T data; public Result() { } public Result(int code, String msg) { this.code = code; this.msg = msg; } public Result(StatusMagic sm) { // this.data = new JSONObject(); this.code = sm.getCode(); this.msg = sm.getMessage(); } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。