作者:陳惠乌企,叩丁狼教育高級(jí)講師虑润。原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處加酵。
發(fā)送模板消息也叫業(yè)務(wù)通知拳喻,聽(tīng)起來(lái)雖然有點(diǎn)陌生,但是在生活當(dāng)中是經(jīng)常見(jiàn)到的虽画。這一次舞蔽,我們直接來(lái)看個(gè)效果。
如上圖所示码撰,在我們的生活中渗柿,無(wú)論是微商城消費(fèi),還是日常生活消費(fèi)脖岛,都可能收到這種提示朵栖,比如訂單通知,快遞狀態(tài)通知柴梆,銀行卡支付通知陨溅,都屬于業(yè)務(wù)通知,很多公眾號(hào)也都實(shí)現(xiàn)了這種功能绍在,當(dāng)觸發(fā)了某種行為或狀態(tài)改變门扇,就會(huì)發(fā)送這么一個(gè)消息給你,因?yàn)檫@種消息都是按照一定的的格式來(lái)編輯偿渡,所以也叫模板消息臼寄。
發(fā)送模板消息
那要怎么才能發(fā)送呢?我們打開(kāi)開(kāi)發(fā)文檔"消息管理"中的"模板消息接口"溜宽。
要注意的是認(rèn)證后的服務(wù)號(hào)才可以申請(qǐng)模板消息的使用權(quán)限并獲得該權(quán)限吉拳,否則就只能使用測(cè)試號(hào)。
該頁(yè)面中介紹了幾個(gè)接口适揉,我們主要使用第6個(gè)來(lái)發(fā)送模板消息留攒。
其他的接口主要是為了方便開(kāi)發(fā)者獲取或設(shè)置公眾號(hào)的所屬行業(yè),比如餐飲嫉嘀,教育等等炼邀,如果是正式的公眾號(hào),也可以登錄公眾平臺(tái)來(lái)進(jìn)行設(shè)置剪侮,其他的接口就是獲取模板的信息等汤善,如果沒(méi)需求可以不調(diào)用。
我們要發(fā)送模板消息票彪,第一步是需要?jiǎng)?chuàng)建一個(gè)模板红淡,有了模板之后,我們才能填充內(nèi)容來(lái)進(jìn)行發(fā)送降铸。
1.創(chuàng)建模板
創(chuàng)建模板不需要調(diào)用接口在旱,在公眾號(hào)后臺(tái)即可設(shè)置。
圖中是測(cè)試號(hào)中的設(shè)置界面推掸。
現(xiàn)在我們來(lái)按照下面案例來(lái)新建一個(gè)模板桶蝎。但是模板的內(nèi)容是有一定的規(guī)則的,不能隨便添加谅畅。
注意:
1登渣、測(cè)試模板的模板ID僅用于測(cè)試,不能用來(lái)給正式帳號(hào)發(fā)送模板消息
2毡泻、為方便測(cè)試胜茧,測(cè)試模板可任意指定內(nèi)容,但實(shí)際上正式帳號(hào)的模板消息仇味,只能從模板庫(kù)中獲得
3呻顽、需為正式帳號(hào)申請(qǐng)新增符合要求的模板,需使用正式號(hào)登錄公眾平臺(tái)丹墨,按指引申請(qǐng)
4廊遍、模板內(nèi)容可設(shè)置參數(shù)(模板標(biāo)題不可),供接口調(diào)用時(shí)使用贩挣,參數(shù)需以{{開(kāi)頭喉前,以.DATA}}結(jié)尾
模板內(nèi)容里面的內(nèi)容如果是不會(huì)變動(dòng)的就可以直接寫(xiě)死,如果是變動(dòng)的一定要設(shè)置成參數(shù)王财。
參數(shù)需要以"{{"這兩個(gè)左花括號(hào)開(kāi)頭卵迂,以".DATA}}"結(jié)尾,如上圖所示搪搏。
保存之后狭握,微信會(huì)給該模板分配一個(gè)ID,待我們要發(fā)送模板消息的時(shí)候就需要用到這個(gè)ID了疯溺。
2.發(fā)送給用戶
打開(kāi)文檔"發(fā)送模板消息"
獲得發(fā)送模板的接口地址:https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
使用POST的方式來(lái)發(fā)送论颅,并且把模板消息的數(shù)據(jù)以json數(shù)據(jù)的格式傳遞到該接口。
我們先來(lái)看看json里面的參數(shù)主要有哪些囱嫩?
實(shí)際上恃疯,必傳的只有 touser接收者,template_id模板id墨闲,data模板數(shù)據(jù)這3個(gè)參數(shù)今妄,其他的可以不傳,如果傳了就會(huì)有相應(yīng)的跳轉(zhuǎn),比如跳轉(zhuǎn)至指定url盾鳞,或者跳轉(zhuǎn)至小程序犬性。
準(zhǔn)備好的json數(shù)據(jù):
{
"touser":"OPENID",
"template_id":"QI4JojaGvL9-5ynjwFwOSPqH2eWXHpr7ZeseysefKqc",
"data":{
"first": {
"value":"恭喜你購(gòu)買成功!",
"color":"#173177"
},
"product":{
"value":"巧克力",
"color":"#173177"
},
"amount": {
"value":"39.8元",
"color":"#173177"
},
"time": {
"value":"2014年9月22日",
"color":"#173177"
},
"remark":{
"value":"歡迎再次購(gòu)買腾仅!",
"color":"#173177"
}
}
}
把touser改成接收消息的用戶的OPENID就可以了 乒裆。
創(chuàng)建發(fā)送模板的方法:
//發(fā)送模板消息的接口
public static final String SEND_TEMPLATE_URL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";
/**
* 發(fā)送模板
*
*/
public static void sendTemplate(String data){
String result = HttpUtil.post(SEND_TEMPLATE_URL.replace("ACCESS_TOKEN", getAccessToken()),data);
System.out.println(result);
}
getAccessToken方法是上一篇文章自定義菜單的時(shí)候已經(jīng)創(chuàng)建好了,主要是獲取我們調(diào)用接口的憑據(jù)AccessToken推励。
運(yùn)行時(shí)把json數(shù)據(jù)傳入到方法中鹤耍,我們可以看到打印出來(lái)的結(jié)果。
{"errcode":0,"errmsg":"ok","msgid":232391810540961792}
errcode為0代表已經(jīng)發(fā)送成功验辞。如果errcode是其他值稿黄,請(qǐng)打開(kāi)文檔的錯(cuò)誤返回碼頁(yè)面中查找錯(cuò)誤信息。
手機(jī)上的效果跌造,參考圖中紅線框: