1. 程式人生 > >微信推送模板資訊介面(乾貨-程式碼)

微信推送模板資訊介面(乾貨-程式碼)

這裡僅針對推送模板資訊進行程式碼整理~~~

本文分為以下三個部分:

一、申請模板訊息許可權
二、開發模板訊息SDK
三、JAVA程式碼實現傳送模板訊息

一、申請模板訊息許可權

模板訊息的申請需微信公眾賬號已經認證通過。

在微信公眾平臺的後臺,依次進入“功能->新增功能外掛->模板訊息“,按照下圖的紅色框步驟,填寫相關資訊,即可申請,微信官方有稽核,靜靜等待即可。

這裡寫圖片描述

二、開發模板訊息SDK

三、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=”;

此處的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程式碼,整理完畢。