微信模板消息

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);
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要发送微信模板消息,需要先在微信公众平台或开放平台申请相关的权限和模板消息ID。然后,可以使用PHP的curl库或者第三方SDK来发送模板消息。 以下是一个使用curl库发送微信模板消息的示例代码: ```php <?php // 模板消息的接口地址 $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN"; // 模板消息的内容,需要根据实际情况替换 $data = array( 'touser' => 'OPENID', 'template_id' => 'TEMPLATE_ID', 'url' => 'http://www.example.com', 'data' => array( 'first' => array('value' => '您好,您有一条新的订单'), 'keyword1' => array('value' => '订单号:123456'), 'keyword2' => array('value' => '商品名称:测试商品'), 'keyword3' => array('value' => '订单金额:100元'), 'remark' => array('value' => '感谢您的支持!'), ), ); // 将数组转换为JSON字符串 $json = json_encode($data); // 使用curl库发送POST请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $json); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); // 输出发送结果 echo $result; ?> ``` 其中,`ACCESS_TOKEN`是调用微信接口所需的access_token,需要先通过接口获取;`OPENID`是接收模板消息的用户的openid;`TEMPLATE_ID`是申请的模板消息ID;`data`是模板消息的内容,需要根据实际情况替换。 注意:在实际使用时,需要根据微信接口的要求进行签名验证等安全处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值