欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微信推送模板信息接口(干货-代码)

程序员文章站 2024-03-15 14:23:53
...

这里仅针对推送模板信息进行代码整理~~~


本文分为以下三个部分:

一、申请模板消息权限
二、开发模板消息SDK
三、JAVA代码实现发送模板消息


一、申请模板消息权限

模板消息的申请需微信公众账号已经认证通过。

在微信公众平台的后台,依次进入“功能->添加功能插件->模板消息“,按照下图的红色框步骤,填写相关信息,即可申请,微信官方有审核,静静等待即可。

微信推送模板信息接口(干货-代码)

二、开发模板消息SDK

模板消息相关接口介绍:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277

三、JAVA代码实现发送模板消息

1、新建发送信息需要的实体信息

    /** 
     * Description:模板信息Bean
     * @author 
     * @version 1.0
     * <pre>
     * Modification History: 
     * Date         Author      Version     Description 
    ------------------------------------------------------------------
     * 2017年9月21日              1.0        1.0 Version 
     * </pre>
     */
    public class WechatTemplate {

        private String touser ;

        private String template_id;

        private String url;

        private String topcolor ; 

        private Map<String, TemplateData> data;

        //getter setter 省略
    }

    /** 
     * Description:模板信息的每个属性信息
     * @author 
     * @version 1.0
     * <pre>
     * Modification History: 
     * Date         Author      Version     Description 
    ------------------------------------------------------------------
     * 2017年9月21日              1.0        1.0 Version 
     * </pre>
     */
    public class TemplateData {

        private String value ;

        private String color;
    }

2、调用微信发送模板信息的接口

    /**
     * Description: 发送微信模板信息
     * @param
     * @return void
     * @throws Exception 
     * @throws
     * @Author 
     * Create Date: 2017年9月21日 下午3:50:38
     */
    @SuppressWarnings("static-access")
    public void sendTemplateMessage(WechatTemplate wechatTemplate){
        try {
            String access_token = this.getAccessToken();
            String  url=this.SEND_MESSAGE_URL+access_token;
            String para=JSON.toJSONString(wechatTemplate);
            String resultStr=HttpClinetUtil.post(para, url);
            logger.info("返回结果:{}",resultStr);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

针对上面的方法有几点需要说明以及代码补充:

(1)、请求的接口url:这个可以配置文件中,此处仅仅为了方便,直接写成静态常量了。

SEND_MESSAGE_URL=”https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=”;

(2)、 关于 access_token (https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183
此处的access_token是程序保存在redis缓存中的数据,不再赘述。开发兄弟们按照各自项目已有方式获取即可。
(3)、HttpClinetUtil.post(para, url)方法;
    /**
     * 发送模板信息调用的请求方法
     * Description: 
     * @param
     * @return String
     * @throws
     * @Author xuhongwei
     * Create Date: 2017年6月29日 下午2:30:13
     */
    public static String sendWeCharMsg(String json, String url) {
        HttpPost post = new HttpPost(url);
        post.setHeader("Content-Type", "application/json");
        post.addHeader("Authorization", "Basic YWRtaW46");
        String result = "";
        try {
            StringEntity s = new StringEntity(json.toString(), "utf-8");
            s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
            post.setEntity(s);
            // 发送请求
            HttpResponse httpResponse = HttpClients.createDefault().execute(post);
            // 获取响应输入流
            InputStream inStream = httpResponse.getEntity().getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inStream, "utf-8"));
            StringBuilder strber = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null)
                strber.append(line + "\n");
            inStream.close();

            result = strber.toString();
            System.out.println(result);

            if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                logger.info("请求服务器成功,做相应处理");
            } else {
                logger.info("请求服务端失败");
            }
        } catch (Exception e) {
            System.out.println("请求异常");
            throw new RuntimeException(e);
        }
        return result;
    }

以上就是微信消息发送的java代码,整理完毕。

另外:我的简书也有篇介绍推送模板消息的:http://www.jianshu.com/p/38d05cbbe33e,简书的比较粗糙。

相关标签: 微信 模板消息