栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 实现小程序 消息订阅

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 实现小程序 消息订阅

对于新版本消息订阅 ,与之前有些区别,之前的写法就不列举了。有兴趣的可以从网上浏览。

一、 封装消息的类
  
    @Data
    public class TemplateData {
        private String value;
    }
二、封装入参的类
 
    @Data
    public static class WxMssVo {
        
        private String access_token;
        
        private String touser;
        
        private String template_id;
        
        private String page;
        
        private Map data;
    }
三、获取access_token
    private String getAccessToken() {
        //获取access_token
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential" +
                "&appid=" + "小程序Id" + "&secret=" + "小程序秘钥";
     
          RestTemplate  restTemplate = new RestTemplate();
        
        String json = restTemplate.getForObject(url, String.class);
        JSonObject myJson = JSONObject.parseObject(json);
        return myJson.get("access_token").toString();
    }
四、发送消息
 
    public String sendMessage(String templateId) {
        String accessToken = getAccessToken();
        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken;
        WxMssVo wxMssVo = new WxMssVo();
        wxMssVo.setTouser("openid");
        wxMssVo.setTemplate_id(templateId);
        Map dataVoMap = new HashMap<>();
        TemplateData key1 = new TemplateData();
        TemplateData key2 = new TemplateData();
        TemplateData key3 = new TemplateData();
        key1.setValue("张一一");
        key2.setValue("乒乓球");
        key3.setValue("报名成功");
        //这里的key  为选用的模版的对应的key  可在选用的模版的详情中查看  切必须为这些,否则会报 参数错误提示
        dataVoMap.put("name11", key1);
        dataVoMap.put("thing5", key2);
        dataVoMap.put("thing7", key3);
        wxMssVo.setData(dataVoMap);
        HttpHeaders headers = new HttpHeaders();
        //设置编码  不设置转码 可能会出现 乱码问题
        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
        // 请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        if (restTemplate == null) {
            restTemplate = new RestTemplate();
        }
        String string = JSONObject.toJSonString(wxMssVo);
        HttpEntity requestEntity = new HttpEntity(string, headers);
        ResponseEntity stringResponseEntity = restTemplate.postForEntity(url, requestEntity, String.class);
        return stringResponseEntity.getBody();
    }

这里的 name11 thing5 thing7 对应文中 map key

 效果图

 

注意:代码中注释 很重要 请认真阅读 有什么不理解的欢迎提问。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/310493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号