梁廣浩
(廣西南寧一伙人網絡科技有限公司,廣西 南寧 530022)
搭建框架快速開發微信公眾平臺功能
梁廣浩
(廣西南寧一伙人網絡科技有限公司,廣西 南寧 530022)
伴隨微信的普及,微信公眾平臺走入市場,越來越多企業、商戶需要制作自己專屬的微信公眾平臺,微信公眾平臺的第三方接入開發必不可少。如何高效開發、節省人力成本開發出自己需要的專屬功能,是目前中小企業主最關心的問題。PHP是目前最流行的微信公眾平臺第三方接入程序開發語言之一。文章介紹了如何快速的實用PHP搭建框架開發部署接入微信公眾賬號,開發者只需要關注后續的特殊功能,可以為開發者省去很多重復研究、編寫信息交互的時間。
微信公眾平臺;微信二次開發;微信快速開發
目前,智能手機已經廣泛的普及到了人們的生活當中。在國人智能手機中幾乎屬于必不可少的APP非微信莫屬,據2015年騰訊統計的微信數據顯示:百分之90以上的智能手機安裝了微信,微信每月活躍用戶高達5.49億,遍及全世界200多個國家,使用語言超過20種,微信支付用戶達到了4億人。特別需要關注的是:各類品牌、企業、個體開通的微信公眾賬號總數已超過850萬個,而對接公眾賬號的移動應用僅有8萬5千個。由此可見:市場對微信公眾品臺功能的對接與開發存在了巨大的需求,微信平臺應用會逐漸增加。
隨著PHP語言的發展,越來越多的企業選擇使用PHP來作為WEB項目開發語言,替換原有的ASP、JSP語言。當然并不是說另外兩種WEB開發語言不好,選擇PHP的主要原因有3點:①開發效率高,面向對象與面向過程的結合更適開發者們發揮;②網站成本低廉,不論哪種操作系統都能夠搭建PHP的WEB服務器;③由C語言底層開發,開源迭代升級,拓展性好,更安全。同理,一般企業也更傾向于使用PHP開發微信公眾平臺的移動應用。
2.1微信公眾平臺概述
微信公眾平臺是騰訊在微信大量用戶的基礎上為開發自身價值,添加更多優質內容,提升用戶粘度而衍生成的平臺媒介。用戶通過微信公眾平臺,可自發地進行自媒體即一對多的媒體性行為活動。商家通過二次開發,接入公眾平臺,可自行設計研發自己需要的功能,由此發展自己的線上對線下的營銷服務活動。
2013年8月5日,微信對公眾平臺進行了升級,把微信公眾平臺分成了服務號和訂閱號兩種類型:
服務號用于為用戶提供服務,一個月內可以群發 4條信息給關注的用戶;服務號發送的信息會直接出現在粉絲的聊天記錄里,并且粉絲會收到信息提醒。
訂閱號用于給用戶提供資訊,訂閱號每天可以群發 1條信息給關注的用戶;訂閱號發送的信息顯示在粉絲訂閱號文件夾中,發送信息時粉絲不會收到信息提醒。
不論是服務號還是訂閱號,都可以進行開發接入。訂閱號需要申請認證之后才能使用自定義菜單功能。
2.2微信公眾平臺對話數據的交互模式
微信公眾平臺與粉絲用戶交互信息的數據格式目前共有7種:
①文本消息,消息類型text,用于包含傳送文本消息內容;
②圖片消息,消息類型image,傳遞圖片鏈接及圖片消息媒體ID,用于調用多媒體文件下載接口拉取數據;
③語音消息,消息類型voice,傳遞語音媒體ID,并傳遞語音媒體類型格式,如amr,speex等。
④視頻消息,消息類型video,傳遞視頻媒體ID,用于多媒體接口拉取數據,并傳遞縮略圖ID用于多媒體文件下載接口拉取數據。
⑤小視頻消息,消息類型shortvideo,傳遞視頻消息媒體ID以及縮略圖ID,用處與視頻信息ID一致。
⑥地理位置消息,消息類型location,傳遞地圖信息的經度、緯度、地圖縮放大小以及地理位置信息
⑦鏈接消息,消息類型link,傳遞鏈接消息的標題、描述、鏈接地址用于描述鏈接具體內容。
在與微信服務器傳遞消息時需要重試的消息排重,推薦使用 msgid排重。微信服務器在五秒內收不到響應會斷掉連接,并且重新發起請求,總共重試三次。假如服務器無法保證在五秒內處理并回復,可以直接回復空串,微信服務器不會對此作任何處理,并且不會發起重試。為了保證更高的安全保障,開發者可以在公眾平臺官網的開發者中心處設置消息加密。開啟加密后,用戶發來的消息會被加密,公眾號被動回復用戶的消息也需要加密。
2.3微信公眾平臺數據調用功能分類研究
微信公眾平臺可以實現通過遠程API調用微信公眾號內記錄的信息;對接微信公眾平臺官方開發的實用功能;以及與許多終端設備數據調用以及交互。
通過開發接口可調用的公眾號數據記錄主要有粉絲用戶數據統計和消息互動數據統計兩種。其中,可調用接收的粉絲用戶數據統計包括:粉絲用戶分組數據、設置粉絲用戶備注名、獲取粉絲用戶基本信息、獲取所有粉絲用戶列表、獲取粉絲用戶地理位置、網頁授權獲取粉絲用戶基本信息;可獲取的消息互動數據統計信息包括:粉絲用戶分析數據、圖文分析數據、消息分析數據、接口分析數據。
對接微信公眾平臺官方已開發的實用功能目前主要有 6種:
①自定義菜單管理:管理聊天界面快捷菜單,可執行菜單創建、菜單查詢、菜單刪除、菜單事件推送以及獲取自定義菜單配置的功能。
②生成場景事件二維碼:用戶掃描二維碼后如果沒有關注該公眾號的會提示關注公眾號,關注公眾號后會自動將場景事件推送給客戶,如果已關注公眾號的,微信會直接推送場景事件。
③微信小店:微信公眾平臺官方自行開發實現了微信開店網上銷售的功能,開發者可以通過小店接口快速實現:開店及商品管理、庫存管理、郵費運費自定義、分組管理、貨架管理、訂單管理以及圖片上傳下載功能管理。
④微信卡券:用于實現商家發放優惠卡券、驗證卡券信息,提升用戶黏著度,創建的卡券會出現在粉絲的用戶菜單卡券一欄里。卡券主要可調用功能有:創建卡券、投放卡券、核銷卡券、管理卡券、統計卡券、卡券事件推送、會員卡、特殊票券等。
⑤微信門店:門店管理接口為商戶提供門店批量導入、查詢、修改、刪除等主要功能,方便商戶快速、高效進行門店管理和操作。
⑥多客服功能:官方提供的多客服功能,可接入微信公眾賬號,實現在手機端、PC端都可查看公眾號消息,對客戶消息做出互動。同時還提供接口,用于客服管理、會話控制、聊天記錄管理。
微信公眾賬號還提供了與其他終端設備交互的功能,目前開發的功能有:與計步器手環數據對接、電視彈幕數據對接等,往后官方還會陸續推出與其他設備對接的功能。
3.1PHP簡要分析
PHP目前版本使用的是 C語言作為底層開發的 zend Engine作為解析驅動,屬于弱數據類型腳本語言。可用于連接數據庫,生成動態網頁程序。
PHP作為專門的網頁開發語言,有著幾個十分重要的優勢特性:
①開發效率高:語法獨特,混合了C,JAVA等主流編程語言的語法規則,并加入了面向對象的語法支持,同時吸收了ASP編程語言的可嵌入HTML里輸出標簽的特性,使得使用PHP語言編寫網頁程序時十分靈活,程序員可以十分迅速地獨立完成某個功能的開發。
②免費開源:源碼全開源,無論哪個版本的PHP都可以在官網下載到源碼,開發者可以在任何平臺免費搭建PHP環境,對于企業來說能夠節省一大筆開支。
③專業專注:PHP可以用C和C++語言開發插件,有十分高效的運行效率,有強大的圖形處理 GD庫,執行效率很高同時在更新版本時PHP仍不斷地對執行效率進行優化,新版本的PHP5.7效率更是比PHP5.5高出一倍,完全能夠支撐處理大型網站。
3.2PHP快速開發介紹
PHP能夠實現高效率地開發得益于其易入門、免費開源,從而積攢下了大量的程序員基數,各種成熟的社區及開源項目組。高效的開發PHP的WEB項目,縮短項目耗時主要有三個途徑:
使用PHP開發框架進行項目開發。對于PHP編寫,難免會要關注很多細節問題,如程序路由問題、前端輸出與功能處理的分塊、數據庫讀取抽象類編寫、程序安全問題等,這些問題十分繁瑣而且又不得不考慮及注意。快速解決這些問題的方法就是使用成熟的PHP開發框架:這樣不但可以不用考慮底層數據交互安全問題、路由尋址合理性問題;還可以省去前后端開發結合,功能分離MVC的部署。開發者可以只專注某特殊功能的開發即可。
特殊復雜的功能用現有的功能插件集成組合來實現。例如某微信功能可能需要生成特定的二維碼來與系統進行交互,如果開發者沒學過二維碼的生成原理,只用系統自帶的GD庫根本完成不了。這時候就需要用到二維碼生成插件,開發者可以不用考慮二維碼是如何生成的,只需要調用現成的插件輸入需要解析的字符串,生成二維碼圖片即可。
使用成熟的CMS管理系統,以插件形式開發特殊功能,省去項目開發時的后臺開發時間。大多數的WEB應用都有一個既定的流程:發布、審核、展現。一般用戶看到的只是前端的展現,后端的發布審核其實根本不需要多樣化,如果每一個項目都重復的去開發后臺的發布、審核流程,需要耗費太大的人力成本,因此選擇成熟的CMS系統去完成后臺的功能操作,只專注于開發前端展示功能,是一般中小企業節省人力開支、加快項目進度必不可少的一個環節。
3.3PHP框架介紹及選擇
PHP的框架有很多,選擇框架進行開發時應結合自己項目的實際問題來考慮,每個框架的優勢都不一樣,單基本功能都是齊全的,下面簡單介紹兩個PHP框架,說明一下如何根據企業實際項目情況來選擇PHP開發框架。
ThinkPHP,國內最流行的PHP框架,一般小型公司建站首選,許多在職PHP程序員都使用這套框架,培訓成本低,團隊組建快,國內編寫的功能插件多,適合絕大多數中小企業項目組使用。
Laravel,目前國際上使用者最多的PHP框架,底層差價多,更新迭代快,基于PHP5.6以上版本使用,運行效率高,大型網站項目建設選擇之一,但是學習成本略微高出一般框架,服務器環境配置要求也高,如果一般的中小企業建站,沒有自己獨立的主機或者虛擬主機,很難在網絡上配置運行該框架。
4.1數據源分析
與微信公眾平臺服務器交互需要用 XML格式信息傳遞與接收,不同形式的信息有不同的傳遞字段,交互信息格式如下:

