微信开放之模板消息

微信开放之模板消息

正如许多推送一样,微信也友好的给广大开发者提供了“模板消息”,比推送更好的是,它能借助海量用户的微信平台直接通过服务号以短消息形式传达给用户,大大提高了运营的可能性。比如我们现在可以完全抛开银行卡的短信服务,通过相关银行提供服务号绑定银行卡,当发生交易的时候同样的能收到交易详情短消息,确实是方便了不少!

上一篇讲到了获取和缓存access_token,也成功配置了jssdk授权,这些前置条件都准备好了,那么同样的实现一些功能就很快了,这回具体来说说模板消息的发送

公众号平台配置

功能-我的模板(或者去模块库中搜索),这里不涉及到代码,不细说

后台restful

实际项目中肯定会存在多种类型的模板,那么肯定需要做一些共用代码封装,我这里 以保单出单 这个模板为例

1,对应模板的信息

2.controller

  /**
     * 发送模板消息
     * @return
     */
    @RequestMapping(value = "/sendTemplateMessage", method = RequestMethod.POST)
    public @ResponseBody HttpResult sendTemplateMessage(@RequestParam String dataJson){
        HttpResult hr = null;
        LOGGER.info("RestFul of sendTemplateMessage parameters dataJson:{}",dataJson);

        try {
            hr = wechatService.sendTemplateMessage(dataJson);
            LOGGER.info("Send template message is successful!",hr);
        } catch (Exception e) {
            LOGGER.error("RestFul of sendTemplateMessage is error:{}",e);
        }

        return hr;
    }

因为我这里是一个通用的接口,不同的模板可能传的参数都不同,时间缘故也没有写持久化bean对象,就用了一个json字符串接收

3.serveice

直接通过httpclient调用微信提供的POST请求,https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={ACCESS_TOKEN}

  //保单出单通知
    @Value("${TEMPLATE_THREE}")
    private String TEMPLATE_THREE;

  /**
     * 发送模板消息
     * @param dataJson
     * @return
     * @throws IOException
     */
    public HttpResult sendTemplateMessage(String dataJson) throws IOException{
        String doUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+getBaseAccessToken();

        JSONObject data = JSONObject.parseObject(dataJson);
        Object touser = data.get("touser");//接收者openid     String templateId = TEAMLATE_THREE;//模板ID
        Object url = data.get("url");//模板跳转链接,如果置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)。
        Object first = data.getString("first");//标题
        Object remark = data.getString("remark");//备注
        Object keyword1 = data.getString("keyword1");
        Object keyword2 = data.getString("keyword2");
        Object keyword3 = data.getString("keyword3");

        JSONObject parentJSON = new JSONObject();
        parentJSON.put("touser", touser);     parentJSON.put("template_id", templateId);
        parentJSON.put("url", url);

        JSONObject json = new JSONObject();
        json.put("first", toJson(first));
        json.put("keyword1", toJson(keyword1));//对应的车辆信息
        json.put("keyword2", toJson(keyword2));//产品信息
        json.put("keyword3", toJson(keyword3));//出单状态json.put("remark", toJson(remark));

        parentJSON.put("data", json);//模板数据

        HttpResult rs = null;
        try {
            rs = apiService.doPostJson(doUrl,parentJSON.toJSONString());
        } catch (Exception e) {
            LOGGER.error("RestFul of doLogin is error:{}",e);
        }

        return rs;
    }

    public JSONObject toJson(String value){
        JSONObject json = new JSONObject();
        json.put("value", value);
        json.put("color", "#173177");//消息字体颜色
        return json;
    }

为了增强代码可读性,关键字的地方我都添加了注释,那么到这里,后台基本完成,下面我通过一个接口调用工具Advanced REST client来测试一下

数据:

{
  "touser": "otjo0wXJZipXdFjxzwDB3DZUjs44",
  "templateType": "3",
  "url": "www.liliangel.cn",
  "first": {
    "value": "测试发送模板消息3",
    "color": "#173177"
  },
  "keyword1": {
    "value": "testCar",
    "color": "#173177"
  },
  "keyword2": {
    "value": "testPro",
    "color": "#173177"
  },
  "keyword3": {
    "value": "successful",
    "color": "#173177"
  },
  "remark": {
    "value": "备注",
    "color": "#173177"
  }
}

说明:我这里的数据结构是经过了一层json封装的,详细的格式可以参考微信官方文档及模板详情!

成功:

到这里我们已经完成了模板消息的接入,具体会不会比常用的推送更好? 会不会取代手机短信? 看怎么去运营,发挥你的想象,将微信提供的服务最大程度利用!

