• 【微信公众号开发】【12】模板消息


    前言:

    1,模板消息接口的使用规则可在官方文档中查看(官方文档地址见第一章)

    2,自己申请的模板一般很难过审核,有发送模板消息的需求时,最好先在模板库中找到适合的模板

    3,模板消息是主动发送给用户的通知类消息

    4,模板ID最好写在配置文件中,命名易于区分,写备注,不然日后容易混乱

    正文:

    1,新建模板

    {{first.DATA}} 
    文章标题:{{keyword1.DATA}} 
    作者名称:{{keyword2.DATA}} 
    分类:{{keyword3.DATA}} 
    {{remark.DATA}}

    2,发送模板消息

    private String TEMPLATE_MSG_URL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s";
    
    private void remind(Register info) 
    {
        String accessToken = ""; //获取token,在第二章有介绍
        String url = String.format(TEMPLATE_MSG_URL, accessToken);
        String templateId = Config.XXX; //模板ID,存在配置文件中
        
        String json = TemplateData.New()
                .setTouser(info.getOpenId())
                .setTemplate_id(templateId)                        
                .setUrl("XXX")
                .setColor("")
                .add("first", "尊敬的" + regInfo.getName() + "XXXXX", "")
                .add("keyword1", regInfo.getTitle(), "")
                .add("keyword2", regInfo.getName(), "")
                .add("keyword3", regInfo.getType(), "")
                .add("remark", "XXX", "")
                .build();
        
        JSONObject jsonObject = HttpRequest.httpRequest(url, "POST", json);
        
        if (null != jsonObject) {
            if (0 != jsonObject.getInt("errcode")) {
                logger.info(String.format("patientAskRemindAsst error:%s %s", jsonObject.getInt("errcode"), jsonObject.getString("errmsg")));
            }
        }
    }

    TemplateData

    package com.bf.weixin.params;
    
    import java.util.HashMap;
    
    import net.sf.json.JSONObject;
    
    public class TemplateData {
        
        private String touser;    //接收者openid
    
        private String template_id;    //模板ID
        
        private String url;    //模板跳转链接
        
        private String color;    //模板内容字体颜色,不填默认为黑色
        
        private TemplateItem data;    //模板数据
        
        public static TemplateData New() {
            return new TemplateData();
        }
    
        private TemplateData() {
            this.data = new TemplateItem();
        }
    
        public String getTouser() {
            return touser;
        }
    
        public TemplateData setTouser(String touser) {
            this.touser = touser;
            return this;
        }
    
        public String getTemplate_id() {
            return template_id;
        }
    
        public TemplateData setTemplate_id(String template_id) {
            this.template_id = template_id;
            return this;
        }
    
        public String getUrl() {
            return url;
        }
    
        public TemplateData setUrl(String url) {
            this.url = url;
            return this;
        }
    
        public String getColor() {
            return color;
        }
    
        public TemplateData setColor(String color) {
            this.color = color;
            return this;
        }
    
        public TemplateItem getData() {
            return data;
        }
    
        public TemplateData add(String key, String value, String color){
            data.put(key, new Item(value, color));
            return this;
        }
        
        /**
         * 直接转化成jsonString
         * @return {String}
         */
        public String build() {
            return JSONObject.fromObject(this).toString();
        }
    
        public class TemplateItem extends HashMap<String, Item> {
    
            private static final long serialVersionUID = -3728490424738325020L;
            
            public TemplateItem() {}
    
            public TemplateItem(String key, Item item) {
                this.put(key, item);
            }
        }
    
        public class Item {
            private Object value;
            private String color;
    
            public Object getValue() {
                return value;
            }
            public void setValue(Object value) {
                this.value = value;
            }
            public String getColor() {
                return color;
            }
            public void setColor(String color) {
                this.color = color;
            }
    
            public Item(Object value, String color) {
                this.value = value;
                this.color = color;
            }
        }
    
    }
  • 相关阅读:
    关于清除浮动的最佳方法
    Bootstrap学习——栅格系统
    人工智能、机器学习和深度学习之间的区别与联系
    speech
    爬虫—启新宝接口函数
    爬虫—天眼查接口函数
    python链接mysql获得某列最大值
    获取指定路径下特定后缀的文件
    python读Excel
    DataTable 递归 简单的程序,来实现无限级列表 结合 jquery.table.js 实现
  • 原文地址:https://www.cnblogs.com/huashengweilong/p/10399894.html
Copyright © 2020-2023  润新知