XML信息中的字段在 PHP中需要做解析才能夠獲取其中的數據進行分析及交互,同時處理完成的數據,我們也需要轉換回XML格式信息回傳給服務器。這時我們就需要用到PHP的XML解析函類:XMLReader用來解析信息,處理完成后,需要用XML封裝類:DOMDocument,重新封裝成XML信息傳回微信服務器。
4.2程序流程設計
微信公眾平臺第三方接入程序響應流程為:
①用戶給公眾平臺微信服務器發送信息。
②微信服務器將收到的信息轉化成 XML格式傳遞給第三方接入服務器。
③第三方服務器接收到請求信息后進行分類處理。并把處理結果信息封裝成XML格式返回給微信服務器。
④微信服務器將接收到的信息返回給用戶。
具體情況如圖1所示:

圖1 微信消息處理過程
任何粉絲發送的信息,都會轉換成XML信息傳入到接入服務器,并且回傳信息需要封裝成XML格式。所以解析XML以及封裝XML是接入程序所必須要完成的公共部分程序。也是微信第三方平臺快速開發框架所要實現的最基本的內容。
4.3核心代碼實現
基本核心內容可分為特定XML解析入口及XML封裝出口:
①根據微信公眾平臺官方給出的接口文檔,接收XML入口接收到的XML數據有7種類型,文本消息、圖片信息、語音消息、視頻消息、小視頻消息、地理位置消息、鏈接消息。根據傳來的不同數據類型,做出判斷、解析,實現解析入口函數功能:


