zoukankan      html  css  js  c++  java
  • 5、发送模板消息

    详情参看   https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277

    发送模板消息

    接口调用请求说明

    http请求方式: POST
    https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN


    POST数据示例如下:

      {
               "touser":"OPENID",
               "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
               "url":"http://weixin.qq.com/download",  
               "miniprogram":{
                 "appid":"xiaochengxuappid12345",
                 "pagepath":"index?foo=bar"
               },          
               "data":{
                       "first": {
                           "value":"恭喜你购买成功!",
                           "color":"#173177"
                       },
                       "keynote1":{
                           "value":"巧克力",
                           "color":"#173177"
                       },
                       "keynote2": {
                           "value":"39.8元",
                           "color":"#173177"
                       },
                       "keynote3": {
                           "value":"2014年9月22日",
                           "color":"#173177"
                       },
                       "remark":{
                           "value":"欢迎再次购买!",
                           "color":"#173177"
                       }
               }
           }

    A3A[MG]3SO{VB{W)G_{CD[B

    ON@A(J%P63SD9JAWXS{DMJ6

    1、代码

    package com.wenxi.utils;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    
    import java.util.Date;
    
    public class WeixinUtil {
    
        public static final String TOKEN = "****"; //改为自己的
     
        public static final String APPID = "****";//改为自己的
     
        public static final String APPSECRET = "****";//改为自己的
    
        public static final String GET_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
    
        public static final String SEND_TEMPLATE_URL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";
    
        public static final String CREATE_MENU_URL = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";
    
        public static String ACCESSTOKEN = null;
    
        //ACCESSTOKEN 的失效时间
        public static long EXPIRESTIME;
    
        /**
         * 获取accessToken
         */
        public static  final String  getAccessToken(){
    
            if (ACCESSTOKEN == null || EXPIRESTIME < new Date().getTime()) {
                String result = HttpUtil.get(GET_ACCESS_TOKEN_URL.replace("APPID",APPID).replace("APPSECRET",APPSECRET));
                System.out.println(result);
                JSONObject json = JSON.parseObject(result);
                //设置ACCESSTOKEN
                ACCESSTOKEN = json.getString("access_token");
                //设置ACCESSTOKEN的失效时间
                Long expires_in = json.getLong("expires_in");
                EXPIRESTIME = new Date().getTime() + (expires_in-60) * 1000; //提前一分钟刷新
            }
            return ACCESSTOKEN;
        }
    
        /**
         * 创建菜单
         * @param url
         * @param params
         */
        public static  final void createMunu(String url, String params){
    
            String result = HttpUtil.post(url,params);
            System.out.println(result);
        }
    
        /**
         * 发送模板消息
         * @param url
         * @param params
         */
        public static  final void SendTemplate(String url, String params){
    
            String result = HttpUtil.post(url,params);
            System.out.println(result);
        }
    
        public  static void main(String[] args){
    //        getAccessToken();
    //        String url = CREATE_MENU_URL.replace("ACCESS_TOKEN",getAccessToken());
    //        String params = "{"button":[{"type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC"},{"name":"菜单","sub_button":[{	"type":"view","name":"搜索","url":"http://www.soso.com/"},"
    //                +"{"type":"click","name":"赞一下我们","key":"V1001_GOOD"}]}]}";
    //        createMunu(url,params);
    
            String url = SEND_TEMPLATE_URL.replace("ACCESS_TOKEN",getAccessToken());
            String params = "{"touser":"omB-_-Z_3-","template_id":"i6_DlNxmqK4yNeajwt5VLLCiVHFVeOsunOIHfYHvwJY","url":"http://weixin.qq.com/download"," +
                    ""data":{"first":{"value":"恭喜你购买成功!","color":"#173177"},"keynote1":{"value":"巧克力","color":"#173177"},"keynote2":{"value":"39.8元","color":"#173177"},"keynote3":{"value":"2014年9月22日","color":"#173177"},"remark":{"value":"欢迎再次购买!","color":"#173177"}}}";
            SendTemplate(url,params);
        }
    }
    

    2、添加模板消息接口

    注意:params 里面的如下数据要换:

    touser: 接收者openid

    template_id : 模板ID

    UH{9LIXO38W3N_TXRY}ATRW

    data就是为模板内容{{XXX.DATA}}提供数据,value为内容,color为颜色


    3、测试

    运行main函数,微信收到消息,如下图:

    S71024-224625

  • 相关阅读:
    CachedRowSet使用
    mybatis There is no getter for property named 'xx' in 'class java.lang.String
    基于tcpdump的Android智能移动终端数据包捕获完整解决方案
    analytics详解
    android开发图片分辨率
    缩放图片,解决bitmap 内存溢出out of memory的问题
    使用windowAnimations定义Activity及Dialog的进入退出效果
    读取本地已有的.db数据库
    MyBatis 问题列表
    cxf 相关问题
  • 原文地址:https://www.cnblogs.com/weiapro/p/7731655.html
Copyright © 2011-2022 走看看