**好久没更新了~~~~随缘作者。。**
献上官方bug秘籍:[微信公众号官方文档] PS:充满了错误
官方内容
- 所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限;
- 需要选择公众账号服务所处的2个行业,每月可更改1次所选行业;
- 在所选择行业的模板库中选用已有的模板进行调用;
- 每个账号可以同时使用25个模板。
- 当前每个账号的模板消息的日调用上限为10万次,单个模板没有特殊限制。【2014年11月18日将接口调用频率从默认的日1万次提升为日10万次,可在MP登录后的开发者中心查看】。当账号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提升,以公众号MP后台开发者中心页面中标明的数字为准。
接口调用次数此处可见
订阅号不能发送哦!服务号这个位置会显示你每天可以推送的次数和已经推送的次数
设置模版消息的地方是在公众号后台,暂时没权限,随后我不会补上截图
上代码:
accessToken是微信的授权码,前面有讲如何获取不再赘述
String accessToken = tokenService.getAccessToken(city);
JSONObject object = new JSONObject();
object.put("touser", openid);//接收者openid
object.put("template_id", template_id);//模板ID 从公众号后台获取
if (StringUtils.isNotBlank(url)) {
object.put("url", url);//否 模板跳转链接
}
object.put("data", jsonObject);
String revalue = HttpsClientUtils.postParameters("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken, object.toString());
if (StringUtils.isNotBlank(revalue)) {
JSONObject val = JSONObject.fromObject(revalue);
if ("0".equals(val.getString("errcode")) && "ok".equals(val.getString("errmsg"))) {
logger.info("发送成功");
return true;
}
}
分享小程序的话加入这个
JSONObject miniprogram = new JSONObject();
miniprogram.put("appid","xxxxxxxx");
miniprogram.put("pagepath","xxxxxxxx");
object.put("miniprogram",miniprogram);
url为模版消息下方的一个详情按钮,传值的话可以跳转下图效果
data参数的值是一个jsonobject
JSONObject value = new JSONObject();
JSONObject firstVal = new JSONObject();
firstVal.put("value", "这是标题内容");
firstVal.put("color", "#f20000");//每个值都可以设置颜色 不传默认黑色 下面参数一样
value.put("first", firstVal);
JSONObject keyword1Val = new JSONObject();
keyword1Val.put("value", "第一个参数的值");
value.put("这个KEY是公众号后台设置的一个值", keyword1Val);
JSONObject keyword2Val = new JSONObject();
keyword2Val.put("value", "第二个参数值");
keyword2Val.put("color", "#f20000");//每个值都可以设置颜色 不传默认黑色 下面参数一样
value.put("keyword2", keyword2Val);
JSONObject keyword3Val = new JSONObject();
keyword3Val.put("value", "第三个参数值");
value.put("keyword3", keyword3Val);
JSONObject remarkVal = new JSONObject();
remarkVal.put("value", "赶快点击领取你的专属推荐海报吧");
value.put("remark", remarkVal);
key参考如下图,根据key的个数来增加json当中的key个数,一致就好顺序影响不大,
推送模版消息后会受到服务器回调,具体的解析方式详见系列文章 接收服务器回调数据
如无特殊需要可以忽略
参数说明
参数 | 说明 |
---|---|
ToUserName | 公众号微信号 |
FromUserName | 接收模板消息的用户的openid |
CreateTime | 创建时间 |
MsgType | 消息类型是事件 |
Event | 事件为模板消息发送结束 |
MsgID | 消息id |
Status | 发送状态为成功 |
<xml>
<ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>
<FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>
<CreateTime>1395658920</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>
<MsgID>200163836</MsgID>
<Status><![CDATA[success]]></Status>
</xml>