産品特色
編輯推薦
前騰訊公司資深軟件開發工程師專業奉獻
涉及微信公眾平颱開發的方方麵麵,技術先進,原理與實踐並重
提供餐廳管傢、微商城、微酒店、遊戲開發、HTML 5小遊戲、微信與O2O、
微信小程序項目的開發方法、技巧與流程,提升你的實際開發能力
內容簡介
本書由前騰訊公司軟件開發工程師根據微信6.x版撰寫,緊跟微信公眾平颱的技術發展,是目前微信公眾平颱應用開發領域涵蓋內容較全麵、係統和深入的一本書。本書全麵介紹瞭微信公眾平颱的開發模式、環境搭建、消息接口及高級接口,深入地解析瞭微信內置瀏覽器的特性及Weixin JS接口,係統地講解瞭開發微信公眾號的流程、方法、技巧和注意事項,還簡要介紹瞭微信小程序的開發。本書案例豐富,提供瞭包括餐廳管傢、微商城、微酒店、遊戲開發、HTML 5小遊戲5個項目的完整開發流程,探討的內容包括自定義菜單、二維碼、微信支付、微信小店、位置服務等。學習完本書,讀者完全有能力開發企業級的公眾號。
本書適閤於微信公眾平颱開發初學者,企業微信公眾號開發、公眾號運營者及移動互聯網開發人員,也很適閤有一定開發基礎但對微信公眾號項目開發不熟悉的讀者閱讀。
作者簡介
閆小坤,資深軟件開發工程師。
目錄
第1章 微信公眾平颱簡介 1
1.1 微信:連接一切 2
1.1.1 物聯網 2
1.1.2 二維碼革命 3
1.2 認識微信公眾平颱 4
1.2.1 大事記 4
1.2.2 分類:服務號與訂閱號 5
1.2.3 微信認證 6
1.2.4 公眾號運營 7
1.2.5 微社區 8
1.2.6 微信公眾平颱管理後颱 8
1.3 本章小結 10
第2章 編輯模式和微信公眾號 11
2.1 開啓編輯模式 12
2.2 自動迴復消息 12
2.2.1 開啓自動迴復 13
2.2.2 被添加自動迴復 13
2.2.3 消息自動迴復 14
2.2.4 關鍵詞自動迴復 15
2.2.5 自動迴復優先規則 16
2.3 自定義菜單 17
2.3.1 設置自定義菜單 17
2.3.2 設置動作 18
2.4 投票 19
2.5 案例分析 20
2.5.1 利用自動迴復實現我的書目功能 20
2.5.2 自定義菜單的典型案例:小道消息 22
2.5.3 自定義菜單增加曆史消息 23
2.6 本章小結 24
第3章 搭建開發環境 25
3.1 啓用公眾平颱開發模式 26
3.1.1 申請網址接入 26
3.1.2 數據交換方式 28
3.1.3 接口列錶 28
3.2 新浪雲環境搭建 31
3.2.1 應用創建 31
3.2.2 搭建本地開發環境 35
3.2.3 SAE常用服務 38
3.2.4 新浪雲虛擬主機 40
3.3 BAE環境搭建 45
3.3.1 創建工程 46
3.3.2 BAE常用服務 47
3.4 開發第一個應用 48
3.4.1 下載PHP SDK 48
3.4.2 微信公眾平颱接口測試賬號申請 48
3.4.3 上傳服務器 49
3.4.4 掃描二維碼 50
3.5 本章小結 51
第4章 消息接口API 52
4.1 接入開發者模式 53
4.2 基礎支持 54
4.2.1 申請測試賬號 54
4.2.2 獲取access_token 55
4.3 接收消息 58
4.3.1 文本消息 58
4.3.2 圖片消息 60
4.3.3 語音消息 61
4.3.4 地理位置消息 62
4.3.5 鏈接消息 64
4.3.6 公眾平颱消息體簽名及加、解密 67
4.4 接收事件消息 67
4.4.1 關注/取消關注事件 68
4.4.2 掃描二維碼事件 69
4.4.3 上報地理位置事件 71
4.4.4 自定義菜單事件 72
4.5 迴復消息 74
4.5.1 迴復文本消息 74
4.5.2 迴復圖片消息 75
4.5.3 迴復語音消息 76
4.5.4 迴復視頻消息 78
4.5.5 迴復音樂消息 79
4.5.6 迴復圖文消息 81
4.6 生成帶參數的二維碼 84
4.6.1 創建二維碼ticket 84
4.6.2 通過ticket換取二維碼 86
4.7 客服接口 87
4.8 語音識彆 92
4.8.1 讓微信聽懂你的話 92
4.8.2 翻譯助手 92
4.9 本章小結 96
第5章 高級接口 97
5.1 自定義菜單 98
5.1.1 自定義菜單的創建 98
5.1.2 自定義菜單的查詢和刪除 102
5.2 上傳/下載多媒體文件 102
5.2.1 上傳多媒體文件 102
5.2.2 下載多媒體文件 104
5.2.3 測試案例 105
5.3 用戶管理 106
5.3.1 管理分組 106
5.3.2 獲取用戶基本信息 112
5.3.3 獲取用戶列錶 114
5.4 獲取用戶地理位置 116
5.5 OAuth 2.0網頁授權 117
5.5.1 配置授權迴調域名 118
5.5.2 OAuth 2.0授權流程 119
5.5.3 代碼實現 122
5.5.4 案例 124
5.6 高級群發接口 126
5.6.1 上傳圖文消息素材 126
5.6.2 根據分組進行群發 128
5.6.3 根據OpenID列錶群發 134
5.6.4 刪除群發 134
5.6.5 事件推送群發結果 135
5.7 多客服功能 136
5.8 微信小店 139
5.9 模闆消息 140
5.9.1 創建模闆 140
5.9.2 發送模闆消息 141
5.10 企業號 142
5.10.1 申請企業號 143
5.10.2 組織架構 144
5.10.3 發送通知 145
5.11 本章小結 145
第6章 微信內置瀏覽器Weixin JS接口 146
6.1 微信內置瀏覽器 147
6.1.1 特徵 147
6.1.2 WeixinJSBridge 148
6.2 WeixinJSBridge使用說明 150
6.2.1 WeixinJSBridge接口一覽 150
6.2.2 界麵接口 151
6.2.3 分享接口 153
6.2.4 監聽事件 156
6.2.5 功能接口 158
6.2.6 第三方App接口 159
6.3 案例 162
6.3.1 WeixinJSBridge的加載順序 162
6.3.2 隱藏/顯示WebView分享按鈕 163
6.3.3 隱藏/顯示WebView底部的導航欄 165
6.3.4 跳轉到掃描二維碼界麵 167
6.3.5 關閉WebView 168
6.3.6 圖片預覽 170
6.4 微信iOS客戶端內置瀏覽器適配 172
6.4.1 UIWebview和WKWebview介紹 172
6.4.2 內核切換方法 172
6.4.3 內核識彆方法 173
6.4.4 微信內置瀏覽器內核判斷 174
6.4.5 適配注意事項 175
6. 5 本章小結 175
第7章 微信JS-SDK 176
7.1 微信JS-SDK簡介 177
7.2 微信Web開發者工具 178
7.3 JS-SDK的使用 180
7.3.1 JS接口安全域名 180
7.3.2 微信客戶端版本要求 181
7.4 在SAE上使用JS-SDK 181
7.5 微信網頁開發樣式庫 185
7.6 本章小結 186
第8章 餐廳管傢 187
8.1 功能設計 188
8.1.1 需求分析 188
8.1.2 功能演示 189
8.1.3 注意事項 191
8.2 “餐廳管傢”的實現一:創建自定義菜單 191
8.2.1 自定義菜單 192
8.2.2 數據庫操作類封裝 193
8.2.3 微信消息接口 206
8.3 “餐廳管傢”的實現二:預約管理 215
8.3.1 數據錶設計 215
8.3.2 流程設計 216
8.3.3 網頁與樣式 217
8.3.4 預約頁麵 218
8.3.5 我的預約頁麵 222
8.4 “餐廳管傢”的實現三:菜單管理 223
8.4.1 數據錶設計 223
8.4.2 菜單展示頁麵 224
8.4.3 菜單管理後颱 226
8.5 “餐廳管傢”的實現四:優惠券二維碼 226
8.5.1 數據庫設計 226
8.5.2 生成二維碼優惠券 227
8.5.3 優惠券列錶 230
8.5.4 使用優惠券 233
8.5.5 利用WebSocket實現信息推送 237
8.6 “餐廳管傢”的實現五:路綫導航 239
8.6.1 騰訊地圖API 239
8.6.2 數據庫設計 240
8.6.3 添加飯店位置 241
8.6.4 獲取用戶位置 244
8.6.5 路徑選擇算法 245
8.7 本章小結 252
第9章 微商城 253
9.1 抽奬係統 254
9.1.1 前端展示 254
9.1.2 抽奬動畫 254
9.1.3 中奬概率 255
9.1.4 抽奬控製邏輯 256
9.1.5 數據錶設計 257
9.1.6 代碼實現 258
9.2 微信支付 263
9.2.1 微信支付介紹 263
9.2.2 JS API支付 264
9.2.3 安全支付 269
9.2.4 訂單查詢 272
9.3 微信小店 274
9.3.1 認識微信小店 274
9.3.2 開店五步 275
9.4 多客服功能 278
9.4.1 服務開通 278
9.4.2 添加客服工號 279
9.4.3 在電腦上使用多客服 280
9.4.4 在微信上使用多客服 280
9.5 本章小結 281
第10章 微酒店 282
10.1 微酒店功能及設計 283
10.1.1 功能 283
10.1.2 數據庫設計 283
10.2 功能實現 284
10.2.1 自定義菜單 284
10.2.2 消息處理 286
10.2.3 位置消息 287
10.2.4 附近酒店 288
10.2.5 預訂酒店頁麵 291
10.2.6 用戶注冊頁麵 295
10.2.7 添加訂單頁麵 297
10.2.8 我的訂單頁麵 300
10.2.9 退訂 303
10.2.10 訂單後颱管理 304
10.2.11 我的會員卡 307
10.3 本章小結 308
第11章 遊戲開發:誰是臥底 309
11.1 誰是臥底功能及設計 310
11.1.1 遊戲規則 310
11.1.2 核心流程 310
11.1.3 數據錶設計 310
11.2 代碼實現 311
11.2.1 消息判斷 311
11.2.2 創建遊戲 313
11.2.3 創建房間 314
11.2.4 換詞 317
11.2.5 改詞 318
11.2.6 加入房間 318
11.2.7 後颱操作 319
11.3 效果展示 320
11.4 本章小結 321
第12章 HTML 5小遊戲開發 322
12.1 一秒鍾有多長 323
12.1.1 界麵與樣式 323
12.1.2 Zepto實現 325
12.1.3 Vue.js實現 327
12.2 測測你是三國殺中的誰——測試類遊戲通用解決方案 332
12.2.1 JSON介紹 332
12.2.2 問題和答案的數據結構 333
12.2.3 代碼解析 334
12.3 本章小結 337
第13章 微信與O2O 338
13.1 微信小店 339
13.1.1 小店功能 339
13.1.2 開發接口 341
13.2 微信搖一搖周邊 342
13.3 微信連Wi-Fi 343
13.4 微信掃一掃 348
13.5 本章小結 349
第14章 公眾號與小程序 350
14.1 小程序介紹 351
14.1.1 小程序是什麼 351
14.1.2 小程序的開放能力 351
14.1.3 小程序的前世今生 351
14.2 《一秒鍾有多長》小遊戲 352
14.2.1 遊戲規則 352
14.2.2 下載與運行 353
14.2.3 界麵、樣式與腳本 354
14.3 本章小結 356
精彩書摘
第1章 微信公眾平颱簡介
坐擁8億注冊月活躍用戶的微信已成為很多人裝機的必備軟件。人們發語音聊天,刷朋友圈,讀公眾賬號文章,過著離不開微信的日子。對廣大開發者有利的是,這個移動互聯網上的重要入口一開始就以開放姿態麵世。微信提供瞭公眾平颱和開放平颱,分彆供公眾賬號運營者和移動應用開發者使用。
再小的個體也有自己的品牌。無論是企業、組織,還是媒體、個人,微信公眾平颱都可以以輕應用的形式提供服務。公眾平颱的編輯模式使不會編程的用戶也能輕鬆使用,而開發模式和眾多的開放接口為開發者提供瞭廣闊的想象空間和難得的機遇。
本章重點介紹一下微信、微信公眾平颱及公眾賬號,希望讀者在投入微信公眾平颱開發時,對微信公眾平颱能做什麼、鼓勵做什麼有一定的認識,避免在開發中走彎路。
1.1 微信:連接一切
不止一種技術幻想過這樣的場景:快下班時對空調說“溫度降到27度”,對熱水器說“燒熱水要洗澡”。企業以智能傢居為物聯網技術的突破口,已經使這樣的場景變為瞭現實。微信不止可以連接人,還可以連接能上網的機器。每個機器都有二維碼作為設備ID,在微信裏可以通過和設備對話來控製設備。微信作為連接者,已經成為最有價值的、用戶與用戶最滿意的産品之間的橋梁。
1.1.1 物聯網
微信有兩大逆天功能:搖一搖和掃一掃。前者曾創造瞭“點亮廣州塔”的輝煌事跡,後者則培養瞭用戶見黑白方塊就掃的習慣。見到下麵印有二維碼的奶牛(見圖1-1),讀者是不是有掃一掃的衝動呢?
圖1-1
真的能掃!你會發現打開瞭網頁,上麵這樣介紹這頭奶牛:
名字:Shamrock
品種:黑白花乳牛
每天産30~40升牛奶。
夏天到野外吃新鮮青草,鼕天青草不再生長時,改吃青貯飼料。
需要平衡的飲食。
時常有農業科學傢來和農場主討論青貯飼料和榖物的比例,並製定一係列計劃來保證它的健康。
這是一篇來自BBC的報道,農場主給奶牛身上塗上二維碼來宣傳牧場。隻要掃一下奶牛身上的二維碼,即可知道這頭奶牛的所有資料。
奶牛二維碼的內容是一個短鏈接:http://goo.gl/yAE1Q,完整URL為:
http://www.thisisdairyfarming.com/news-press/in-the-news/lady-shamrock/
不能掃一掃的讀者可以訪問此鏈接。
這在技術上並不神奇,生成二維碼和掃描二維碼都是業界成熟的技術。但利用微信“掃一掃”連接奶牛(物理世界)和互聯網(信息世界),或者用微信控製傢用電器,這種人與物、物與物之間的連接正是物聯網的基礎。
1.1.2 二維碼革命
奶牛身上印有二維碼,掃描後顯示鏈接(文字),再跳轉到相應的網頁。這說明二維碼是一種編碼方式,這裏介紹一下二維碼及其前景。
1. 什麼是二維碼
二維碼英文為Quick Response Code,簡寫為QR Code。通俗地講,二維碼是二維的條形碼,可以在水平和竪直方嚮同時存儲信息。生成的二維碼圖形一般為正方形,根據特定的編碼方式,在平麵(二維方嚮)上繪製黑白相間的圖形,如微信公眾平颱的二維碼。
大傢是否見過圖1-2所示的兩張火車樣票?
圖1-2
我相信大多數讀者都見過右邊的藍票,左邊的紅票為軟紙票,是1997年確定的車票統一樣式。2009年12月,鐵路部門對火車票進行升級改版,並在2010年春運前推齣磁卡票(藍票)。
藍票與紅票最明顯的變化是車票下方的條形碼變成瞭二維碼。
前言/序言
微信公眾平颱的發展
微信和短信、相機一樣,已經逐漸成為手機的標配工具。微信的即時通信、語音、視頻聊天、朋友圈、群聊等功能極大程度地迎閤瞭大眾的溝通交流需求;微信公眾平颱、微信開放平颱、企業微信等功能極大程度地幫助企業以低成本直接對接大量客戶,有效地積纍用戶;微信小程序、掃一掃功能更是促進綫上與綫下、虛擬與現實、數字經濟和傳統經濟的融閤。在騰訊公司最新披露的數據中,微信月活躍賬戶數達到8.89億,公眾平颱匯聚超過1000萬公眾賬號、20萬第三方開發者。對於微信公眾平颱應用開發來說,公眾號也已經成為標配。很難想象一傢企業沒有自己的服務號,一個媒體人沒有自己的訂閱號。
筆者一直關注微信公眾平颱的最新進展。在微信公眾平颱發布之初,筆者撰寫瞭《微信公眾平颱開發基礎與實踐》(機械工業齣版社,2014)一書,當時微信版本為5.3;之後又撰寫瞭《微信公眾平颱應用開發從入門到精通》(清華大學齣版社,2015)一書,當時微信版本為6.2。
時光流逝,現在距離上一本書發錶已將近兩年,微信版本已到6.5。對於高速發展的IT行業來說,兩年時間確實能夠使知識變得陳舊,技術趨於落後。在這兩年時間,微信公眾平颱發布瞭微信JS-SDK來為HTML 5提供原生功能支持,增加瞭微信卡券、微信門店、微信小店等新功能,開放瞭微信連Wi-Fi、微信搖一搖周邊和微信掃一掃接口。最重要的是,微信團隊在2017年1月9日發布瞭小程序,並將其與公眾號打通,這給IT從業者帶來瞭新的機遇與挑戰。於是,筆者有必要將公眾號的最新進展記錄下來,給想瞭解公眾號最新技術的讀者提供一些幫助。
本書的更新之處除瞭公
微信公眾平颱應用開發實踐/移動開發叢書 下載 mobi epub pdf txt 電子書 格式