微信小程序推送服务消息,订阅消息

微信小程序推送服务消息,订阅消息

还是很好理解,需要注意以下几点
1.wxMssVo.setTemplate_id(wxConfig.getSetTemplateId());//订阅消息模板id
2.templateMap.put(“time15”, new TemplateEntity(“模板数据”)); 这里的time15就模板上的编号,需要对应写上, 模板数据就是你的业务数据,一般用对象传入,看下面的TODO 说明

//TODO 这里需要用到 推送消息的模板数据,从外面来,现在没定是Map还是实体,待定。。。。。
    public  String pushInfo(String openId){
        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<String> responseEntity =null;
        WxMssVo wxMssVo = new WxMssVo();
        //模板Map
        Map<String, TemplateEntity> templateMap = new HashMap<>(4);

        String accessToken = "";
        //判断Redis内的token是否存在
        Boolean accessTokenBoolean = redisUtil.hasKey(RedisEnum.WX_Access_Token.getCode());

        //存在token直接赋值,不存在则从新获取token
        if (accessTokenBoolean){
            accessToken = redisUtil.get(RedisEnum.WX_Access_Token.getCode());
        }else{
            //token失效从新获取
            accessToken = getAccessToken();
            log.info("accessToken过期了,从新获取");
        }

        //组装发送的URl
        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken;

        wxMssVo.setTouser(openId);//用户的openid(要发送给那个用户,通常这里应该动态传进来的)
        wxMssVo.setTemplate_id(wxConfig.getSetTemplateId());//订阅消息模板id
        //需要跳转的页面
        wxMssVo.setPage("pages/jumpPage/jumpPage?weburl="+WEBURL);

        //设置模板数据
        templateMap.put("time15", new TemplateEntity("模板数据"));
        //模板数据1
        templateMap.put("thing16", new TemplateEntity("模板数据"));
        //模板数据2
        templateMap.put("thing17", new TemplateEntity("模板数据"));
        //模板数据3
        templateMap.put("thing18", new TemplateEntity("模板数据"));
        //模板数据4
        templateMap.put("thing4", new TemplateEntity("模板数据"));
        //拼接推送的模版
        wxMssVo.setData(templateMap);


        //发送Post请求
        responseEntity = restTemplate.postForEntity(url, wxMssVo, String.class);
        String body = responseEntity.getBody();
        //转换微信 返回数据
        JSONObject jsonObject = JSONObject.parseObject(body);
        //成功的时候会返回 OK
        String errmsg = jsonObject.getString("errmsg");
        log.info("推送小程序消息返回数据为: {} -----  推送是否 成功: {}",jsonObject,errmsg);
        return errmsg;
    }

忘记补充 WxMssVo 实体了

import org.move.fast.common.entity.TemplateEntity;

import java.util.Map;

/*
* 小程序推送所需数据
* qcl 微信:2501902696
* */

public class WxMssVo {
	 private String touser;//用户openid
	    private String template_id;//订阅消息模版id
	    private String page = "pages/authorization/authorization";//默认跳到小程序首页
	    private Map<String, TemplateEntity> 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 Map<String, TemplateEntity> getData() {
			return data;
		}
		public void setData(Map<String, TemplateEntity> data) {
			this.data = data;
		}
	    
}

TemplateEntity 实体

public class TemplateEntity {
	  private String value;//

	    public TemplateEntity(String value) {
	        this.value = value;
	    }

	    public String getValue() {
	        return value;
	    }

	    public void setValue(String value) {
	        this.value = value;
	    }
    
}
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值