时间: 2024-10-27 02:16:22

微信开放之模板消息的相关文章

微信服务号模板消息接口新增"设置行业"和"添加模板"及细节优化

微信服务号模板消息可以向用户发送重要的服务通知,如信用卡刷卡通知,商品购买成功通知等.昨日,微信团队发布公告称模板消息新增“设置行业”和“添加模板”接口及细节优化,详细变动如下 模板消息[业务通知]自2014年8月27日向认证服务号开放后使用效果良好,现做出如下优化: 1. 认证服务号日调用模板消息上限为10w条,当前每个模板的日调用上限为100000次[2014年11月18日将接口调用频率从默认的日10000次提升为日100000次,可在MP登录后的开发者中心查看]: 2. 每条消息长度限制为

微信小程序模板消息群发解决思路

基于微信的通知渠道,微信为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.(微信6.5.2及以上版本支持模板功能.低于该版本将无法收到模板消息.) 模板推送位置:服务通知(点击查看详情还能跳转到下发消息的小程序的指定页面) 模板下发条件:用户本人在微信体系内与页面有交互行为后触发 微信小程序模板消息使用说明(官方文档):https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html 为了防止对模板消息的滥用,带来

微信推送模板消息的PHP代码整理

最近做过一个需要推送消息的系统,就研究了一下微信的模板消息的推送.由于认证过的微信号,就用测试号做的,但是过程基本一致. 本文基于微信平台的官方文档写成,http://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl 首先,得在微信的后台管理中设置一下,模板消息的格式,获取到一个模板消息的id {{first.DATA}} 被撕的人:{{name.DATA}} 被撕人的组别:{{zu.DATA}} 被撕时间:{{time.DAT

微信推送模板消息

在微信的服务号中,往往需要对订阅用户推送消息,有时候会用到模板消息,下面的代码仅供参考,个人测试成功. @access_token 请调用 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&[email protected]&[email protected] 接口获取. 1 public static void Send() 2 { 3 dynamic postData = new ExpandoOb

ASP.NET 微信公众平台模板消息推送功能完整开发

最近公众平台的用户提出了新需求,他们希望当收到新的邮件或者日程的时候,公众平台能主动推送一条提醒给用户.看了看平台提供的接口,似乎只有[模板消息]能尽量满足这一需求,但不得不说微信提供的实例太少,而且只有PHP的,不过摸索了一下还是成功的实现了. 首先是准备工作,需要申请开通[模板消息]功能,网上教程很多.然后申请通过之后,用户可以从现有的模板里选择15个使用,也可以自己添加模板使用.这里吐槽一下:申请添加新的模板时,微信出于保护用户的目的禁止了一些“看起来会很频繁”的消息类型,比如这图里的——

微信公众号模板消息开发小结

总结: 遇到的坑: ①要想调用微信的模版消息,我们就需要获取该用户关注的这个公众号openId, 要获取openId就要获取进入时候的code参数,code参数通过一个链接获取.那么我们在进入公众号后的时候就需要回调这个链接,然后获取到openId. 这里回调里面有一个redirect_uri参数,这个是回调的URL编码后的值.我们既然要回调,就需要在公众号管理端将回调域名设置为我们请求的域名(注意域名一个月只能修改三次). ②在调用微信获取code的链接时,不能是ajax请求,否则回调将无法完

微信公众号 模板消息 定时推送 java

前提:业务需要,要做一个关于月报的微信消息推送.即每个月定时自动发送一条消息 给关注 公众号的人 用的是 公众号的测试账号(实际开发需要认证的公众号) 微信官网的 模板消息接口规则: 1.所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限:2.需要选择公众账号服务所处的2个行业,每月可更改1次所选行业:3.在所选择行业的模板库中选用已有的模板进行调用:4.每个账号可以同时使用25个模板.5.当前每个账号的模板消息的日调

asp群发微信公众号模板消息代码

刚刚做的一个项目需要用到asp群发微信公众号的模板消息, 以前没做过,想了一会用了下面这种方法实现的模板消息群发推送,效果很好. 原文地址:https://www.cnblogs.com/yjed/p/10843634.html

Java对接微信公众号模板消息推送

内容有点多,请耐心! 最近公司的有这个业务需求,又很凑巧让我来完成: 首先想要对接,先要一个公众号,再就是开发文档了:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html 不过请注意这一点 ok,我们继续:再来完成公众号的基本配置: 服务器地址(URL):必须以http://或https://开头,分别支持80端口和443端口.这个URL是很重要的,需要响应微信发送的token验证 令牌(To