②微信公眾平臺回復消息類型有 6種類型,回復文本消息、回復圖片消息、回復語音消息、回復視頻消息、回復音樂消息、回復圖文消息,根據需要回復的消息類型選擇封裝函數封裝后直接回傳微信公眾平臺:


5.1可實現的功能分析
通過用戶發送請求,服務器回復請求處理,可以實現服務器與用戶的信息交互,甚至可以發送圖文鏈接,讓客戶進入某鏈接,進行更進一步的交互;目前已經實現的并且比較成熟實用的功能有:
①微官網
將自己的移動官方網站接入到微信公眾平臺中,通過回復鏈接或者直接在欄目上轉跳的形式讓客戶進入移動官方網站瀏覽自己的官網信息。
②自動回復
自行定義回復信息,并且定義未命中的
回復信息,達到智能查詢、智能聊天的功能。
③請求數據統計
對客戶的請求、操作請求進行統計分析,以便將微信公眾平臺的運營情況進行調整和優化。
5.2微信公眾平臺服務號拓展功能分析
除了基礎的消息的接收與回復,微信公眾平臺還陸續提供了許多其他實用的數據接口,給開發者們調用,來開發更多的實用功能,目前幾個比較常用的數據接口有:
①微信連WIFI接口
客戶到店面連接WIFI時,打開WIFI默認頁面讓客戶授權打開微信,讓客戶自動關注微信平臺然后授權連接上WIFI,以此做WIFI營銷吸粉以及WIFI數據統計。
②搖一搖周邊接口
通過設備綁定,讓在店面設備1KM附近的用戶優先搖出預先制作的自定義頁面,達到關注、送紅包以及其它事件交互的目的。
③微信卡卷接口
微信卡卷用于電商最常見的發放優惠券或者代金券活動,開發者通過調用微信卡券接口發放卡券,用戶通過頁面或者二維碼領取卡券后會出現在自己的卡包里,上門消費時出示卡券并進行核銷。
④微小店、微門店接口
微小店是微信自己開發的微信公眾平臺功能,認證的公眾賬號可以使用微小店功能,實現微信開網店的功能,開發者可以對接微小店的接口,在第三方平臺上對接商品管理、訂單管理。微門店是對自己門店的展示,對接微門店接口可以實現連鎖店的錄入和門店信息的查詢功能。
⑤設備接入功能
一些藍牙設備可以通過微信接口調用,來豐富公眾平臺的可用性,如對接運動手環功能,做一些有互動的運動活動。
對于注重效率的企業微信開發項目,有很多團隊會選擇采用購買已有的系統原型商業授權,然后讓自己的團隊在原型的基礎上二次開發,實現自己的定制功能的方式去縮短開發周期。對于市面上已有的系統原型,實現的功能其實和上面介紹的功能大同小異,開發者只需要了解清楚關鍵流程的調用方式,就可以很快的研究清楚原型,并再原有基礎上進行二次開發。
開發接入微信公眾平臺功能的項目上,本文介紹的模式方法可以把最底層的交互全部封裝起來,開發者不再需要考慮與微信服務器交互的問題,可以專心開發平臺上的功能,大幅度提上開發效率。對于使用第三方平臺二次開發的項目組也可借鑒本文介紹的流程進行學習研究,可以快速的掌握第三方平臺程序的交互過程,并平順的銜接進行二次開發。
[1] 易偉.微信公眾平臺搭建與開發揭秘(第二版)[M].北京:機械工業出版社,2015.
[2] 徐云.php語言介紹[EB/OL].http://abc.wm23.com/xuyun90/ 181283.html,2015-10-05.
[3] 柳峰.微信公眾平臺應用開發:方法、技巧與案例[M].北京:機械工業出版社,2014.
[4] 劉捷.微信公眾平臺企業應用開發實戰[M].北京:電子工業出版社,2015.
[5] 陳偉.微信商城開發實戰[M].北京:電子工業出版社,2015.
Build a framework of the rapid development of WeChat public platform
With the popularity of WeChat , WeChat public platform into the market, more and more enterprises, businesses need to make their own WeChat public platform, WeChat public platform for the third party access development. How to develop and save the manpower cost to develop the special function that they need is the most concern of the small and medium-sized enterprise. PHP is currently one of the most popular WeChat public platform third party access program development language. This paper describes how to build a framework for rapid deployment of PHP framework development and deployment of access to WeChat public accounts, developers only need to focus on the follow-up of special features, you can save a lot of duplication of research, writing information exchange.
WeChat public platform;WeChat two development;WeChat fast development
Q813.11
A
1008-1151(2015)10-0134-04
2015-09-10
梁廣浩(1986-),男,廣西南寧人,廣西南寧一伙人網絡科技有限公司技術部經理,從事網絡建站、APP建設及微信建設工作。