目錄
前 言
第1章 微信公眾平台介紹 1
1.1 微信及其兩大平台 1
1.2 微信公眾平台 2
1.2.1 功能 2
1.2.2 管理 5
1.2.3 服務 6
1.2.4 統計 7
1.2.5 設定 9
第2章 獲取伺服器資源 11
2.1 新浪SAE 11
2.1.1 申請賬號 11
2.1.2 創建套用 13
2.1.3 創建版本 14
2.1.4 上傳代碼 15
2.2 虛擬主機 18
第3章 開發模式 21
3.1 啟用開發模式 21
3.1.1 關閉編輯模式 21
3.1.2 啟用開發模式 22
3.1.3 常見問題與解決方案 23
3.2 實現自動回復 24
3.3 訊息互動原理分析 24
第4章 基礎接口 28
4.1 接收用戶訊息 28
4.1.1 接收文本訊息 28
4.1.2 接收圖片訊息 28
4.1.3 接收語音訊息 29
4.1.4 接收視頻訊息 30
4.1.5 接收地理位置訊息 30
4.1.6 接收連結訊息 31
4.1.7 代碼實現 32
4.2 向用戶回復訊息 35
4.2.1 文本訊息 35
4.2.2 圖片訊息 36
4.2.3 語音訊息 37
4.2.4 視頻訊息 37
4.2.5 音樂訊息 38
4.2.6 圖文訊息 39
4.2.7 代碼實現 42
4.3 接收事件推送訊息 48
4.3.1 關注/取消關注 48
4.3.2 代碼實現 49
第5章 自定義選單和高級接口 52
5.1 Access Token 52
5.1.1 Access Token 52
5.1.2 接口調用請求說明 52
5.1.3 實現代碼 53
5.2 自定義選單 53
5.2.1 自定義選單介紹 54
5.2.2 按鈕類型 54
5.2.3 創建選單 54
5.2.4 查詢選單 57
5.2.5 刪除選單 58
5.2.6 選單事件推送 58
5.3 語音識別 60
5.3.1 接收識別結果 60
5.3.2 處理識別訊息 61
5.4 客服接口 61
5.4.1 客服接口實現 62
5.4.2 訊息接口與客服接口相結合 70
5.4.3 客服接口的意義 71
5.5 OAuth2.0網頁授權 72
5.5.1 OAuth2.0 72
5.5.2 授權過程 72
5.5.3 詳細步驟 73
5.5.4 效果展示 79
5.6 生成帶參數二維碼 81
5.6.1 場景二維碼 81
5.6.2 創建二維碼ticket 81
5.6.3 通過ticket換取二維碼 83
5.6.4 下載二維碼 84
5.6.5 掃描帶參數二維碼事件 85
5.7 獲取用戶地理位置 87
5.7.1 獲取用戶地理位置 87
5.7.2 轉換坐標到地址 88
5.7.3 用戶地理位置的意義 90
5.8 獲取用戶基本信息 90
5.8.1 獲取用戶基本信息 91
5.8.2 製作個性歡迎語 92
5.9 獲取關注者列表 93
5.9.1 獲取關注者列表 93
5.9.2 分批獲取 94
5.10 用戶分組管理 96
5.10.1 創建分組 96
5.10.2 查詢所有分組 97
5.10.3 查詢用戶所在分組 98
5.10.4 修改分組名 99
5.10.5 移動用戶分組 100
5.11 上傳下載多媒體檔案 101
5.11.1 上傳多媒體檔案 101
5.11.2 下載多媒體檔案 104
第6章 微信支付 109
6.1 申請微信支付 109
6.1.1 申請流程圖 109
6.1.2 開放經營類目 112
6.1.3 資費標準 113
6.1.4 常見問題 114
6.2 微信支付功能介紹 114
6.2.1 方案簡介 114
6.2.2 套用場景舉例 115
6.2.3 商戶模組 119
6.2.4 功能接口 120
6.2.5 賬號體系 121
6.2.6 商戶系統對接 122
6.2.7 行業案例 122
6.2.8 支付功能常見問題 124
6.3 微信支付接口 125
6.3.1 支付基礎 125
6.3.2 JS API支付接口 132
6.3.3 Native(原生)支付接口 137
6.3.4 通知接口 140
6.3.5 收貨地址共享接口 147
6.3.6 用戶維權系統接口 149
第7章 生活類套用開發 151
7.1 天氣預報 151
7.1.1 SmartWeatherAPI 151
7.1.2 區域編碼表 156
7.1.3 開發實現 158
7.1.4 其他接口 162
7.2 快遞查詢 162
7.2.1 快遞接口 163
7.2.2 開發實現 165
7.2.3 智慧型查詢 169
7.3 中英翻譯 171
7.3.1 有道翻譯 171
7.3.2 開發實現 172
7.4 空氣品質 173
7.4.1 PM25.in 173
7.4.2 開發實現 175
7.5 股票行情及分析 176
7.5.1 行情數據 176
7.5.2 個股分析 178
7.5.3 開發實現 178
7.6 蘋果產品信息查詢 184
7.6.1 過程分析 184
7.6.2 開發實現 188
7.7 歷史上的今天 191
7.7.1 數據來源 191
7.7.2 開發實現 191
7.8 附近搜尋 193
7.8.1 百度地圖 193
7.8.2 開發實現 197
7.9 英語四六級查詢 202
7.9.1 過程分析 202
7.9.2 開發實現 203
7.10 交通信息 205
7.10.1 第三方網站 205
7.10.2 開發實現 205
第8章 娛樂類套用開發 208
8.1 笑話 208
8.1.1 數據獲取 208
8.1.2 開發實現 208
8.2 星座運勢 210
8.2.1 新浪星座 210
8.2.2 開發實現 210
8.3 周公解夢 211
8.3.1 數據獲取 212
8.3.2 開發實現 212
8.4 姓名測試 214
8.4.1 數據獲取 214
8.4.2 代碼實現 216
8.5 夫妻相 217
8.5.1 人臉識別 217
8.5.2 實現方案 219
8.5.3 代碼實現 224
8.6 線上點歌 227
8.6.1 音樂掌門人 227
8.6.2 代碼實現 229
8.7 一站到底 231
8.7.1 實現方案 231
8.7.2 代碼實現 233
8.8 智慧型聊天機器人 238
8.8.1 iBotCloud 238
8.8.2 開發實現 240
第9章 企業類套用開發 242
9.1 會員卡 242
9.1.1 頁面布局 242
9.1.2 後台實現 244
9.2 預約訂單 247
9.2.1 頁面布局 247
9.2.2 後台實現 250
9.3 產品相冊 254
9.3.1 相冊 254
9.3.2 畫廊 259
9.4 大轉盤 260
9.4.1 頁面布局 261
9.4.2 後台實現 262
9.5 刮刮卡 266
9.5.1 頁面布局 266
9.5.2 後台實現 268
9.6 地圖導航 270
9.6.1 高德地圖 270
9.6.2 開發實現 272
9.7 智慧型問答 273
9.7.1 關鍵字回復 273
9.7.2 中文分詞 274
9.8 線上客服 277
9.8.1 流程狀態 277
9.8.2 開發實現 278
9.9 廣告效果統計 282
9.9.1 場景二維碼 282
9.9.2 數據統計 284
第10章 微信開發實用技巧 289
10.1 表情飄落效果 289
10.2 QQ表情和Emoji表情 290
10.3 微信版本及手機系統 293
10.4 Weixin JS接口 295
10.5 傳送給朋友與分享到朋友圈 297
10.6 Discuz微社區 299
附錄A 關鍵字自動回復的規則 300
附錄B 微信公眾平台全局返回碼說明 301
附錄C SAE分詞詞性說明 303
附錄D 微信公眾平台基礎接口PHP SDK 305
附錄E 微信公眾平台自定義選單及高級接口PHP SDK 312
出版說明
方倍工作室自從在部落格園推出微信公眾平台開發系列教程後,受到廣大微信開發人員及愛好者的熱情關注,相關文章的日訪問量高達上萬人次,而“微信公眾平台開發入門教程”的閱讀量早已超出10萬,很多博文被多家有影響力的網站轉載,並被各大搜尋引擎收錄且排名靠前,這些是我們始料未及的。
然而更讓我們感到高興的是,很多開發者通過學習我們的教程學會了微信公眾平台開發,並且通過微信開發獲得收益。2013年10月17日,我們在QQ空間發布了新版的《微信公眾平台開發入門教程》連結後,網友“我叫不熬夜?”在空間中回復,他之前通過學習我們的微信開發教程賺到了2000元錢,而他還只是一名學生。這條回復記錄至今還保存在方倍工作室的QQ空間中,這給了我們不斷向前的動力。
為了推出更好、更有價值的作品,在機械工業出版社王彬編輯的支持下,我們整合已有的教程資源並從2013年的100多個開發案例中挑選出最受歡迎的套用功能,形成了本書。本書全面介紹微信公眾平台(包括微信支付在內)的所有接口及使用方法,並輔以30多個功能套用案例及技巧,同時在分析過程中融合相關知識與技術,力求使讀者不但“知其然”,而且“知其所以然”,希期為讀者奉獻一本含金量高的書籍。
讀者對象
本書適合以下人群閱讀:
想了解移動網際網路及微信公眾平台發展的行業從業人員。
想了解微信公眾平台產品使用方法、技巧及效果評估的微信行銷人員。
想提高會員活躍度、提高指標轉化率、推進品牌推廣的公眾平台運營人員。
想學習微信公眾平台開發的入門、初級、中級、高級開發人員。
想使用微信公眾平台兼職開發、創業等渴望更成功的人員。
想搭建企業內部強大及實用的微信公眾平台的開發團隊。
閱讀指南
本書分為10章。
第1章簡要介紹了微信及其兩大平台:微信公眾平台與微信開放平台,重點介紹了微信公眾平台後台的各項功能。
第2章介紹了申請伺服器資源的方法,包括申請新浪雲及購買虛擬空間兩種方式。擁有伺服器資源是進行微信公眾平台開發的前提。
第3章介紹了如何啟用微信公眾平台的開發模式,以及啟用過程中常見問題的解決方式,最後分析了微信公眾平台自動回復的原理。讀者需要理解開發模式的原理,這是進行後續開發的基礎。
第4章介紹了微信公眾平台基礎接口的3個部分,包括接收用戶傳送的6種訊息、以6種方式向用戶回復訊息、接收關注及取消關注的事件推送訊息,所有訊息類型都給出了實現方法。這些訊息類型是微信公眾平台與用戶互動的基礎
功能。
第5章介紹了自定義選單與高級接口的9大功能。這些功能都需要向微信公眾平台額外申請許可權,它們使得微信互動不再限於訊息互動,而是能達到更廣、更深的層次。基於這些接口的功能將是今後微信開發的趨勢,本書對這些功能做了詳細介紹並列出了實現代碼。
第6章詳細介紹了微信支付的申請流程及功能介紹,並且對微信支付中的兩種主要支付方式的實現原理進行了深入剖析,另外還講解了商戶功能的其他相關接口的內容。
第7章介紹了10個生活類套用的開發。本書對這些套用從接口申請、數據獲取直到開發實現、案例截圖都做了詳細描述,讀者掌握這些套用的開發後可以豐富自己公眾賬號的功能。
第8章介紹了8個娛樂類套用的開發。這些套用都是非常受用戶歡迎的,讀者學完後可以快速移植到自己的微信公眾平台,提高冬粉互動的價值。
第9章介紹了企業最常用功能的開發實現,其中還包括部分高級接口在企業套用的實現,這些功能為企業開發提供了方向及技術指導。
第10章介紹了微信開發的其他相關實用技巧,這些小技巧能為公眾賬號帶來更加有趣的體驗。
本書程式案例採用廣泛流行的PHP、MySQL、XML、CSS、JavaScript、HTML5等程式語言及資料庫實現,所有案例均在書中給出了核心實現代碼。初學者可以在了解PHP和MySQL語法之後,從頭至尾學習,對於其中難以理解的部分可以查閱相關資料,針對企業功能類的開發還需要具有一定的JavaScript、CSS等基礎。有經驗的微信公眾平台開發人員可以根據自己需要,直接切入相應章節。其他從業人員則可以選擇自己感興趣的內容閱讀。
由於作者水平及能力有限,加之時間倉促,書中難免出現錯誤和不妥之處,對於一些依賴第三方功能的實現也可能由於外部原因難以保證可以永久使用,懇請讀者批評指正!
致謝
首先感謝“微信之父”張小龍先生及微信團隊,是他們創造了微信這一經典傳世之作。
感謝易偉律師的推薦及機械工作出版社王彬編輯的支持,是他們促成了這本書的出版。
感謝我最親愛的家人在背後的默默支持與付出。
本書成書過程中也得到了諸多同行的支持與鼓勵,在此一併致謝。
謹以此書獻給所有熱愛移動網際網路和微信及微信公眾平台的人們。
方倍
2014年3月於深圳
專家推薦
網際網路給人類社會帶來了翻天覆地的變化,也許不是所有的變化我們都喜歡,但不管高興還是不高興,我們能做的是擁抱變化。從網際網路到移動網際網路的變革中,毫無疑問,微信是這兩年最具革命性的一個產品,它的出現改變了很多人的溝通方式,甚至生活方式。
微信團隊也致力於把它打造為一個強大的全方位服務工具,並開發了九大接口。然而,從品途網過去兩年接觸到的各種企業可以發現,這些接口對很多企業來說是一個技術門檻,如何能邁過去並充分體現微信的作用是企業的強需求。很感謝方倍深入淺出地給大家詳細介紹微信的技術開發細節,他把自己的研究和實踐心得貢獻出來,為每個企業的技術人員節省了大量時間、精力和成本。 從微信,我們感受到網際網路的創新精神;從方倍工作室的部落格和本書,我們體會到網際網路的開放與共享。期待看到各行各業踏踏實實地通過微信提供更好的服務,實現微信所推崇的服務即行銷理念,而不是停留在過去那種空洞的行銷推廣上。品途網也會在這個過程中關注各種微信開發案例,及時地與大家分享,讓每個企業在提供更好服務的路上獲取更多的借鑑。
——中國O2O第一媒體品途網創始人兼CEO 劉宛嵐
微信運營的前提是必須清楚微信都有哪些接口及技術,這樣才能在此基礎上研發符合企業實際運營需求的各項功能。方倍是我們的微信研發技術的啟蒙者,也是國內早期微信開發模式的先驅,他讓我們領略微信的真正魅力,清晰微信運營的方向,堅定微信研發的信心。
本書的出版為大家清晰認識微信公眾平台打開了一扇窗,指明了一條路。
——上海賽敦企業管理諮詢公司CEO 陳繼浩