蔡利軍,周益飛
(武漢大學(xué) 信息中心,武漢 430072)
微信公眾號(hào)在財(cái)務(wù)查詢服務(wù)中的應(yīng)用
蔡利軍,周益飛
(武漢大學(xué)信息中心,武漢430072)
微信公眾號(hào)平臺(tái)已經(jīng)廣泛搭建,從數(shù)量、覆蓋面的深度及廣度都呈現(xiàn)急劇上升的趨勢(shì)。目前平臺(tái)功能已經(jīng)從推送信息轉(zhuǎn)向提供交互服務(wù)和加強(qiáng)溝通,在提供信息服務(wù)過(guò)程中,靈活方便的查詢功能更能滿足用戶的需要。
微信公眾號(hào);開(kāi)發(fā)模式;財(cái)務(wù)查詢
隨著移動(dòng)終端對(duì)生活各方面的滲透,微信公眾號(hào)平臺(tái)正在影響大眾的日常生活,微信公眾號(hào)提供的內(nèi)容包羅萬(wàn)象,全面實(shí)現(xiàn)著信息管理、功能服務(wù)等各種傳播功能。目前大而全的信息發(fā)布已經(jīng)不能準(zhǔn)確定位受眾,無(wú)法滿足用戶日益增長(zhǎng)的需求,因此精確定位、針對(duì)特定人群或某類用戶的特殊需求進(jìn)行服務(wù)成為微信公眾號(hào)平臺(tái)功能的新趨勢(shì)。
在財(cái)務(wù)管理信息化的進(jìn)程中,已經(jīng)經(jīng)歷了電算化、網(wǎng)絡(luò)化的階段,在目前互聯(lián)網(wǎng)加的時(shí)代,通過(guò)移動(dòng)終端提供各種便捷的財(cái)務(wù)查詢服務(wù),已經(jīng)成為體現(xiàn)財(cái)務(wù)信息化發(fā)展水平的重要標(biāo)志。由于微信被公認(rèn)為目前唯一拿到移動(dòng)互聯(lián)網(wǎng)門(mén)票的應(yīng)用,本文就以高校財(cái)務(wù)查詢?yōu)槔榻B微信公眾號(hào)提供的自定義菜單功能和開(kāi)發(fā)模式,實(shí)現(xiàn)簡(jiǎn)單的查詢服務(wù)。案例采用廣泛流行的PHP、MySQL程序語(yǔ)言和數(shù)據(jù)庫(kù)實(shí)現(xiàn)。
微信公眾號(hào)是微信公眾號(hào)所有者(政府、組織或個(gè)人等)進(jìn)行信息推廣、與用戶互動(dòng)交流及提供服務(wù)的平臺(tái),公眾號(hào)通過(guò)消息、事件、菜單等交互方式為用戶提供服務(wù)。例如:公眾號(hào)“招商銀行信用卡中心”為持卡人提供信用卡綁定、查詢信用卡賬單、額度及積分;快速還款、申請(qǐng)賬單分期;微信轉(zhuǎn)接人工服務(wù)等功能,同時(shí)還為非持卡人提供微信辦卡功能。
使用微信公眾平臺(tái)之前需要先在微信官方網(wǎng)站上注冊(cè)微信公眾號(hào),在注冊(cè)過(guò)程中需要進(jìn)行信息登記,要求選擇相應(yīng)的運(yùn)營(yíng)主體是組織還是個(gè)人,根據(jù)運(yùn)營(yíng)主體的不同,要求提供不同的資質(zhì)材料及證明。當(dāng)確定運(yùn)營(yíng)主體為組織時(shí),就可以選擇公眾號(hào)類型是訂閱號(hào)還是服務(wù)號(hào)。服務(wù)號(hào)默認(rèn)可以自動(dòng)獲得自定義菜單,可以申請(qǐng)微信認(rèn)證獲得高級(jí)接口權(quán)限。以武漢大學(xué)財(cái)務(wù)部為例,由于財(cái)務(wù)公眾號(hào)平臺(tái)旨在為用戶提供交互式服務(wù),因此選擇服務(wù)號(hào)作為武漢大學(xué)財(cái)務(wù)公眾號(hào)的類型。
微信公眾服務(wù)號(hào)消息接口為開(kāi)發(fā)者提供了與向用戶進(jìn)行消息交互的能力,對(duì)于成功接入消息接口的公眾服務(wù)號(hào),當(dāng)用戶發(fā)消息給公眾號(hào)時(shí),微信公眾平臺(tái)服務(wù)器會(huì)使用HTTP請(qǐng)求對(duì)接入的網(wǎng)址進(jìn)行消息推送,第三方服務(wù)器通過(guò)響應(yīng)包返回個(gè)性的回復(fù),從而達(dá)到回復(fù)消息的目的。也就是說(shuō)公眾服務(wù)號(hào)可以使用自己的編寫(xiě)的程序來(lái)和用戶對(duì)話。
使用了開(kāi)發(fā)模式的微信公眾號(hào)會(huì)成為一個(gè)配備了一系列指令規(guī)則的賬號(hào),當(dāng)用戶關(guān)注公眾號(hào),發(fā)送對(duì)應(yīng)的指令給公眾號(hào)之后可以獲得相應(yīng)的查詢結(jié)果。而這些規(guī)則的邏輯需要公眾服務(wù)號(hào)的開(kāi)發(fā)者根據(jù)公眾平臺(tái)的開(kāi)發(fā)規(guī)則在后臺(tái)服務(wù)器實(shí)現(xiàn)。用戶、微信后臺(tái)和需要開(kāi)發(fā)的公眾號(hào)后臺(tái)的服務(wù)器三者之間的交互關(guān)系如圖1所示。
圖1 用戶、微信后臺(tái)和公眾號(hào)服務(wù)器間的交互圖
圖1所示的具體交互過(guò)程描述如下:
(1)用戶在手機(jī)的微信上向公眾號(hào)發(fā)送一條消息,這條消息會(huì)通過(guò)網(wǎng)絡(luò)到達(dá)微信的后臺(tái);
(2)微信后臺(tái)收到消息后,把消息轉(zhuǎn)發(fā)給公眾號(hào)的服務(wù)器;
(3)公眾號(hào)服務(wù)器收到請(qǐng)求后,解析消息格式,根據(jù)用戶內(nèi)容和自己的服務(wù)器程序,查詢出需要返回給用戶的消息,然后封裝消息返回給微信后臺(tái);
(4)微信后臺(tái)把公眾號(hào)服務(wù)發(fā)來(lái)的消息轉(zhuǎn)發(fā)給用戶的微信手機(jī)客戶端,這樣用戶在手機(jī)客戶端就可以看到公眾號(hào)發(fā)來(lái)的微信消息了。
通過(guò)這個(gè)過(guò)程可以看到公眾號(hào)服務(wù)器要做的事情是:先獲取微信后臺(tái)發(fā)過(guò)來(lái)的消息,然后根據(jù)消息實(shí)現(xiàn)自己的業(yè)務(wù)邏輯,最后發(fā)送返回消息給微信后臺(tái)。因?yàn)槲⑿欧?wù)器公眾號(hào)服務(wù)使用的是HTTP協(xié)議,所以在公眾號(hào)服務(wù)器上必須要運(yùn)行一個(gè)HTTP服務(wù)和相應(yīng)端口。本文使用常見(jiàn)的Apache作為HTTP服務(wù),PHP為開(kāi)發(fā)語(yǔ)言,與MySQL數(shù)據(jù)庫(kù)搭配一起來(lái)實(shí)現(xiàn)微信公眾號(hào)查詢服務(wù)。
用戶關(guān)注微信公眾號(hào)后,自定義菜單能夠幫助公眾號(hào)豐富界面,增強(qiáng)用戶與微信公眾號(hào)互動(dòng),讓用戶更好、更快地理解公眾號(hào)所擁有的功能。目前自定義菜單最多包含3個(gè)一級(jí)菜單,每個(gè)一級(jí)菜單最多包含5個(gè)二級(jí)菜單。一級(jí)菜單最多4個(gè)漢字,二級(jí)菜單最多7個(gè)漢字,多出來(lái)的部分將會(huì)以“…”代替。自定義菜單內(nèi)容的參數(shù)及說(shuō)明如表1所示。
表1自定義菜單參數(shù)說(shuō)明
創(chuàng)建菜單時(shí),需要將菜單內(nèi)容組織成如下結(jié)構(gòu)(財(cái)務(wù)部微信公眾號(hào)的簡(jiǎn)單范例),以post的方式向微信服務(wù)器提交:
為了實(shí)現(xiàn)用戶自主查詢財(cái)務(wù)信息,我們需要先在微信開(kāi)發(fā)者中心啟用服務(wù)器配置,開(kāi)啟回調(diào)URL和Token,URL就是支持PHP和MySQL環(huán)境的公眾號(hào)服務(wù)器地址,可以自己搭建或租用虛擬空間,Token缺省設(shè)置為weixn。這樣,微信公眾平臺(tái)帳號(hào)就啟用了開(kāi)發(fā)模式。
創(chuàng)建自定義菜單和調(diào)用開(kāi)發(fā)模式高級(jí)功能都需要使用Accees Token,Accees Token相當(dāng)于進(jìn)入微信后臺(tái)各種接口的鑰匙,在微信公眾號(hào)開(kāi)發(fā)模式中占據(jù)重要的地位。access_token是微信公眾號(hào)的全局唯一票據(jù),正常情況下access_token有效期為7 200秒,重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。
微信公眾號(hào)可以使用AppID和AppSecret調(diào)用接口來(lái)獲取access_token,AppID和AppSecret是在注冊(cè)微信公眾號(hào)后由微信提供的第三方唯一憑證和密鑰。獲取Access Token接口的網(wǎng)址如下,執(zhí)行下面請(qǐng)求后,接口以JSON格式返回獲取的全局唯一口令和有效時(shí)間。
https://api.weixin.qq.com/cgi-bin/token?grant_type= client_cr edential&appid=
為了能夠?qū)崿F(xiàn)查詢服務(wù),我們需要在公眾號(hào)服務(wù)器后臺(tái)編輯index.php文件,首先,定義一個(gè)類wechatCallbackapi,并在類中定義一個(gè)方法receiveText()用于接受用戶發(fā)送的查詢信息,用戶向微信公眾號(hào)發(fā)送文本消息時(shí),微信公眾號(hào)接收到的XML數(shù)據(jù)格式如下:
<xml>
<ToUserName><![CDATA[接 收 方 微 信 號(hào) ]]></ ToUserName>
<FromUserName><?。跜DATA[發(fā)送方帳號(hào)(一個(gè)OpenID)]]></FromUserName>
<CreateTime>消息創(chuàng)建時(shí)間(整型)</CreateTime>
<MsgType><?。跜DATA[text]]></MsgType>
<Content><![CDATA[文本消息內(nèi)容]]></Content>
</xml>
其次,定義一個(gè)方法responseMsg(),在responseMsg()方法中,先提取消息類型,從而實(shí)現(xiàn)各種消息類型的分離,然后為文本消息類型定義接收方法函數(shù)transmitText(),返回消息的主要特征值,組成文本消息作為內(nèi)容回復(fù)。微信公眾號(hào)回復(fù)用戶文本消息時(shí)的XML數(shù)據(jù)格式如下:
<xml>
<ToUserName><?。跜DATA[接收方帳號(hào)(一個(gè)OpenID)]]></ToUserName>
<FromUserName><?。跜DATA[發(fā)送方微信號(hào)]]></ FromUserName>
<CreateTime>消息創(chuàng)建時(shí)間(整型)</CreateTime>
<MsgType><?。跜DATA[text]]></MsgType>
<Content><?。跜DATA[回復(fù)的消息內(nèi)容]]></Content>
</xml>
最后為了方便說(shuō)明查詢方法,假設(shè)當(dāng)關(guān)注的用戶輸入“工號(hào)+‘工資’”時(shí),返回該用戶當(dāng)月的工資,實(shí)現(xiàn)的關(guān)鍵代碼如下。
在該方法中,包含了query.php,即查詢工資的php文件,通過(guò)修改receiveText()方法中的判斷條件,對(duì)應(yīng)不同的php查詢程序文件,我們就能實(shí)現(xiàn)不同的查詢功能,返回用戶所需的各種財(cái)務(wù)數(shù)據(jù)。
微信公眾號(hào)是移動(dòng)互聯(lián)網(wǎng)時(shí)代的新式平臺(tái),作為財(cái)務(wù)管理者要主動(dòng)適應(yīng)時(shí)代的發(fā)展,積極的利用這個(gè)平臺(tái)為財(cái)務(wù)服務(wù)工作提供便利。微信公眾號(hào)查詢?cè)诟咝5膽?yīng)用,使得高校財(cái)務(wù)部的服務(wù)更加人性化,和用戶的信息溝通更加便利和有效。財(cái)務(wù)部的管理人員部署和實(shí)施微信公眾號(hào)服務(wù)也體現(xiàn)出現(xiàn)代財(cái)務(wù)管理的理念和新模式。應(yīng)進(jìn)一步結(jié)合微信的認(rèn)證功能,完善公眾號(hào)的各種查詢服務(wù),充分發(fā)揮其在財(cái)務(wù)管理方面的積極作用,提升高校財(cái)務(wù)部的綜合服務(wù)能力。
主要參考文獻(xiàn)
[1]方倍工作室.微信公眾平臺(tái)開(kāi)發(fā)最佳實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2014.
[2]鐘志勇,何威俊,馮煜博.微信公眾平臺(tái)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2014.
[3][美]W Jason Gilmore.PHP與MySQL程序設(shè)計(jì)[M].第3版.朱濤江,等,譯.北京:人民郵電出版社,2009:320-347.
10.3969/j.issn.1673-0194.2016.11.042
F253.7
A
1673-0194(2016)11-0073-03
2016-01-27