java 微信公众服务平台 下发 模板消息
java 微信公众服务平台 下发 模板消息
(一).部分截图
(二).部分代码
(一).部分截图:


(二).部分代码:
//此处 给用户微信发消息...
Map<String,String> paraMap = new HashMap<String,String>();
String pk_paydata = (String)curDataMap.get("pk_paydata");
String personname = (String)curDataMap.get("personname");
String wxid = (String)curDataMap.get("wxid");
if(null==wxid || "".equals(wxid)){
throw new Exception(personname+"的没有绑定微信账户,请先绑定后再下发!");
}
paraMap.put("@WXID@", wxid);
paraMap.put("@TEMPLATE_ID@", CommendDef.PAYROLL_TEMPLATE_ID);
paraMap.put("@URL@", CommendURL.viewPayRollUrl()+"period="+period+"&wxid="+wxid);
paraMap.put("@CONTENT@", personname+",您好,"+period+"的信息已下发,请点击查看详情。");
String errcode = TemplateMessageUtil.sendTemplateMsg(paraMap);
if("0".equals(errcode)){
logger.info(personname+"微信下发成功!");
}else{
logger.info(personname+"微信下发失败!");
}
TemplateMessageUtil:
package com.payroll.wx.util; import java.util.Map;
import java.util.Map.Entry; import net.sf.json.JSONObject; import com.util.EmailUtil;
/**
* 微信发送 模板消息util
*
* @author lifq
* @date 2015-3-18 下午05:43:40
*/
public class TemplateMessageUtil {
//下发薪资单 模板消息
public static final String SEND_PERIOD_TEMPLATE =
"{\n"+
"\"touser\":\"@WXID@\",\n"+
"\"template_id\":\"@TEMPLATE_ID@\",\n"+
"\"url\":\"@URL@\",\n"+
"\"topcolor\":\"#FF0000\",\n"+
"\"data\":{\n"+
" \"content\":{\n"+
"\"value\":\"@CONTENT@\",\n"+
"\"color\":\"#173177\"\n"+
"}\n"+
"}\n"+
"}"; /**
* 发送模板消息
*
* @return boolean
* @author lifq
* @date 2015-2-11 下午03:25:07
*/
public static String sendTemplateMsg (Map<String,String> paraMap){
String data = TemplateMessageUtil.SEND_PERIOD_TEMPLATE;
//替换变量
for (Entry<String, String> entry: paraMap.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
data = EmailUtil.replace(data,key,value);
}
String res = HttpPostUtil.doHttpPostJson(CommendURL.TemplateUrl(), data);
JSONObject demoJson = JSONObject.fromObject(res);
String errcode = demoJson.getString("errcode");
return errcode;
}
}
HttpPostUtil:
package com.payroll.wx.util; import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL; public class HttpPostUtil
{ public static String doHttpPostJson(String Url,String json)
{
String message = "";
System.out.println(json);
try
{
URL url = new URL(Url);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("POST");
http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");//连接超时30秒
System.setProperty("sun.net.client.defaultReadTimeout", "30000"); //读取超时30秒
http.connect();
OutputStream os= http.getOutputStream();
os.write(json.getBytes("UTF-8"));//传入参数
os.flush();
os.close();
InputStream is =http.getInputStream();
int size =is.available();
byte[] jsonBytes =new byte[size];
is.read(jsonBytes);
message=new String(jsonBytes,"UTF-8");
System.out.println(message);
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return message;
} }
限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。
资料传送门:https://mp.weixin.qq.com/s/u2b_NVNuMuAPE0w4lc45fw
关注下方公众号即可免费领取:
java 微信公众服务平台 下发 模板消息的更多相关文章
- Java微信公众号开发----关键字自动回复消息
在配置好开发者配置后,本人第一个想要实现的是自动回复消息的功能,说明以下几点: 1. url 仍然不变,还是开发配置里的url 2. 微信采用 xml 格式传输数据 3.微信服务器传给我们的参数主要有 ...
- JAVA微信公众号通过openid发送模板消息~
1,问题产生 在微信公众号开发过程中,我们有时候做不同权限的时候,比如在注册的时候,需要审核,然后我们要想办法让对方知道审核的结果.这时候我们可以通过模板消息来通知. 2,第一步,首先在微信公众号上获 ...
- Java微信公众平台开发_03_消息管理之被动回复消息
GitHub源码:https://github.com/shirayner/weixin_gz 一.本节要点 1.回调url 上一节,我们启用服务器配置的时候,填写了一个服务器地址(url),如下图, ...
- Java微信公众平台开发_02_启用服务器配置
源码将在晚上上传到 github 一.准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见:[ Java微信公众平台开发_01_本地服务器映射外网 ] 2.一个微信公众平台账号: 去注册: ...
- Java微信公众号安全模式消息解密
这篇文章主要为大家详细介绍了Java微信公众号安全模式消息解密,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.微信公众平台下载解密工具,导入项目中,根据demo解密消息 public stat ...
- Java微信公众平台开发【番外篇】(七)--公众平台测试帐号的申请
转自:http://www.cuiyongzhi.com/post/45.html 前面几篇一直都在写一些比较基础接口的使用,在这个过程中一直使用的都是我个人微博认证的一个个人账号,原本准备这篇是写[ ...
- Java微信公众平台开发_07_JSSDK图片上传
一.本节要点 1.获取jsapi_ticket //2.获取getJsapiTicket的接口地址,有效期为7200秒 private static final String GET_JSAPITIC ...
- Java微信公众平台开发--番外篇,对GlobalConstants文件的补充
转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...
- Java微信公众号开发
微信公众平台是腾讯为了让用户申请和管理微信公众账号而推出的一个web平台.微信公众账号的种类可以分为3种,并且一旦选定不可更改.按照功能的限制从小到大依次为:订阅号.服务号.企业号.个人只能注册订阅号 ...
随机推荐
- Visual C++ 编程实现Soft AP (HostedNetwork / 承载网络) 功能
从Windows 7开始,微软在操作系统中加入的Soft AP功能,使用户能够通过无线网卡,开启虚拟AP,从而实现网络共享.Soft AP又称HostedNetwork(承载网络),在Windows ...
- 169. Majority Element(C++)
169. Majority Element Given an array of size n, find the majority element. The majority element is t ...
- [转]python yield
任何使用yield的函数都称之为生成器,如: def count(n): while n > 0: yield n #生成值:n n -= 1 另外一种说法:生成器就是一个返回迭代器的函数, ...
- js 保留小数位数
eg: var num=3.1415926 小数位处理:num.toFixed(n) n:小数位数
- mysql-积累管理sql语句
//连接数据库 mysql -h xxx -u root -p; //查看数据库 show databases //查看数据表 show tables //查看某数据表结构 desc xxx表 //修 ...
- Mysql 数据库表操作
☞ 创建表CREATE TABLE `数据库`.`表` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT COMMENT '注释',`type_name` VARCHA ...
- 源码编译基于Android平台的XBMC笔记
参考官方网站:https://github.com/xbmc/xbmc/blob/master/docs/README.android 1. 编译主机系统 Ubuntu (12.04) 64Bit ...
- Feel Good
poj2796:http://poj.org/problem?id=2796 题意:给出一个长度为n(n<100000)的序列,求出一个子序列,使得这个序列中的最小值乘以这个序列的和的值最大. ...
- 【HDU4552】 怪盗基德的挑战书(后缀数组)
怪盗基德的挑战书 Problem Description “在树最美丽的那天,当时间老人再次把大钟平均分开时,我会降临在灯火之城的金字塔前,带走那最珍贵的笑容.”这是怪盗基德盗取巴黎卢浮宫的<蒙 ...
- 编写自己的C语言头文件
一些初学C语言的人,不知道头文件(*.h文件)原来还可以自己写的.只知道调用系统库 函数时,要使用#include语句将某些头文件包含进去.其实,头文件跟.C文件一样,是可以自己写的.头文件是一种文本 ...
