公众号配置模板示例

推送接口

/**

*

* @title: sendTemplate

* @author: daixiaowei

* @date: 2019年11月09日 下午 12:59:27

* @description: 支付微信模板推送

* @param: fillData

* @return:

*/

public String sendTemplate(String openid,String templateId,String[] fillData,String orderId,String vendorId) {

String orderIds = "";

if (StringUtils.isNotEmpty(orderId)) {

orderIds = orderId;

}

String tepUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="

+ getAccessToken();

String frontUrl = conf.get("weixinpay.msgDetailUrl")+"/"

+vendorId +"/"+orderIds+"/"+openid;

CloseableHttpClient httpClient = HttpClients.createDefault();

HttpPost httpPost = new HttpPost(tepUrl);

// 装配post请求参数

JSONObject json = new JSONObject();

json.put("touser", openid);//消息接收者的openid

json.put("template_id", templateId);//消息模板id

json.put("url", frontUrl);//模板里详情页链接

json.put("emphasis_keyword", "keyword1.DATA");

JSONObject dataJson = new JSONObject();

//数据插入

for (int i = 0; i < fillData.length; i++) {

JSONObject sonDateJson = new JSONObject();

sonDateJson.put("value", fillData[i]);

dataJson.put("keyword" + (i + 1), sonDateJson);

}

json.put("data", dataJson);

String resultStr = "发送失败";

try {

StringEntity myEntity = new StringEntity(json.toJSONString(), "UTF-8");

// 设置post求情参数

httpPost.setEntity(myEntity);

HttpResponse httpResponse = httpClient.execute(httpPost);

if (httpResponse.getStatusLine().getStatusCode() == 200) {

// 发送成功

String resutlEntity = EntityUtils.toString(httpResponse.getEntity());

ResultTemplateDate resultTemplateDate = JSONObject.parseObject(resutlEntity, ResultTemplateDate.class);

if (resultTemplateDate.getErrcode().equals("40001")) {

resultStr = "token失效";

}

if (resultTemplateDate.getErrcode().equals("40037")) {

resultStr = "template_id不正确";

}

if (resultTemplateDate.getErrcode().equals("41030")) {

resultStr = "page不正确";

}

if (resultTemplateDate.getErrcode().equals("45009")) {

resultStr = "接口调用超过限额(目前默认每个帐号日调用限额为10万)";

}

resultStr = "ok";

return resultStr;

} else {

// 发送失败

return resultStr;

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (httpClient != null) {

// 释放资源

httpClient.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

return resultStr;

}

获取token方法

/**

*

* @title: getAccessToken

* @author: daixiaowei

* @date: 2019年11月09日 上午 11:00:33

* @description: 获取token

* @param:

* @return:

*/

public String getAccessToken() {

String tmpUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + conf.get("weixinpay.appid")

+ "&secret=" + conf.get("weixinpay.secret") + "";

CloseableHttpClient httpCilent = HttpClients.createDefault();

HttpGet httpGet = new HttpGet(tmpUrl);

try {

HttpResponse httpResponse = httpCilent.execute(httpGet);

if (httpResponse.getStatusLine().getStatusCode() == 200) {

String entity = EntityUtils.toString(httpResponse.getEntity());

AccessToken accessToken = JSONObject.parseObject(entity, AccessToken.class);

return accessToken.getAccess_token();

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

// 释放资源

httpCilent.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return "";

}

模板返回值类

package com.jkr.common.util;

/**

* 模板返回消息

* @author daixiaowei

*/

public class ResultTemplateDate {

private String errcode;

private String errmsg;

public String getErrcode() {

return errcode;

}

public void setErrcode(String errcode) {

this.errcode = errcode;

}

public String getErrmsg() {

return errmsg;

}

public void setErrmsg(String errmsg) {

this.errmsg = errmsg;

}

}

java 微信 推送_JAVA 微信消息模板推送相关推荐

  1. 微信公众号(测试号)消息模板推送

    微信公众号(测试号)消息模板推送 源码地址 https://github.com/panjianlong13/Weixin-PushMessage 微信测试号配置 登录到微信公众平台接口测试账号申请U ...

  2. python写微信小程序源码示例_python实现微信小程序用户登录、模板推送

    python实现微信小程序用户登录.模板推送 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  python实现微信小程序用户登录.模板推送.txt ] (友情提示 ...

  3. 微信小程序之消息模板推送

    微信小程序消息推送需要用户触发动作才能发送消息,比如用户提交订单.支付成功.一次只能发一条.也就是说只有用户点了小程序,操作了form表单提交然后生成一个formid ,才可以通过这条formid可以 ...

  4. java企业微信发送语言_java微信企业号开发之发送消息(文本、图片、语音)

    上篇文章介绍了开启回调模式,开始回调模式后我们就要实现聊天功能了.平时使用微信聊天可以发送文本消息.语音.图片.视频等,这里只实现了其中的一些功能和大家分享. 一.与微信企业号建立连接1.企业应用调用 ...

  5. java做微信开发工具_Java微信公众平台开发(14) 微信web开发者工具使用

    为帮助开发者更方便.更安全地开发和调试基于微信的网页,微信推出了 web 开发者工具.它是一个桌面应用,通过模拟微信客户端的表现,使得开发者可以使用这个工具方便地在 PC 或者 Mac 上进行开发和调 ...

  6. 消息推送服务器推pc,PC浏览器消息实时推送的解决方案 ——EPush推送平台

    原标题:PC浏览器消息实时推送的解决方案 --EPush推送平台 陈华 研发工程师,2014入职去哪儿网.参与研发的EPush推送平台,增强了订单推送的时效性,提高了酒店自助订单处理率.最近负责CEQ ...

  7. tp5 微信小程序 实现公众号模板推送(同一主体)

    小程序与公众号同一主体 微信小程序用户已关注公众号 /*** 模板消息 发送* @param $touser* @param $arr*/public function send_temp($open ...

  8. java微信开发图文_JAVA微信开发总结的图文代码分享

    最近研究了一下微信,感觉不是很难,借鉴了marker(www.yl-blog.com)的开源代码,修改了几处小BUG(在作者的开源网站上留了言,详见其开源网站),很快就实现关键的逻辑: 1.开发者验证 ...

  9. LARAVEL 消息模板推送

    1.首先用compose安装 composer require overtrue/wechat /*** 发送模板消息* @param $event*/public function MessageP ...

最新文章

  1. find命令详解(原创)
  2. 过程或函数的副作用是_Python函数和函数式编程(两万字长文警告!一文彻底搞定函数,建议收藏!)...
  3. Windows 7里的计算器,中文版,给Vista和2008用吧
  4. java 快速生成有残午餐_写出优质Java代码的4个技巧
  5. 神东煤矿:煤矿管控难?且看帆软如何助力其智慧化生产管控
  6. html绘制城堡,HTML5动画 - 山谷城堡
  7. activemq高可用
  8. Nagel-Schreckenberg(交通流)模型——python实现
  9. c语言10的10万次方,在c语言编程中 10的n次方应该怎么表达
  10. MQ系列SpringBoot快速整合RabbitMQ
  11. Lightroom 2020年2月版新增功能
  12. 墨言教育插画干货分享||日本插画为什么独树一帜,那么受欢迎
  13. 第一章 集总参数电路中电压、电流的约束关系
  14. php画梯形,利用css来画出各种样式不同的梯形,html中梯形外框怎么做
  15. 山东大学项目实训小组一——基于深度学习的AI视频剪辑器“易剪”
  16. 洛谷 P2657 [SCOI2009] windy 数 (题解+代码)
  17. Java面试复习与笔记
  18. 比尔盖茨离婚事件:给想进互联网大厂的人的唯一启示
  19. 机器学习05|一万五字:SVM支持向量机02 【jupyter代码详解篇】
  20. fluent日志文件提交服务器计算,利用云服务器计算fluent

热门文章

  1. Python v / s PHP:2019年选择哪种编程语言?
  2. 一个 简约 干净 纯净的网址导航 净搜导航
  3. 阿里云视频服务之点播服务
  4. 手机罗盘(指南针)校准方法
  5. 下班后可以做点什么副业赚钱呢?
  6. ORACLE-工作常用配置及命令记录-导入sql、unl文件、查看数据库状态、修改字符集等...
  7. 计算机网络第五章说课稿,任务二 了解计算机网络的作用说课稿【一等奖】
  8. 40岁开始学编程,现在成了一名技术主管
  9. C语言课设--藏书管理信息系统
  10. 浅析大数据前景及就业方向