微信模板消息

import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONObject;


public class MessageModelUtil {


    /**
     * 发送模板消息
     * appId 公众账号的唯一标识
     * appSecret 公众账号的密钥
     * openId 用户标识
     */
    public static int send_template_message(String accessToken,String jsonString) {
        String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+accessToken;
        JSONObject jsonObject = HttpRequestUtil.httpsRequest(url, "POST", jsonString);
        System.out.println(jsonObject);
        int errcode = -1;
        if (null != jsonObject) {  
            errcode = jsonObject.getInt("errcode");
         }
        return errcode;
    }


    /**
     * 组装模板消息
     * @param openId 消息发送对象
     * @param articleList 图文消息列表
     * @return
     */
    public static String makeModelMessage(String openId, String modeId,String url,Map<String,Object> mapdata) {
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("data", mapdata);
        String topcolor = "#173177";
        map.put("template_id", modeId);
        map.put("topcolor", topcolor);
        map.put("touser", openId);
        map.put("url", url);
        JSONObject json = JSONObject.fromObject(map);
        return JSONObject.fromObject(json).toString();
    }


    /**
     * 模板消息
     * 车票状态变更提醒
     * @param first
     * @param keyword1
     * @param keyword2
     * @param keyword3
     * @param remark
     * @return
     */
    public static Map<String,Object> ModelStatus(String first,String keyword1,String keyword2,String keyword3,String remark){
        Map<String,Object> mapdata = new HashMap<String, Object>();
        mapdata.put("first", new Data_content(first));
        mapdata.put("keyword1", new Data_content(keyword1));
        mapdata.put("keyword2", new Data_content(keyword2));
        mapdata.put("keyword3", new Data_content(keyword3));
        mapdata.put("remark", new Data_content(remark));
        return mapdata;
    }

    /**
     * 模板消息
     * 车票预订状态通知
     * @param first
     * 线路:{{keyword1.DATA}}
        发车时间:{{keyword2.DATA}}
        订单号:{{keyword3.DATA}}
        流水号:{{keyword4.DATA}}
     * @param remark
     * @return
     */
    public static Map<String,Object> ModelBook(String first,String keyword1,String keyword2,String keyword3,String keyword4,String remark){
        Map<String,Object> mapdata = new HashMap<String, Object>();
        mapdata.put("first", new Data_content(first));
        mapdata.put("keyword1", new Data_content(keyword1));
        mapdata.put("keyword2", new Data_content(keyword2));
        mapdata.put("keyword3", new Data_content(keyword3));
        mapdata.put("keyword4", new Data_content(keyword4));
        mapdata.put("remark", new Data_content(remark));
        return mapdata;
    }

    /**
     * 购票成功通知
     * @param first
        线路:{{lineName.DATA}}
        发车时间:{{date.DATA}}
        订单号:{{orderNum.DATA}}
        流水号:{{transactionNum.DATA}}
     * @param remark
     * @return
     */
    public static Map<String,Object> ModelSuccess(String first,String lineName,String date,String orderNum,String transactionNum,String remark){
        Map<String,Object> mapdata = new HashMap<String, Object>();
        mapdata.put("first", new Data_content(first));
        mapdata.put("lineName", new Data_content(lineName));
        mapdata.put("date", new Data_content(date));
        mapdata.put("orderNum", new Data_content(orderNum));
        mapdata.put("transactionNum", new Data_content(transactionNum));
        mapdata.put("remark", new Data_content(remark));
        return mapdata;
    }

    /**
     * 
     * @param first
    售票点:{{keyword1.DATA}}
    发车时间:{{keyword2.DATA}}
    票价:{{keyword3.DATA}}
    座号:{{keyword4.DATA}}
    班次:{{keyword5.DATA}}
     * @param remark
     * @return
     */
    public static Map<String,Object> ModelTicket(String first,String keyword1,String keyword2,
            String keyword3,String keyword4,String keyword5,String remark){
        Map<String,Object> mapdata = new HashMap<String, Object>();
        mapdata.put("first", new Data_content(first));
        mapdata.put("keyword1", new Data_content(keyword1));
        mapdata.put("keyword2", new Data_content(keyword2));
        mapdata.put("keyword3", new Data_content(keyword3));
        mapdata.put("keyword4", new Data_content(keyword4));
        mapdata.put("keyword5", new Data_content(keyword5));
        mapdata.put("remark", new Data_content(remark));
        return mapdata;
    }


    /**
     * 模板消息
     * 服务器宕机
    {{first.DATA}}
    故障时间:{{time.DATA}}
    故障原因:{{reason.DATA}}
    {{remark.DATA}}
     * @param remark
     * @return
     */
    public static Map<String,Object> ModelServiceFail(String first,String keyword1,String keyword2,
            String remark){
        Map<String,Object> mapdata = new HashMap<String, Object>();
        mapdata.put("first", new Data_content(first));
        mapdata.put("time", new Data_content(keyword1));
        mapdata.put("reason", new Data_content(keyword2));
        mapdata.put("remark", new Data_content(remark));
        return mapdata;
    }

    public static void main(String[] args) {
        Token token= null;//WeixinUtil.getAccessToken(Constant.APPID, Constant.APPSECRET);

        String accessToken = token .getAccessToken();
        testModelServiceFail(accessToken);


    }

    private static void testModelServiceFail(String accessToken){
        String first = "您好,您的网站 abc.com 无法访问";
        String time = "2013-11-21 11:11:11";
        String reason = "无法连接到服务器";
        String remark = "这是一个美丽的测试";

        Map<String , Object> map = ModelServiceFail(first, time, reason, remark);

        String openId = "oFO7CwGbsNOjprgVVN4gXCO7w1us";
        String modeId = "TLnv-JEOVqqqlZLDY0m26ND0iHJKxNACS46gYwozhY8";
        String url = "";

        String jsonString = makeModelMessage(openId, modeId, url, map);

        int num = send_template_message(accessToken,jsonString);
        System.out.println("返回码==="+num);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值