小程序订阅消息推送

小程序的订阅消息与公众号的订阅消息有些不同, 还请注意了, 别掉坑了!!!

一丶阅读开发文档,需获取的有:

1丶模板推送地址
2丶模板ID
3丶accessToken地址
4丶accessToken类型

二丶获取access_Token
private AccessTokenVo getAccessToken() {

        //获取RestTemplate对象
        RestTemplate restTemplate = new RestTemplate();
        //获取配置信息(自己配置的动态数据)
        WxConfigEntity configEntity = wxConfigService.select();
        WxConfigEntity.Miniapp miniapp = configEntity.getMiniapp();
        //拼接地址
        String url = miniapp.getAccessTokenUrl()+"?grant_type="+miniapp.getAccessType()+"&appid="+miniapp.getAppid()+"&secret="+miniapp.getSecret();
        //发起请求获取json数据(get请求)
        String json = restTemplate.getForObject(url,String.class);
        //数据返回
        return JSONObject.parseObject(json,AccessTokenVo.class);
    }
三丶发送订阅消息
/**
     * 发送订阅消息
     *
     * @param openId       小程序openId
     * @param templateId   模板ID
     * @param list         模板字段对应推送内容
     * @param pageUrl      点击详情返回地址
     * @return
     */
    private SubscribeReturn pushMsg(String openId, String templateId, List<TemplateContent> list, String pageUrl) {

        //获取配置内容
        WxConfigEntity.Miniapp miniapp = wxConfigService.select().getMiniapp();
        //获取accessToken
        String accessToken = getAccessToken().getAccess_token();
        //拼接请求地址
        String url = miniapp.getPushTemplateUrl()+"?access_token="+accessToken;
        //创建拼接推送的模板的对象
        WeChatPushMsgVo msgVo = new WeChatPushMsgVo();
        //获取map
        Map<String, TemplateData> map = new HashMap<>();
        //数据遍历
        for (TemplateContent content : list) {
            //数据定义封装(key需要符合小程序模板的规范)
            TemplateData templateData = new TemplateData();
            templateData.setValue(content.getValue());
            map.put(content.getKey(),templateData);
        }
        //装载数据
        msgVo.setTouser(openId).setAccess_token(accessToken).setTemplate_id(templateId).setPage(pageUrl).setData(map);
        //请求地址返回数据
        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, msgVo, String.class);
        //数据返回
        return JSONObject.parseObject(responseEntity.getBody(),SubscribeReturn.class);
    }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五丶选择模板对应模板字段

在这里插入图片描述
这样就可以推送小程序的订阅消息了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值