透過範(fàn)本訊息接口,公眾號(hào)能向關(guān)注其帳號(hào)的使用者發(fā)送預(yù)設(shè)範(fàn)本的訊息。範(fàn)本訊息僅用於公眾號(hào)向使用者發(fā)送重要的服務(wù)通知,只能用於符合其要求的服務(wù)場(chǎng)景中,如信用卡刷卡通知,商品購買成功通知等。不支援廣告等行銷類訊息以及其它所有可能對(duì)用戶造成騷擾的訊息。本文主要介紹基於C#開發(fā)實(shí)現(xiàn)公眾號(hào)範(fàn)本訊息的管理功能。
「範(fàn)本訊息功能的推出,將大大增強(qiáng)服務(wù)號(hào)的服務(wù)通知能力」,在一些一直期待微信範(fàn)本訊息功能開放的公眾號(hào)經(jīng)營者看來,微信一對(duì)一溝通的社群屬性,讓資訊推播的觸達(dá)率更加精準(zhǔn),這也讓企業(yè)在成本、服務(wù)效率、效能上有了不少優(yōu)勢(shì),不僅豐富了企業(yè)的服務(wù)形式,增強(qiáng)用戶的互動(dòng)和黏性,還能為用戶帶來更多樣化、豐富、及時(shí)的服務(wù)體驗(yàn)。
1、模板的行業(yè)分類管理及說明
模版資訊依行業(yè)劃分,並根據(jù)使用場(chǎng)景不同設(shè)計(jì)了不同的模版,如軟體行業(yè)下就有報(bào)名成功通知、看房提醒、訂單提醒、會(huì)員儲(chǔ)值、會(huì)員消費(fèi)通知等各種場(chǎng)景下可能使用到的模版。
如果我們公眾號(hào)需要使用模板,那麼我們需要從模板庫裡面新增所需的模板(目前數(shù)量上限為15個(gè))。模板加入我的模板後,每個(gè)模板就產(chǎn)生了一個(gè)隨機(jī)值,也就是【模板ID】,我們發(fā)送訊息,就是依照這個(gè)模板ID進(jìn)行發(fā)送的。
每個(gè)模板裡面都有詳細(xì)的參數(shù)說明,以及範(fàn)例效果。
微信團(tuán)隊(duì)相關(guān)負(fù)責(zé)人表示:範(fàn)本訊息的開放主要是為了幫助公眾號(hào)完成閉環(huán)服務(wù),現(xiàn)有的公眾號(hào),主動(dòng)發(fā)送訊息能力有限(每月可群發(fā)四則訊息),這讓許多企業(yè)無法向用戶推播服務(wù)結(jié)果等訊息的主動(dòng)通知。模板訊息開放後,企業(yè)可以藉助微信平臺(tái),運(yùn)用模板訊息,在外部服務(wù)和內(nèi)部管理過程中,讓資訊的接觸更為迅捷,為用戶提供更周到的服務(wù)。
微信一直在不斷優(yōu)化使用者體驗(yàn),範(fàn)本訊息的開放,為企業(yè)提供了更多的基礎(chǔ)能力,例如更豐富的雙向互動(dòng),更精準(zhǔn)的資訊提醒等,這些都提升了企業(yè)精品化、個(gè)人化服務(wù)的深度和廣度,這也是為什麼金融、民航、政務(wù)等多領(lǐng)域的機(jī)構(gòu)、企業(yè)都期待微信開放模板訊息功能的原因。未來,隨著範(fàn)本訊息功能的進(jìn)一步完善,或許企業(yè)員工薪資明細(xì)、住戶每月用電量、電費(fèi)等用電詳情,甚至是駕駛證到期需更換等,都能透過企業(yè)、部門機(jī)構(gòu)微信公眾帳號(hào)的範(fàn)本訊息即時(shí)傳遞給對(duì)應(yīng)使用者。
2、使用模板訊息進(jìn)行開發(fā)
前面介紹了模板的相關(guān)資訊以及單一模板的介紹,我們?nèi)绻枰卺崤_(tái)程式中整合模板訊息發(fā)送的話,那麼我們需要了解模板訊息的API有那些?如何利用模板訊息的API進(jìn)行訊息發(fā)送?
我們先來看看範(fàn)本訊息使用的說明:
1、所有服務(wù)號(hào)都可以在功能->添加功能插件處看到申請(qǐng)模板消息功能的入口,但只有認(rèn)證后的服務(wù)號(hào)才可以申請(qǐng)模板消息的使用權(quán)限并獲得該權(quán)限; 2、需要選擇公眾賬號(hào)服務(wù)所處的2個(gè)行業(yè),每月可更改1次所選行業(yè); 3、在所選擇行業(yè)的模板庫中選用已有的模板進(jìn)行調(diào)用; 4、每個(gè)賬號(hào)可以同時(shí)使用15個(gè)模板。 5、當(dāng)前每個(gè)模板的日調(diào)用上限為10萬次【2014年11月18日將接口調(diào)用頻率從默認(rèn)的日1萬次提升為日10萬次,可在MP登錄后的開發(fā)者中心查看】。
範(fàn)本訊息的管理功能有:
1 設(shè)定所屬產(chǎn)業(yè)
2 取得範(fàn)本ID
3 發(fā)送範(fàn)本訊息
4 事件推送
2.1設(shè)定所屬產(chǎn)業(yè)
設(shè)定產(chǎn)業(yè)可在MP中完成,每月可修改產(chǎn)業(yè)1次,帳號(hào)僅可使用所屬產(chǎn)業(yè)中相關(guān)的模板,為方便第三方開發(fā)者,提供透過介面呼叫的方式修改帳號(hào)所屬產(chǎn)業(yè),具體如下:
介面呼叫請(qǐng)求說明
http請(qǐng)求方式:?POST https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=ACCESS_TOKEN
POST資料說明
POST資料範(fàn)例如下:
??????{ ??????????"industry_id1":"1", ??????????"industry_id2":"4" ???????}
根據(jù)說明,我們可以定義一個(gè)介接類別ITemplateMessageApi,然後定義設(shè)定所屬產(chǎn)業(yè)的接口函數(shù)如下所示:
????????///?<summary> ????????///?設(shè)置所屬行業(yè)????????///?</summary> ????????///?<param name="accessToken"></param> ????????///?<param name="industry_id1">公眾號(hào)模板消息所屬行業(yè)編號(hào)(主營行業(yè))</param> ????????///?<param name="industry_id2">公眾號(hào)模板消息所屬行業(yè)編號(hào)(副營行業(yè))</param> ????????///?<returns></returns> ????????CommonResult?SetIndustry(string?accessToken,?IndustryCode?industry_id1,?IndustryCode?industry_id2);
而為了方便,我們定義IndustryCode為一個(gè)枚舉對(duì)象,裡面列出了系統(tǒng)支援的所有產(chǎn)業(yè)程式碼,如下所示。
而實(shí)現(xiàn)代碼和之前的函數(shù)處理類似,都是POST數(shù)據(jù)到一個(gè)連接即可,并解析返回的結(jié)果就可以了,具體實(shí)現(xiàn)代碼如下所示。
///?<summary> ????????///?設(shè)置所屬行業(yè) ????????///?</summary> ????????///?<param name="accessToken">訪問憑證</param> ????????///?<param name="industry_id1">公眾號(hào)模板消息所屬行業(yè)編號(hào)(主營行業(yè))</param> ????????///?<param name="industry_id2">公眾號(hào)模板消息所屬行業(yè)編號(hào)(副營行業(yè))</param> ????????///?<returns></returns> ????????public?CommonResult?SetIndustry(string?accessToken,?IndustryCode?industry_id1,?IndustryCode?industry_id2) ????????{ ????????????var?url?=?string.Format("https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token={0}",?accessToken); ????????????var?data?=?new ????????????{ ????????????????industry_id1?=?(int)industry_id1, ????????????????industry_id2?=?(int)industry_id2 ????????????}; ????????????string?postData?=?data.ToJson(); ????????????return?Helper.GetExecuteResult(url,?postData); ????????}
2.2?獲得模板ID
獲得模板ID,也就是從模板庫里面添加對(duì)應(yīng)的模板消息到我的模板里面。
從行業(yè)模板庫選擇模板到賬號(hào)后臺(tái),獲得模板ID的過程可在MP中完成。為方便第三方開發(fā)者,提供通過接口調(diào)用的方式來修改賬號(hào)所屬行業(yè),具體如下:
接口調(diào)用請(qǐng)求說明
http請(qǐng)求方式:?POST https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=ACCESS_TOKEN
POST數(shù)據(jù)說明
POST數(shù)據(jù)示例如下:
??????{ ???????????"template_id_short":"TM00015" ???????}
C#函數(shù)實(shí)現(xiàn)代碼如下所示:
///?<summary> ????????///?獲得模板ID. ????????///?從行業(yè)模板庫選擇模板到賬號(hào)后臺(tái),獲得模板ID的過程可在MP中完成。 ????????///?</summary> ????????///?<param name="accessToken">訪問憑證</param> ????????///?<param name="template_id_short">模板庫中模板的編號(hào),有“TM**”和“OPENTMTM**”等形式</param> ????????///?<returns></returns> ????????public?AddTemplateResult?AddTemplate(string?accessToken,?string?template_id_short) ????????{ ????????????var?url?=?string.Format("https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token={0}",?accessToken); ????????????var?data?=?new ????????????{ ????????????????template_id_short?=?template_id_short ????????????}; ????????????string?postData?=?data.ToJson(); ????????????return?JsonHelper<AddTemplateResult>.ConvertJson(url,?postData); ????????}
2.3?發(fā)送模板消息
根據(jù)上面小節(jié)處理,添加到我的模板里面的操作得到的模板ID,我們就可以調(diào)用發(fā)送模板消息的API進(jìn)行模板消息發(fā)送了。
接口調(diào)用請(qǐng)求說明
http請(qǐng)求方式:?POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
POST數(shù)據(jù)說明
POST數(shù)據(jù)示例如下:
??????{ ???????????"touser":"OPENID", ???????????"template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", ???????????"url":"http://weixin.qq.com/download", ???????????"topcolor":"#FF0000", ???????????"data":{ ???????????????????"first":?{ ???????????????????????"value":"恭喜你購買成功!", ???????????????????????"color":"#173177" ???????????????????}, ???????????????????"keynote1":{ ???????????????????????"value":"巧克力", ???????????????????????"color":"#173177" ???????????????????}, ???????????????????"keynote2":?{ ???????????????????????"value":"39.8元", ???????????????????????"color":"#173177" ???????????????????}, ???????????????????"keynote3":?{ ???????????????????????"value":"2014年9月16日", ???????????????????????"color":"#173177" ???????????????????}, ???????????????????"remark":{ ???????????????????????"value":"歡迎再次購買!", ???????????????????????"color":"#173177" ???????????????????} ???????????} ???????}
根據(jù)上面的JSON參數(shù),我們可以看到,有部分是模板消息公共的部分,有部分則是模板消息的具體參數(shù),這些參數(shù)需要根據(jù)不同的模板進(jìn)行不同的賦值。
如這部分是共同的:
???touser":"OPENID", ???"template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", ???"url":"http://weixin.qq.com/download", ???"topcolor":"#FF0000",
根據(jù)這個(gè)特點(diǎn),我們定義發(fā)送模板消息的接口如下所示:
///?<summary> ????????///?模板消息僅用于公眾號(hào)向用戶發(fā)送重要的服務(wù)通知,只能用于符合其要求的服務(wù)場(chǎng)景中,如信用卡刷卡通知,商品購買成功通知等。 ????????///?不支持廣告等營銷類消息以及其它所有可能對(duì)用戶造成騷擾的消息。 ????????///?</summary> ????????///?<param name="accessToken">訪問憑證</param> ????????///?<param name="openId">賬號(hào)的openID</param> ????????///?<param name="templateId">在公眾平臺(tái)線上模板庫中選用模板獲得ID</param> ????????///?<param name="data">模板的變化參數(shù)數(shù)據(jù)</param> ????????///?<param name="url">,URL置空,則在發(fā)送后,點(diǎn)擊模板消息會(huì)進(jìn)入一個(gè)空白頁面(ios),或無法點(diǎn)擊(android)。</param> ????????///?<param name="topcolor">頂部顏色,默認(rèn)為#173177</param> ????????///?<returns></returns> ????????SendMassMessageResult?SendTemplateMessage(string?accessToken,?string?openId,?string?templateId,?object?data,?string?url,?string?topcolor?=?"#173177");
我們用object data來定義模板的變化參數(shù)數(shù)據(jù)。
具體的實(shí)現(xiàn)還是和前面的方法提交數(shù)據(jù)處理差不多,代碼如下所示。
///?<summary> ????????///?模板消息僅用于公眾號(hào)向用戶發(fā)送重要的服務(wù)通知,只能用于符合其要求的服務(wù)場(chǎng)景中,如信用卡刷卡通知,商品購買成功通知等。 ????????///?不支持廣告等營銷類消息以及其它所有可能對(duì)用戶造成騷擾的消息。 ????????///?</summary> ????????///?<typeparam name="T"></typeparam> ????????///?<param name="accessToken">訪問憑證</param> ????????///?<param name="openId"></param> ????????///?<param name="templateId">在公眾平臺(tái)線上模板庫中選用模板獲得ID</param> ????????///?<param name="data"></param> ????????///?<param name="url">,URL置空,則在發(fā)送后,點(diǎn)擊模板消息會(huì)進(jìn)入一個(gè)空白頁面(ios),或無法點(diǎn)擊(android)。</param> ????????///?<param name="topcolor"></param> ????????///?<returns></returns> ????????public?SendMassMessageResult?SendTemplateMessage(string?accessToken,?string?openId,?string?templateId,?object?data,?string?url,?string?topcolor?=?"#173177") ????????{ ????????????var?postUrl?=?string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}",?accessToken); ????????????var?msgData?=?new?TemplateData() ????????????{ ????????????????touser?=?openId, ????????????????template_id?=?templateId, ????????????????topcolor?=?topcolor, ????????????????url?=?url, ????????????????data?=?data ????????????}; ????????????string?postData?=?msgData.ToJson(); ????????????SendMassMessageResult?result?=?JsonHelper<SendMassMessageResult>.ConvertJson(postUrl,?postData); ????????????return?result; ????????}
發(fā)送模板的消息相對(duì)其他兩個(gè)接口的使用復(fù)雜一些,例如我以一個(gè)會(huì)員通知的模板消息為例,模板的詳細(xì)情況如下:
具體的測(cè)試代碼如下所示。
#region?發(fā)送模板消息 ????????????var?data?=?new ????????????{ ????????????????//使用TemplateDataItem簡單創(chuàng)建數(shù)據(jù)。 ????????????????first?=?new?TemplateDataItem("您好,您已成為微信【廣州愛奇迪】會(huì)員。"), ????????????????type?=?new?TemplateDataItem("18620292076"), ????????????????address?=?new?TemplateDataItem("廣州市白云區(qū)廣州大道北"), ????????????????VIPName?=?new ????????????????{ ????????????????????//使用new?方式,構(gòu)建數(shù)據(jù),包括value,?color兩個(gè)固定屬性。 ????????????????????value?=?"伍華聰", ????????????????????color?=?"#173177" ????????????????}, ????????????????VIPPhone?=?new?TemplateDataItem("18620292076"), ????????????????expDate?=?new?TemplateDataItem("2016年4月18日"), ????????????????remark?=?new?TemplateDataItem("如有疑問,請(qǐng)咨詢18620292076。",?"#173177"), ????????????}; ????????????#endregion ????????????string?url?=?"http://www.iqidi.com"; ????????????string?topColor?=?"#173177"; ????????????string?templateId?=?"-5LbClAa9KUlEmr5bCSS0rxU_I2iT16iYBDxCVU1iJg"; ????????????SendMassMessageResult?sendResult?=?api.SendTemplateMessage(token,?openId,?templateId,?data,?url,?topColor); ????????????if(sendResult?!=?null) ????????????{ ????????????????Console.WriteLine(sendResult.msg_id); ????????????}
那么我們得到的提示效果如下所示。
微信模板消息,能夠讓我們與客戶之間溝通不受每月幾條數(shù)量的限制,同時(shí)也能夠利用微信模板庫豐富的內(nèi)容,實(shí)現(xiàn)強(qiáng)大的應(yīng)用場(chǎng)景。
更多C#開發(fā)微信門戶及應(yīng)用公眾號(hào)模板消息管理?相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!?

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)