?

基于微信公眾平臺的應用系統開發模式研究

2016-10-18 17:08萬春旭
科技視界 2016年22期
關鍵詞:應用系統公眾平臺微信

萬春旭

【摘 要】本文在介紹微信公眾平臺的類型與功能的基礎上,同時給出了微信公眾平臺的申請與認證方法,重點論述了公眾平臺的開發模式與關鍵技術,包括消息響應模式、安全認證機制、消息封裝與解析及自定義菜單的實現方法等主要內容。

【關鍵詞】微信;公眾平臺;應用系統

微信,簡稱weChat。是時下最受關注的移動互聯網產品。經過幾年的發展,微信的注冊用戶數已超過6億,成為移動互聯網最重要的入口之一。

微信公眾平臺(以下簡稱“公眾平臺”),曾命名為“官號平臺”和“媒體平臺”,最終定位為“公眾平臺”。公眾平臺又可以分為三種類型:服務號、訂閱號和企業號。訂閱號,主要是為用戶提供信息推送業務。服務號旨在為用戶提供功能性服務,它可以自定義菜單并進行應用功能開發。企業號旨在幫助企業、政府機關、學校、醫院等事業單位和非政府組織建立與員工、上下游合作伙伴及內部IT系統間的連接,并能有效地簡化管理流程、提高信息的溝通和協同效率、提升對一線員工的服務及管理能力。

基于公眾平臺的應用系統開發,這幾年得到了大家的追捧,發展迅猛。與傳統的移動端APP比較,公眾平開發有以下幾個方面的優勢:

(1)公眾平臺應用與APP能實現的功能基本相同;

(2)公眾平臺開發與平臺無關,不用針對android與ios分別開發;

(3)公眾平臺推廣簡單,用戶粘性大。只要提供二維碼,用戶掃描關注就能完成操作;

(4)公眾平臺的開發與維護成本低。

基于上面這些優點,目前公眾平臺開發成為軟件業的一項發展最快的業務。

1 微信公眾平臺開發

微信公眾平臺開發是指,把企業推廣和管理業務從傳統的媒體和互聯網移植到微信公眾平臺中,節省推廣成本、增加用戶粘性、方便客戶操作。比較成功的應用案例有招商銀行、南方航空、華為運動健康、廣州公安等。

1.1 微信公眾平臺開發準備

企業要在開始著手公眾平臺開發以前,必須做好以下幾個方面的準備工作。

1.1.1 申請企業獨有的服務號或企業號

公共號申請分兩個階段完成。第一階段:到微信公眾號官網注冊賬號。注冊時需要提供一個在用的電子郵箱、注冊人身份證號、注冊人手拿身份證的照片。注冊信息需要經過騰訊公司審核,一般需要1~2天。這樣注冊的號只是個訂閱號,只有信息推送功能,無法進行后臺開發。第二階段:賬號認證,通過認證的公眾號才是服務號或企業號。服務號和企業號才能進行深入的后臺功能開發。賬號認證需要提供企業營業執照、機構代碼和企業的銀行賬號等信息,一次認證的費用為300元,有效期1年,一個企業(單位)最多可以認證5個公眾號。在進行公眾號功能開發時,可以提前對5個號的功能做好規劃。公眾號不針對個人開發。

1.1.2 租用與開發技術相符合的服務器

基于公共平臺的應用系統需要不斷地與微信服務器通訊,系統必須部署在接入Internet的網服務器上。選擇服務器種類時,需要與系統的開發技術相配套,主要參考開發語言、數據庫類型、將來的用戶規模、系統維護方式等多方面。

1.2 微信公眾平臺開發模式

微信公眾平臺開發的主要依據是騰訊公司提供的“公眾平臺開發者文檔”,這個文檔隨著微信版本的提升,內容也不斷在更新完善。公眾平臺開發與傳統的軟件開發在模式上有很大的區別,公眾平臺開發類似與基于網絡的編程,下面是公眾平臺開發模式的介紹。

1.2.1 消息的接收與響應模式

消息的接收與響應是用戶與公共平臺之間最常用的一種交互方式。參與消息交互的實體主要有3個:用戶、微信服務器和公眾賬號服務器,這三者之間的消息交互流程如圖1所示。

1)接收消息

當微信用戶向公眾號發消息時,微信服務器將POST消息的XML數據包發送到開發者填寫的URL上。

2)發送消息

對于每一個POST請求,開發者在響應包中返回特定XML結構,并對該消息進行響應(支持回復文本、圖片、圖文、語音、視頻、音樂)。

圖1 公眾平臺的消息交互流程

1.2.2 消息結構的封裝與處理

微信服務器與公眾賬號服務器交互的消息可分為3類:請求消息、事件和響應消息。微信服務器對每種消息數據采用XML格式封裝。微信API文檔給出了每一種消息的詳細XML結構。下面給出的是文本消息的XML格式。這個XML文檔中封裝了消息的發送者、消息的接收者、消息創建時間、消息類型、消息內容、消息ID等信息。

各種編程語言都有現成的框架來完成XML格式文件的封裝與解析。Java語言中最常用的XML處理開源框架有Dom4j和XStream,下面這段代碼為XStream解析XML的核心代碼。其他功能的具體實現方法可查找相關資料。

Map map = new HashMap();//用于存放XML文檔解析結果

InputStream is = request.getInputStream();//從請求中取得字節流格式的XML文件

SAXReader reader = new SAXReader;//生成一個用于SAXReader對像,該對象用于解析XML文檔

Document document = reader.read(is);//把字節流格式的XML文件,解析成標準格式的XML文檔

Elment root = document.getRootElement();//得到XML根元素

List elementList = root.elements();

for(Element e : elementList )

map.put(e.getName(),e.getText());

is.close();

is = null;

2 獲取接口訪問憑證

公眾平臺為開發者提供了一系列接口,開發者通過調用這些接口能夠實現創建自定義菜單、獲取用戶信息等功能。在調用這些接口時需要傳入接口訪問憑證access_token,開發者需要通過公眾平臺提供的獲取憑證接口得到access_token。獲取憑證接口的請求地址為:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET。這里的grant_type是授權類型,上傳固定值client_credential即可。參數appid和secret是一個公眾賬號的唯一憑證和密鑰。接口調用成功,返回一個如下格式JSON格式的結果:{"access_token":"ACCESS_TOKEN","expires_in":7200},acess_token就是我們需要的接口訪問憑證,它是一個長度上百位的加密字符串,expires_in是憑證的有效期,單位是秒。

訪問憑證以JSON格式封裝,Java語言可以通過JSON-lib,將JSON字符串轉換成Java對象,這樣就可以方便地從對象中取到數據了。具體實現代碼如下:

//將返回的JSON字符串轉換成JSONObject對象

JSONObject jsonObject = JSONObject.fromObject(buffer.toString())

String accessToken = jsonObject.getString("access_token");//獲取接口訪問憑證

int expiresIn = jsonObject.getInt("expires_in");//獲取憑證的有效期

3 自定義菜單的實現

前期工作都準備完成,取得了訪問憑證后,就可以使用微信的各種接口,實現系統需要的各項功能,包括自定義菜單、獲取用戶信息、地理位置服務、語音識別等。其中,自定義菜單是所有基于微信公共號應用系統都必須實現的。

通過調用自定義菜單接口,能夠實現菜單的創建、查詢和刪除。其中最重要的是菜單的創建,查詢與刪除用得相對較少。自定義菜單的菜單項本質上是一個按鈕,按鈕類型有click(點擊事件)和view(訪問網頁)兩種,兩種按鈕的屬性不同。

表1 按鈕類型屬性說明

下面為JSON格式的菜單結構:

{"button":[{"type":"click","name":"點名","key":"count"},{"type":

"view","name":"名單","url":"http://58.30.21.64/sms/detail.jsp"}……}

用JSON格式封裝好菜單結構后,需要發起HTTPS POST請求將菜單結構提交到https://api.weixin.qq.com/cgi-bin/menu/ceate?access_token=TOKEN。菜單創建的主要代碼如下:

//菜單創建接口地址

String menuUrl = https://api.weixin.qq.com/cgi-bin/menu/ceate?access_token=TOKEN

URL url = new URL(menuUrl)

HttpsURLConnection httpUrl = (HttpsURLConnection)url.openConnection

();

//省略信息管理操作部分

……

httpUrl.setRequestMethod("POST"); //設置請求方式

//向輸出流寫菜單結構

OutputStream out = httpUrl.getOutputStream();

out.write(jsonMenu.getBytes("UTF-8"));

out.close();

自定義菜單創建完成后,由于微信客戶端緩存的原因,需要24小時后才會在公眾賬號上展現出來。

4 結束語

微信公眾平臺開發本質上是按照微信服務器規定的流程和格式,調用微信服務器的各個高級接口,從而實現不同的平臺功能。隨著微信版本的不斷提升,微信服務器的高級接口也在不斷地擴展和更新。要開發公眾平臺系統,首先,要完成本文中所列的開發準備工作;其次,掌握XML文檔與JSON文檔的解析方法;最后,通過微信公眾號后臺深入研究每一個接口的使用方法。按照這3個步驟,開發基于微信公共平臺的應用系統不是難事。

【參考文獻】

[1]柳峰.微信公眾平臺應用開發方法、技巧與案例[M].機械工業出版社,2015: 52-126.

[2]微信公眾平臺開發者文檔,http://mp.weixin.qq.com/wiki/home/index.html[OL].

猜你喜歡
應用系統公眾平臺微信
微信
高職院校思政課微信公眾平臺建設與健康運營
微信公眾平臺在醫院圖書館的應用現狀調查
企業云平臺建設研究
提升高校官方微信公眾平臺傳播效果的幾點思考
微信
微信
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合