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 微信公众服务平台 下发 模板消息的更多相关文章

  1. Java微信公众号开发----关键字自动回复消息

    在配置好开发者配置后,本人第一个想要实现的是自动回复消息的功能,说明以下几点: 1. url 仍然不变,还是开发配置里的url 2. 微信采用 xml 格式传输数据 3.微信服务器传给我们的参数主要有 ...

  2. JAVA微信公众号通过openid发送模板消息~

    1,问题产生 在微信公众号开发过程中,我们有时候做不同权限的时候,比如在注册的时候,需要审核,然后我们要想办法让对方知道审核的结果.这时候我们可以通过模板消息来通知. 2,第一步,首先在微信公众号上获 ...

  3. Java微信公众平台开发_03_消息管理之被动回复消息

    GitHub源码:https://github.com/shirayner/weixin_gz 一.本节要点 1.回调url 上一节,我们启用服务器配置的时候,填写了一个服务器地址(url),如下图, ...

  4. Java微信公众平台开发_02_启用服务器配置

    源码将在晚上上传到 github 一.准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见:[  Java微信公众平台开发_01_本地服务器映射外网  ] 2.一个微信公众平台账号: 去注册: ...

  5. Java微信公众号安全模式消息解密

    这篇文章主要为大家详细介绍了Java微信公众号安全模式消息解密,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.微信公众平台下载解密工具,导入项目中,根据demo解密消息 public stat ...

  6. Java微信公众平台开发【番外篇】(七)--公众平台测试帐号的申请

    转自:http://www.cuiyongzhi.com/post/45.html 前面几篇一直都在写一些比较基础接口的使用,在这个过程中一直使用的都是我个人微博认证的一个个人账号,原本准备这篇是写[ ...

  7. Java微信公众平台开发_07_JSSDK图片上传

    一.本节要点 1.获取jsapi_ticket //2.获取getJsapiTicket的接口地址,有效期为7200秒 private static final String GET_JSAPITIC ...

  8. Java微信公众平台开发--番外篇,对GlobalConstants文件的补充

    转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...

  9. Java微信公众号开发

    微信公众平台是腾讯为了让用户申请和管理微信公众账号而推出的一个web平台.微信公众账号的种类可以分为3种,并且一旦选定不可更改.按照功能的限制从小到大依次为:订阅号.服务号.企业号.个人只能注册订阅号 ...

随机推荐

  1. MVVM模式应用 之在ViewModel中使用NavigationService

    在ViewModel.cs页面中是不能使用NavigationService,那该怎么实现跳转呢? 其实在ViewModel中实现页面的跳转也很简单,下面的代码: using Microsoft.Ph ...

  2. (转)ASP.NET-关于Container dataitem 与 eval方法介绍

    Container是一个数据容器,代表集合类或者dataview中的一行,而Container.dataitem代表该行的数据:所有的container   被存 放在是一个栈堆stack中,自动的将 ...

  3. 2013年12月26日 星期四 doxygen入门--很好

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  4. 怎样制作PHP验证码?

    <?php /** *制作验证码 *1.启动session *2.设定标头 *3.创建画布 *4.创建颜色 *5.创建随机数并放到画布上 *6.将得到的若干随机数放入session中 *7.添加 ...

  5. Jquery常用功能

    jQuery 1.4给开发者带来了很多值得兴奋的新特性,同时使用jQuery的人也越来越多,为了方便大家对jQuery的使用,下面列出了一些jQuery使用技巧.比如有禁止右键点击.隐藏搜索文本框文字 ...

  6. 图片延迟加载插件jquery.lazyload.js的使用方法

    最新版的jquery.lazyload.js已不再是伪的延迟加载了 一.请按照基本使用方法说明设置 //载入JavaScript 文件 <script src="jquery.js&q ...

  7. iOS: 神奇的addSubView

    看着addSubView, 本以为是添加多个对象, 但通过测试代码, 发现同一个对象在addSubView中只会添加一次. 想想, 视图对象是通过引用得到的. 在视图的子视图集中, 只保存一个相应的对 ...

  8. DexIndexOverflowException: Cannot merge new index 66080 into a non-jumbo instruction!

    问题 该问题是方法数超过了65536(DEX 64K problem),无法编译成单个dex文件. 解决方案 谷歌官方给出的解决方案 android { compileSdkVersion 21 bu ...

  9. 编程思想—面向切面编程(AOP)

    谈到面向切面的编程,我们很容易关联到面向对象编程(OOP).个人对这两种编程方式的解释为:两种编程思想只是站在编程的角度问题. OOP注重的是对象,怎么对对象行为和方法的抽象.如何封装一个具有完整属性 ...

  10. [译]36 Days of Web Testing(二)

    Day 7: Http 和 Https Why? 当在网络上传输一些私人,敏感信息时,应该采用加密的手段来保证这些信息在传输的过程中不被侦测到.Https协议正是这种实现机制. Https是一种广泛使 ...