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碎碎念公众号

posted @ 2015-03-18 17:54  Java碎碎念  阅读(3927)  评论(0编辑  收藏  举报