微信公众平台开发 微信模板消息发送


嗨:大家好,今天咱们使用微信的时候经常能收到微信的购买消息的通知,这些消息通知很多使用的是模板消息,模板消息比较图文消息来的简单、明了而且内容很清晰,用于简单的消息通知在合适不过了。今天咱们就来看下模板消息。关于模板消息大家要注意几点:
1、微信模板消息模板的申请。这个可以使用固有的模板,就是你选择了你的模板消息所属的一级二级所属行业,就会有一些已经存在的模板,然后咱们是用就可以了。
2、模板有了,咱们呢就可以开发使用这个模板进行模板消息的发送。
3.当然发送给谁这个还是需要关注的用户的信息——openId.
以上就是微信模板消息开发的几个要素。其中第三条就是咱能之前说的微信授权,这里是需要openId的话使用静默授权就可以啦。咱们这里不做赘述,还没有了解的用户可以看看之前的微信授权章节。接下来咱们看一下微信模板消息发送三要素的第一个模板申请:
首先咱们来看一下人家模板库里的消息模板:

编号OPENTM207509450
标题积分变动提醒
行业IT科技 - 互联网|电子商务
使用人数1646
最后修改时间2015-09-01 10:47:55
详细内容
{{first.DATA}}
获得时间:{{keyword1.DATA}}
获得积分:{{keyword2.DATA}}
获得原因:{{keyword3.DATA}}
当前积分:{{keyword4.DATA}}
{{remark.DATA}}
内容示例
亲爱的张三,您的积分账户有新的变动,具体内容如下:
获得时间:2015年10月10日 19:21
获得积分:1000
获得原因:完成交易
当前积分:2000
感谢您的使用

上面的这个就是模板库里的消息模板,咱们要是在模板库里没有找到适合咱们自己开发的模板的话需要申请一个新的模板,模板申请是需要向微信服务器提供咱们的模板模型。具体需要注意的几点就是
1、模板需要符合格式: 具体的申请在:左边栏模板消息 --> 模板库 --> 找不到你想要的模板?帮助我们完善模板库 --> 点击进去之后就会提醒我们填写模板信息
模板
1.1:行业 :这个是咱们业务所属的行业
1.2:标题 :咱们需要发送的模板的标题,有一些规范要求:标题需在4-12字之间,清晰详细的标题有利于通过审核建议模板标题以“通知”或“提醒”作为结尾
1.3:内容 :这个是需要更多的规范要求:
必须以:{{first.DATA}} 以:{{remark.DATA}} 中间的内容是必填的关键字:
填写关键字
:{{keyword1.DATA}}
填写关键字
:{{keyword2.DATA}}
上面的模板库里的消息模板就是严按照这个格式来的,大家自己看一下,但是最好的还是微信开发文档啦:https://mp.weixin.qq.com/advanced/tmplmsg?action=faq&token=1081459479&lang=zh_CN

好了,有了微信消息的模板了,下面咱们这个模板的消息发送看一下:
首先咱们需要获取用户的openId,就是咱们要发送给那些用户,咱们知道这个openId一旦绑定的话一个用户就是一个一直不会变了,这个咱们在授权之后可以存储起来,在各个场合使用。然后就是调用接口啦,微信的接口借调需要凭证的也就是咱们之前一直进行接口调用时候使用的access_token,有了这个access_token之后就可以正式调用微信的发送模板消息接口啦,迫不及待了,咱们来看一下:

  /**
     * 发送模板消息
     * @param token 接口凭证
     * @param openId  用户的唯一标识
     * @param templateId  模板消息ID
     * @param actionUrl  点击模板消息跳转路径
     * @param data  模板消息内容 Json 串格式
     * @return
     */
    private static final String SEND_TEMPLATE_MSG = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s";

    public TemplateMsgResult sendTemplateMsg(TemplateMsgBean templateMsgBean) {

        String url = String.format(SEND_TEMPLATE_MSG, templateMsgBean.getToken());
        TemplateMsgResult templetMsgResult = null;
        try {

            Map<String, String> miniProgram = Maps.newHashMap();
            miniProgram.put("appid", "所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系)");
            miniProgram.put("pagepath", "所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar)");

            Map<String, Object> paramMap = Maps.newHashMap();
            paramMap.put("touser", templateMsgBean.getOpenId());
            paramMap.put("template_id", templateMsgBean.getTemplateId());
            paramMap.put("topcolor", "#FF0000");
            //url有值就跳转,没有Ios空白页,Android不跳转
            paramMap.put("url", templateMsgBean.getActionUrl());
            //是否跳转小程序,这个参数暂时保留,设置的话就直接跳转小程序了
            //paramMap.put("miniprogram", miniProgram);
            paramMap.put("data", templateMsgBean.getData());
            String param = GsonHolder.getGson().toJson(paramMap);
            LOGGER.info("发送模板消息,请求url:{},参数:{}", url, GsonHolder.getGson().toJson(paramMap));
            String result = HttpClientUtils.sendHttpsPost(url, param);
            LOGGER.info("发送模板消息,返回结果:{}", result);
            templetMsgResult = GsonHolder.getGson().fromJson(result, TemplateMsgResult.class);
        } catch (Exception ex) {
            LOGGER.error("发送微信模板消息异常:", ex);
        }
        return templetMsgResult;
    }

具体的参数使用咱们的注释里已经解释的很清楚了,我在这里就不做说明了。这里还有个注意点就是,微信的模板消息支持小程序的跳转了,很赞吧。其实也就是调用接口啦。大家感兴趣的话可以试试。微信公众号开发后面咱们还在持续中。希望感兴趣的朋友们多多交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,590评论 18 139
  • 微信图文消息发送: 要发送微信图文消息,首先我们需要知道的几个接口,主动发送和被动发送,这里的主动的意思就是微信公...
    瑶瑶小仙女阅读 8,379评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,409评论 25 707
  • 开门见山。 提高执行力的终极武器就是——画流程图。 关于拖延 很多人,可能都会有一些想法,有时想做很多事,但却无从...
    苏江同学阅读 566评论 0 4
  • 《妻妾成群》是作家苏童创作的一部中篇小说。这部作品通过描写一个“受过新时代教育”的女学生颂莲,自愿嫁入到高墙深院秩...
    e1d057f9f1c3阅读 340评论 0 0