最近公司在做小程序:研究了一下小程序推送
以下是我自定义的接口以及封装数据的pojo
POJO:用于接收前端传过来的json数据
package com.hecross.patient.WX.vo; import java.util.Map; public class WxMssVo { private String touser; private String template_id; private String page; private String form_id; private Map<String,Map<String,Object>> 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 getPage() { return page; } public void setPage(String page) { this.page = page; } public String getForm_id() { return form_id; } public void setForm_id(String form_id) { this.form_id = form_id; } public Map<String, Map<String, Object>> getData() { return data; } public void setData(Map<String, Map<String, Object>> data) { this.data = data; } }
Controller
@ApiOperation(value = "2.0小程序推送", notes = "") @RequestMapping(method = RequestMethod.POST, value = "getMss") @ResponseBody public Result getMss(@ApiParam(name = "推送的json", value = "推送的json ", required = true) @RequestBody WxMssVo wxMssVo) { try { Map<String, Object> mss = iRemoteVisitService.getMss(wxMssVo); return new Result(mss, "", RestHttpCode.SUCCESS.getCode(), RestHttpCode.SUCCESS.getMsg()); } catch (Exception e) { return new Result(RestHttpCode.W_P_REMOTEVISIT_ERROR.getCode(), e.getMessage()); } }
service:用于获取token 以及发送模板消息
@Override public Map<String,Object> getMss(WxMssVo wxMssVo) { Map<String,Object> patientMap = new HashMap<>(); try { //授权(必填) String grant_type = "client_credential"; String appid = "ggggg"; String appsecret = "aaaaa"; //URL String requestUrl = "https://api.weixin.qq.com/cgi-bin/token"; //请求参数 String params = "appid=" + appid + "&secret=" + appsecret + "&grant_type=" + grant_type; //发送请求 String data = WxHttpUtil.get(requestUrl, params); //解析相应内容(转换成json对象) JSONObject json = JSONObject.fromObject(data); String send_Json = Create_Json.send_Json(new Gson().toJson(wxMssVo), json.get("access_token").toString()); //用户的唯一标识(openid) patientMap.put("responseInfo",json); patientMap.put("ErrorCode", send_Json); } catch (Exception e) { e.printStackTrace(); } return patientMap; }
此接口可实现通用