發送模板消息也叫業務通知,如下圖所示:
這種情況就叫做模板消息
在我們的生活中,無論是微商城消費,還是日常生活消費,都可能收到這種提示,比如訂單通知,快遞狀態通知,銀行卡支付通知,都屬於業務通知,很多公衆號也都實現了這種功能,當觸發了某種行爲或狀態改變,就會發送這麼一個消息給你,因爲這種消息都是按照一定的的格式來編輯,所以也叫模板消息。
發送模板消息
那要怎麼才能發送呢?我們打開開發文檔"消息管理"中的"模板消息接口"。
要注意的是認證後的服務號纔可以申請模板消息的使用權限並獲得該權限,否則就只能使用測試號。
該頁面中介紹了幾個接口,我們主要使用第6個來發送模板消息。
其他的接口主要是爲了方便開發者獲取或設置公衆號的所屬行業,比如餐飲,教育等等,如果是正式的公衆號,也可以登錄公衆平臺來進行設置,其他的接口就是獲取模板的信息等,如果沒需求可以不調用。
我們要發送模板消息,第一步是需要創建一個模板,有了模板之後,我們才能填充內容來進行發送。
1.創建模板
創建模板不需要調用接口,在公衆號後臺即可設置。
圖中是測試號中的設置界面。
現在我們來按照下面案例來新建一個模板。但是模板的內容是有一定的規則的,不能隨便添加。
注意:
1、測試模板的模板ID僅用於測試,不能用來給正式帳號發送模板消息
2、爲方便測試,測試模板可任意指定內容,但實際上正式帳號的模板消息,只能從模板庫中獲得
3、需爲正式帳號申請新增符合要求的模板,需使用正式號登錄公衆平臺,按指引申請
4、模板內容可設置參數(模板標題不可),供接口調用時使用,參數需以{{開頭,以.DATA}}結尾
模板內容裏面的內容如果是不會變動的就可以直接寫死,如果是變動的一定要設置成參數。
參數需要以"{{"這兩個左花括號開頭,以".DATA}}"結尾,如上圖所示。
保存之後,微信會給該模板分配一個ID,待我們要發送模板消息的時候就需要用到這個ID了。
2.發送給用戶
打開文檔"發送模板消息"
獲得發送模板的接口地址:https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
使用POST的方式來發送,並且把模板消息的數據以json數據的格式傳遞到該接口。
我們先來看看json裏面的參數主要有哪些?
實際上,必傳的只有 touser接收者,template_id模板id,data模板數據這3個參數,其他的可以不傳,如果傳了就會有相應的跳轉,比如跳轉至指定url,或者跳轉至小程序。
準備好的json數據:
{
"touser":"OPENID",
"template_id":"QI4JojaGvL9-5ynjwFwOSPqH2eWXHpr7ZeseysefKqc",
"data":{
"first": {
"value":"恭喜你購買成功!",
"color":"#173177"
},
"product":{
"value":"巧克力",
"color":"#173177"
},
"amount": {
"value":"39.8元",
"color":"#173177"
},
"time": {
"value":"2014年9月22日",
"color":"#173177"
},
"remark":{
"value":"歡迎再次購買!",
"color":"#173177"
}
}
}
把touser改成接收消息的用戶的OPENID就可以了 。
創建發送模板的方法:
//發送模板消息的接口
public static final String SEND_TEMPLATE_URL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";
public static void sendTemplate(String data) {
String result = HttpUtil.sendPost(SEND_TEMPLATE_URL.replace("ACCESS_TOKEN", getAccessToken()),data);
System.out.println(result+"XXXXXXx");
}
getAccessToken方法是上一篇文章自定義菜單的時候已經創建好了,主要是獲取我們調用接口的憑據AccessToken。
運行時把json數據傳入到方法中,我們可以看到打印出來的結果。
errcode爲0代表已經發送成功。如果errcode是其他值,請打開文檔的錯誤返回碼頁面中查找錯誤信息。
手機上的效果,參考圖中紅線框: