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("@[email protected]", wxid);
                paraMap.put("@[email protected]", CommendDef.PAYROLL_TEMPLATE_ID);
                paraMap.put("@[email protected]", CommendURL.viewPayRollUrl()+"period="+period+"&wxid="+wxid);
                paraMap.put("@[email protected]", 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\":\"@[email protected]\",\n"+
           "\"template_id\":\"@[email protected]\",\n"+
           "\"url\":\"@[email protected]\",\n"+
           "\"topcolor\":\"#FF0000\",\n"+
           "\"data\":{\n"+
                  " \"content\":{\n"+
                       "\"value\":\"@[email protected]\",\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;
    }

}
时间: 2024-12-26 15:48:41

java 微信公众服务平台 下发 模板消息的相关文章

微信公众号推送模板消息

一.到公众号平台(https://mp.weixin.qq.com)开通模板功能并申请你需要的对应模板 二.获取access_token 地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1} 注意:公众号和小程序均可以使用AppID和AppSecret调用本接口来获取access_token.AppID和AppSecret可在"微信公众平台-开发-基

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

在配置好开发者配置后,本人第一个想要实现的是自动回复消息的功能,说明以下几点: 1. url 仍然不变,还是开发配置里的url 2. 微信采用 xml 格式传输数据 3.微信服务器传给我们的参数主要有(如图): 附上解析xml类的依赖: 1 <!-- dom对象读取写入xml文件 --> 2 <dependency> 3 <groupId>dom4j</groupId> 4 <artifactId>dom4j</artifactId>

C#微信公众号开发之模板消息开发,附源码

个人觉得模板消息功能的增加对公众号的作用非常大,可以说是真正意义上的实现了所谓的轻app,商家可以通过模板消息给用户发送重要的信息,交易.预约.消费.邮件.物流等信息.之前我做过的系统通过邮件发送订单消息,但是对于一些不喜欢绑定手机邮箱(实时提现商家发货买家订单进程等)的人来说还是不够方便,有了模板消息,公众号得以独立的完成交易信息通知跟踪等. 开发文档:http://mp.weixin.qq.com/wiki/17/304c1885ea66dbedf7dc170d84999a9d.html C

Java 微信公众号平台接入 视频

视频链接: 稍后更新地址 官方PHP接入文件注释介绍 <?php /** * wechat php test 表明php语句的说明和开始,表示此为php语言 */ // 定义 token define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); // 实例化当前class类 $wechatObj->valid(); // $webchatObj变量->访问类中valid

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

1,问题产生 在微信公众号开发过程中,我们有时候做不同权限的时候,比如在注册的时候,需要审核,然后我们要想办法让对方知道审核的结果.这时候我们可以通过模板消息来通知. 2,第一步,首先在微信公众号上获取模板消息 首先,登录微信公众平台,看有没有模板消息这一块,没有的话点击添加功能插件,去添加,这里就省略不说了,这个主要就是选择你公众号的行业对应的模板消息,然后通过审核之后就可以使用了,说是几个工作日 但是一般很快就审核通过的. 有模板消息之后点进来,对应自己所需要的模板消息进行添加,比如,我添加

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

GitHub源码:https://github.com/shirayner/weixin_gz 一.本节要点 1.回调url 上一节,我们启用服务器配置的时候,填写了一个服务器地址(url),如下图,这个url就是回调url,是开发者用来接收微信消息和事件的接口URL .也就是说,用户在微信公众号中发送的消息会被推送到这个回调url,而我们可以接收用户的消息,并进行回复. 2.被动回复消息的流程 官方文档: 我们在上一节中设置的消息加解密方式是安全模式.因此在用户发给公众号的消息(接收消息)以及

微信公众号平台群发消息限制怎么解决?

1.微信公众号模板消息群发 不限制群发次数,不占用微信公众号群发次数,但是对群发的内容有一定限制,不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息,不然会被微信停止使用!!! 2.48小时信息推送解决订阅号一天只能群发一次,服务号一个月只能群发四次:48小时内不限制次数信息推送给粉丝,只要48小时内粉丝与微信公众号互动(操作)统统都可以接受到推送信息 #微号帮功能 不限制次数模板消息群发.48小时信息推送print('微信公众号平台群发消息限制')sleep.time(1) 原文地址:

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

一.准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见:[  Java微信公众平台开发_01_本地服务器映射外网  ] 2.一个微信公众平台账号: 去注册:(https://mp.weixin.qq.com/) 3.策略文件 见:[ Java企业微信开发_Exception_02_java.security.InvalidKeyException: Illegal key size ] 4.微信官方消息加解密工具包 需要下载微信官方的消息加解密的工具包,主要是AES加密工具 下载地址:

Java微信公众平台开发模式+自定义按钮源码

首先,想用开放模式需要先成为开发者.成为开发者有两种写法. 一是:通过jsp页面,用out.print("echostr")//SHA1加密的字符串: 二是:通过Servlet.doGet返回exhostr,给微信平台. 这里我只写第二种方式的请求(这里的请求是以get方式请求),代码如下: import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.ut