嗨:大家好可都,今天咱們使用微信的時(shí)候經(jīng)常能收到微信的購(gòu)買消息的通知,這些消息通知很多使用的是模板消息蚓耽,模板消息比較圖文消息來的簡(jiǎn)單渠牲、明了而且內(nèi)容很清晰,用于簡(jiǎn)單的消息通知在合適不過了步悠。今天咱們就來看下模板消息签杈。關(guān)于模板消息大家要注意幾點(diǎn):
1、微信模板消息模板的申請(qǐng)鼎兽。這個(gè)可以使用固有的模板答姥,就是你選擇了你的模板消息所屬的一級(jí)二級(jí)所屬行業(yè)铣除,就會(huì)有一些已經(jīng)存在的模板,然后咱們是用就可以了踢涌。
2通孽、模板有了,咱們呢就可以開發(fā)使用這個(gè)模板進(jìn)行模板消息的發(fā)送睁壁。
3.當(dāng)然發(fā)送給誰(shuí)這個(gè)還是需要關(guān)注的用戶的信息——openId.
以上就是微信模板消息開發(fā)的幾個(gè)要素背苦。其中第三條就是咱能之前說的微信授權(quán),這里是需要openId的話使用靜默授權(quán)就可以啦潘明。咱們這里不做贅述行剂,還沒有了解的用戶可以看看之前的微信授權(quán)章節(jié)。接下來咱們看一下微信模板消息發(fā)送三要素的第一個(gè)模板申請(qǐng):
首先咱們來看一下人家模板庫(kù)里的消息模板:
編號(hào)OPENTM207509450
標(biāo)題積分變動(dòng)提醒
行業(yè)IT科技 - 互聯(lián)網(wǎng)|電子商務(wù)
使用人數(shù)1646
最后修改時(shí)間2015-09-01 10:47:55
詳細(xì)內(nèi)容
{{first.DATA}}
獲得時(shí)間:{{keyword1.DATA}}
獲得積分:{{keyword2.DATA}}
獲得原因:{{keyword3.DATA}}
當(dāng)前積分:{{keyword4.DATA}}
{{remark.DATA}}
內(nèi)容示例
親愛的張三钳降,您的積分賬戶有新的變動(dòng)厚宰,具體內(nèi)容如下:
獲得時(shí)間:2015年10月10日 19:21
獲得積分:1000
獲得原因:完成交易
當(dāng)前積分:2000
感謝您的使用
上面的這個(gè)就是模板庫(kù)里的消息模板,咱們要是在模板庫(kù)里沒有找到適合咱們自己開發(fā)的模板的話需要申請(qǐng)一個(gè)新的模板遂填,模板申請(qǐng)是需要向微信服務(wù)器提供咱們的模板模型铲觉。具體需要注意的幾點(diǎn)就是
1、模板需要符合格式: 具體的申請(qǐng)?jiān)冢鹤筮厵谀0逑?--> 模板庫(kù) --> 找不到你想要的模板吓坚?幫助我們完善模板庫(kù) --> 點(diǎn)擊進(jìn)去之后就會(huì)提醒我們填寫模板信息
模板
1.1:行業(yè) :這個(gè)是咱們業(yè)務(wù)所屬的行業(yè)
1.2:標(biāo)題 :咱們需要發(fā)送的模板的標(biāo)題撵幽,有一些規(guī)范要求:標(biāo)題需在4-12字之間,清晰詳細(xì)的標(biāo)題有利于通過審核建議模板標(biāo)題以“通知”或“提醒”作為結(jié)尾
1.3:內(nèi)容 :這個(gè)是需要更多的規(guī)范要求:
必須以:{{first.DATA}} 以:{{remark.DATA}} 中間的內(nèi)容是必填的關(guān)鍵字:
填寫關(guān)鍵字
:{{keyword1.DATA}}
填寫關(guān)鍵字
:{{keyword2.DATA}}
上面的模板庫(kù)里的消息模板就是嚴(yán)按照這個(gè)格式來的礁击,大家自己看一下盐杂,但是最好的還是微信開發(fā)文檔啦:https://mp.weixin.qq.com/advanced/tmplmsg?action=faq&token=1081459479&lang=zh_CN
好了,有了微信消息的模板了哆窿,下面咱們這個(gè)模板的消息發(fā)送看一下:
首先咱們需要獲取用戶的openId,就是咱們要發(fā)送給那些用戶链烈,咱們知道這個(gè)openId一旦綁定的話一個(gè)用戶就是一個(gè)一直不會(huì)變了,這個(gè)咱們?cè)谑跈?quán)之后可以存儲(chǔ)起來挚躯,在各個(gè)場(chǎng)合使用领斥。然后就是調(diào)用接口啦茁计,微信的接口借調(diào)需要憑證的也就是咱們之前一直進(jìn)行接口調(diào)用時(shí)候使用的access_token廊酣,有了這個(gè)access_token之后就可以正式調(diào)用微信的發(fā)送模板消息接口啦荷并,迫不及待了,咱們來看一下:
/**
* 發(fā)送模板消息
* @param token 接口憑證
* @param openId 用戶的唯一標(biāo)識(shí)
* @param templateId 模板消息ID
* @param actionUrl 點(diǎn)擊模板消息跳轉(zhuǎn)路徑
* @param data 模板消息內(nèi)容 Json 串格式
* @return
*/
private static final String SEND_TEMPLATE_MSG = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s";
public TemplateMsgResult sendTemplateMsg(TemplateMsgBean templateMsgBean) {
String url = String.format(SEND_TEMPLATE_MSG, templateMsgBean.getToken());
TemplateMsgResult templetMsgResult = null;
try {
Map<String, String> miniProgram = Maps.newHashMap();
miniProgram.put("appid", "所需跳轉(zhuǎn)到的小程序appid(該小程序appid必須與發(fā)模板消息的公眾號(hào)是綁定關(guān)聯(lián)關(guān)系)");
miniProgram.put("pagepath", "所需跳轉(zhuǎn)到小程序的具體頁(yè)面路徑目胡,支持帶參數(shù),(示例index?foo=bar)");
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("touser", templateMsgBean.getOpenId());
paramMap.put("template_id", templateMsgBean.getTemplateId());
paramMap.put("topcolor", "#FF0000");
//url有值就跳轉(zhuǎn),沒有Ios空白頁(yè),Android不跳轉(zhuǎn)
paramMap.put("url", templateMsgBean.getActionUrl());
//是否跳轉(zhuǎn)小程序,這個(gè)參數(shù)暫時(shí)保留,設(shè)置的話就直接跳轉(zhuǎn)小程序了
//paramMap.put("miniprogram", miniProgram);
paramMap.put("data", templateMsgBean.getData());
String param = GsonHolder.getGson().toJson(paramMap);
LOGGER.info("發(fā)送模板消息,請(qǐng)求url:{},參數(shù):{}", url, GsonHolder.getGson().toJson(paramMap));
String result = HttpClientUtils.sendHttpsPost(url, param);
LOGGER.info("發(fā)送模板消息,返回結(jié)果:{}", result);
templetMsgResult = GsonHolder.getGson().fromJson(result, TemplateMsgResult.class);
} catch (Exception ex) {
LOGGER.error("發(fā)送微信模板消息異常:", ex);
}
return templetMsgResult;
}
具體的參數(shù)使用咱們的注釋里已經(jīng)解釋的很清楚了,我在這里就不做說明了链快。這里還有個(gè)注意點(diǎn)就是誉己,微信的模板消息支持小程序的跳轉(zhuǎn)了,很贊吧域蜗。其實(shí)也就是調(diào)用接口啦巨双。大家感興趣的話可以試試噪猾。微信公眾號(hào)開發(fā)后面咱們還在持續(xù)中。希望感興趣的朋友們多多交流筑累。