六、微信推送模版消息

**好久沒更新了~~~~隨緣作者。。**
獻上官方bug祕籍:[微信公衆號官方文檔]   PS:充滿了錯誤

官方內容

  1. 所有服務號都可以在功能->添加功能插件處看到申請模板消息功能的入口,但只有認證後的服務號纔可以申請模板消息的使用權限並獲得該權限;
  2. 需要選擇公衆賬號服務所處的2個行業,每月可更改1次所選行業;
  3. 在所選擇行業的模板庫中選用已有的模板進行調用;
  4. 每個賬號可以同時使用25個模板。
  5. 當前每個賬號的模板消息的日調用上限爲10萬次,單個模板沒有特殊限制。【2014年11月18日將接口調用頻率從默認的日1萬次提升爲日10萬次,可在MP登錄後的開發者中心查看】。當賬號粉絲數超過10W/100W/1000W時,模板消息的日調用上限會相應提升,以公衆號MP後臺開發者中心頁面中標明的數字爲準。

 

接口調用次數此處可見

訂閱號不能發送哦!服務號這個位置會顯示你每天可以推送的次數和已經推送的次數

設置模版消息的地方是在公衆號後臺,暫時沒權限,隨後我不會補上截圖

上代碼:

accessToken是微信的授權碼,前面有講如何獲取不再贅述

String accessToken = tokenService.getAccessToken(city);
JSONObject object = new JSONObject();
object.put("touser", openid);//接收者openid
object.put("template_id", template_id);//模板ID 從公衆號後臺獲取
if (StringUtils.isNotBlank(url)) {
   object.put("url", url);//否 模板跳轉鏈接
}
object.put("data", jsonObject);
String revalue = HttpsClientUtils.postParameters("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken, object.toString());
if (StringUtils.isNotBlank(revalue)) {
    JSONObject val = JSONObject.fromObject(revalue);
    if ("0".equals(val.getString("errcode")) && "ok".equals(val.getString("errmsg"))) {
        logger.info("發送成功");
        return true;
    }
}
分享小程序的話加入這個
JSONObject miniprogram = new JSONObject();
miniprogram.put("appid","xxxxxxxx");
miniprogram.put("pagepath","xxxxxxxx");
object.put("miniprogram",miniprogram);

url爲模版消息下方的一個詳情按鈕,傳值的話可以跳轉下圖效果

data參數的值是一個jsonobject

                JSONObject value = new JSONObject();
                JSONObject firstVal = new JSONObject();
                firstVal.put("value", "這是標題內容");
                firstVal.put("color", "#f20000");//每個值都可以設置顏色 不傳默認黑色 下面參數一樣
                value.put("first", firstVal);

                JSONObject keyword1Val = new JSONObject();
                keyword1Val.put("value", "第一個參數的值");
                value.put("這個KEY是公衆號後臺設置的一個值", keyword1Val);

                JSONObject keyword2Val = new JSONObject();
                keyword2Val.put("value", "第二個參數值");
                keyword2Val.put("color", "#f20000");//每個值都可以設置顏色 不傳默認黑色 下面參數一樣
                value.put("keyword2", keyword2Val);

                JSONObject keyword3Val = new JSONObject();
                keyword3Val.put("value", "第三個參數值");
                value.put("keyword3", keyword3Val);

                JSONObject remarkVal = new JSONObject();
                remarkVal.put("value", "趕快點擊領取你的專屬推薦海報吧");
                value.put("remark", remarkVal);

key參考如下圖,根據key的個數來增加json當中的key個數,一致就好順序影響不大,

推送模版消息後會受到服務器回調,具體的解析方式詳見系列文章 接收服務器回調數據

如無特殊需要可以忽略

參數說明

參數 說明
ToUserName 公衆號微信號
FromUserName 接收模板消息的用戶的openid
CreateTime 創建時間
MsgType 消息類型是事件
Event 事件爲模板消息發送結束
MsgID 消息id
Status 發送狀態爲成功
<xml> 
  <ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>  
  <FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>  
  <CreateTime>1395658920</CreateTime>  
  <MsgType><![CDATA[event]]></MsgType>  
  <Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>  
  <MsgID>200163836</MsgID>  
  <Status><![CDATA[success]]></Status> 
</xml>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章