• Java-Class-Miniprogram:com.ylbtech.common.utils.miniprogram.TemplateMessage.java


    ylbtech-Java-Class-Miniprogram:com.ylbtech.common.utils.miniprogram.TemplateMessage.java
    1.返回顶部
    1.1、
    package com.ylbtech.common.utils.miniprogram;
    
    import org.springframework.http.HttpEntity;
    import org.springframework.http.HttpHeaders;
    import org.springframework.http.MediaType;
    import org.springframework.http.ResponseEntity;
    import org.springframework.http.converter.StringHttpMessageConverter;
    import org.springframework.web.client.RestTemplate;
    
    import java.nio.charset.StandardCharsets;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 模板消息
     * https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.addTemplate.html
     */
    public class TemplateMessage {
    
        /**
         * 组合模板并添加至帐号下的个人模板库
         * @param access_token 接口调用凭证
         * @param id 模板标题id,可通过接口获取,也可登录小程序后台查看获取
         * @param keyword_id_list 开发者自行组合好的模板关键词列表,关键词顺序可以自由搭配(例如[3,5,4]或[4,5,3]),最多支持10个关键词组合
         * @param restTemplate
         * @return
         */
        public static String addTemplate(String access_token, String id, List<Integer> keyword_id_list, RestTemplate restTemplate) {
    
            restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
            String url = "https://api.weixin.qq.com/cgi-bin/wxopen/template/add?access_token="+access_token;
            //请求头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            //请求体
            Map<String, Object> requestParam = new HashMap<>();
            requestParam.put("id", id);
            requestParam.put("keyword_id_list",keyword_id_list);
    
            //封装成一个请求对象
            HttpEntity entity = new HttpEntity(requestParam, headers);
            //发送数据方法
            ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class);
    
            //得到返回的数据body
            return forEntity.getBody();
        }
    
        /**
         * 删除帐号下的某个模板
         * @param access_token 接口调用凭证
         * @param template_id 要删除的模板id
         * @param restTemplate
         * @return
         */
        public static String deleteTemplate(String access_token, String template_id, RestTemplate restTemplate) {
    
            restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
            String url = "https://api.weixin.qq.com/cgi-bin/wxopen/template/del?access_token="+access_token;
            //请求头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            //请求体
            Map<String, Object> requestParam = new HashMap<>();
            requestParam.put("template_id", template_id);
    
            //封装成一个请求对象
            HttpEntity entity = new HttpEntity(requestParam, headers);
            //发送数据方法
            ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class);
    
            //得到返回的数据body
            return forEntity.getBody();
        }
    
        /**
         * 获取模板库某个模板标题下关键词库
         * @param access_token 接口调用凭证
         * @param id 模板标题id,可通过接口获取,也可登录小程序后台查看获取
         * @param restTemplate
         * @return
         */
        public static String getTemplateLibraryById(String access_token, String id, RestTemplate restTemplate) {
    
            restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
            String url = "https://api.weixin.qq.com/cgi-bin/wxopen/template/library/get?access_token="+access_token;
            //请求头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            //请求体
            Map<String, Object> requestParam = new HashMap<>();
            requestParam.put("id", id);
    
            //封装成一个请求对象
            HttpEntity entity = new HttpEntity(requestParam, headers);
            //发送数据方法
            ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class);
    
            //得到返回的数据body
            return forEntity.getBody();
        }
    
        /**
         * 获取小程序模板库标题列表
         * @param access_token 接口调用凭证
         * @param offset 用于分页,表示从offset开始。从 0 开始计数
         * @param count 用于分页,表示拉取count条记录。最大为 20
         * @param restTemplate
         * @return
         */
        public static String getTemplateLibraryList(String access_token, Integer offset, Integer count, RestTemplate restTemplate) {
    
            restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
            String url = "https://api.weixin.qq.com/cgi-bin/wxopen/template/library/list?access_token="+access_token;
            //请求头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            //请求体
            Map<String, Object> requestParam = new HashMap<>();
            requestParam.put("offset", offset);
            requestParam.put("count", count);
    
            //封装成一个请求对象
            HttpEntity entity = new HttpEntity(requestParam, headers);
            //发送数据方法
            ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class);
    
            //得到返回的数据body
            return forEntity.getBody();
        }
    
        /**
         * 发送模板消息
         * @param access_token 接口调用凭证
         * @param touser 接收者(用户)的 openid
         * @param template_id 所需下发的模板消息的id
         * @param form_id 表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
         * @param restTemplate
         * @return
         */
        public static String send(String access_token,String touser, String template_id, String form_id, RestTemplate restTemplate) {
    
            restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); // 防止中文乱码
            String url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token="+access_token;
            //请求头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            //请求体
            Map<String, Object> requestParam = new HashMap<>();
            requestParam.put("touser", touser);
            requestParam.put("template_id", template_id);
            //requestParam.put("page", "index");
            requestParam.put("form_id", form_id);
            //requestParam.put("data", "");
            //requestParam.put("emphasis_keyword", "");
    
            //封装成一个请求对象
            HttpEntity entity = new HttpEntity(requestParam, headers);
            //发送数据方法
            ResponseEntity<String> forEntity = restTemplate.postForEntity(url, entity, String.class);
    
            //得到返回的数据body
            return forEntity.getBody();
        }
    }
    1.2、
    2.返回顶部
     
    3.返回顶部
     
    4.返回顶部
     
    5.返回顶部
     
     
    6.返回顶部
     
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Promise
    location(未完)
    Web Storage API : LocalStroage
    从vmware下载到Linux环境下jdk和maven的安装
    2015.8.1 bootstrap学习(个人每日学习的随笔,比较凌乱
    git报错 error: cannot stat ‘'web/js': Permission denied
    移动端的自适应
    Socket .net MVC 的配置 包括异常断开
    ExtJS ComboBox之 键入自动查询
    ExtJS ComboBox之 2级联动
  • 原文地址:https://www.cnblogs.com/storebook/p/11082945.html
Copyright © 2020-2023  润新知