第1章 与微信的第一次亲密接触 1
1.1微信——移动互联网的领导者 2
1.2认识微信公众平台 4
1.3如何注册微信公众号 5
1.4微信公众号的功能 5
1.5微信公众号的管理 9
1.6微信公众号的推广 11
1.7统计 14
1.8设置 16
1.9开发者中心 18
第2章 微信开发准备 20
2.1进入微信开发模式 21
2.2 PHP开发环境的搭建 27
2.3虚拟主机的使用 30
2.3.1主机绑定域名 30
2.3.2 FTP上传代码到虚拟主机 34
2.4配置腾讯云服务器 36
2.4.1 Windows 2008配置IIS+PHP+MySQL 37
2.4.2使用网站管理助手 45
第3章 微信开发基础 49
3.1开发者模式 50
3.1.1开发模式接入 50
3.1.2微信服务器间通信原理 52
3.2微信开发调试软件 53
3.3公众号接收用户消息类型 55
3.3.1接收文本消息 56
3.3.2接收图片消息 57
3.3.3接收语音消息 58
3.3.4接收视频消息 59
3.3.5接收地理位置消息 60
3.3.6接收链接消息 61
3.3.7关注/取消关注事件消息 62
3.3.8接收语音识别结果 64
3.3.9代码实现接收消息示例 65
3.4公众号向用户回复消息类型 67
3.4.1回复文本消息 68
3.4.2回复图片消息 69
3.4.3回复语音消息 70
3.4.4回复视频消息 72
3.4.5回复音乐消息 73
3.4.6回复图文消息 74
3.4.7代码实现回复消息示例 76
3.5使用高级群发接口 85
3.5.1上传图文消息素材 85
3.5.2根据分组群发消息 86
3.5.3根据OpenID列表群发 89
3.5.4删除群发 92
3.5.5预览接口 92
3.5.6查询群发消息发送状态 94
3.5.7事件推送群发结果 94
第4章 开发模式进阶 96
4.1 access token介绍 97
4.1.1接口调用请求说明 97
4.1.2编写代码获得access token 98
4.2自定义菜单 99
4.2.1自定义菜单介绍 99
4.2.2自定义菜单按钮类型 100
4.2.3创建菜单接口说明 101
4.2.4创建菜单 103
4.2.5查询菜单 105
4.2.6删除菜单 107
4.3自定义菜单的事件推送 107
4.3.1单击菜单获取消息时的事件 107
4.3.2单击菜单跳转链接时的事件 108
4.3.3扫码推事件 109
4.3.4扫码推事件且弹出“消息接收中”提示框的事件 109
4.3.5弹出系统拍照发图的事件 110
4.3.6弹出拍照或者相册发图的事件 111
4.3.7弹出微信相册发图器的事件 112
4.3.8弹出地理位置选择器的事件 113
4.3.9代码实现菜单功能 113
4.4客服接口 115
4.4.1添加客服账号 116
4.4.2修改客服账号 116
4.4.3删除客服账号 117
4.4.4设置客服账号的头像 117
4.4.5获取所有客服账号 118
4.4.6发送客服消息 119
4.5微信语义理解接口 122
4.6用户管理 124
4.6.1创建分组 124
4.6.2查询所有分组 126
4.6.3查询用户所在分组 127
4.6.4修改分组名 127
4.6.5移动用户分组 129
4.6.6设置用户备注名 130
4.6.7获取用户基本信息 131
4.6.8获取用户列表 132
4.6.9获取用户地理位置 134
4.6.10网页授权获取用户基本信息 137
4.7上传下载多媒体文件 142
4.7.1上传多媒体文件 142
4.7.2下载多媒体文件 146
第5章 账号管理 149
5.1生成带参数的二维码 150
5.1.1创建二维码ticket 150
5.1.2通过ticket换取二维码 154
5.1.3扫描带参数二维码事件消息 156
5.1.4代码实现 159
5.2缩短URL链接字符串 160
5.2.1接口调用请求说明 161
5.2.2代码实现示例 162
第6章 应用接口调用 164
6.1示例1:天气查询 165
6.1.1接口API 165
6.1.2开发实现 171
6.2示例2: API调用之百度翻译 174
6.2.1申请百度翻译API接口 174
6.2.2百度翻译规则介绍 176
6.2.3代码实现 176
6.3示例3:自动聊天 179
6.3.1接口说明 179
6.3.2代码实现自动聊天 180
6.4示例4:笑话 182
6.4.1笑话接口API 182
6.4.2开发实现 183
6.5示例5:快递查询 184
6.5.1快递接口 184
6.5.2开发实现 188
6.6示例6:火车信息查询 191
6.6.1申请查询接口 191
6.6.2接口说明 192
6.6.3开发实现 199
第7章 应用开发实战 203
7.1开发企业会员卡 204
7.1.1页面设计 204
7.1.2数据库设计 209
7.1.3逻辑处理代码 210
7.2开发微信大屏幕 213
7.2.1原理解析 213
7.2.2开发实现 213
7.3开发语音智能查询 217
7.3.1语音识别和语义理解 217
7.3.2开发实现 218
7.4使用DedeCMS开发微网站 220
7.4.1下载安装DedeCMS 220
7.4.2 DedeCMS标签讲解 225
7.4.3模板页面设计 227
7.4.4将微网站放入微信 230
第8章 微信JS-SDK 232
8.1微信JS-SDK的使用 233
8.1.1使用步骤 233
8.1.2接口调用说明 235
8.1.3接口使用权限签名算法 236
8.2分享接口 239
8.2.1分享到朋友圈接口 240
8.2.2“分享给朋友”接口 242
8.2.3“分享到QQ”接口 242
8.2.4“分享到腾讯微博”接口 243
8.3图像接口 243
8.3.1拍照或从手机相册中选图接口 243
8.3.2预览图片接口 244
8.3.3上传图片接口 245
8.3.4下载图片接口 247
8.4音频接口 248
8.4.1开始录音接口 248
8.4.2停止录音接口 248
8.4.3监听录音自动停止接口 249
8.4.4播放语音接口 249
8.4.5暂停播放接口 250
8.4.6停止播放录音 250
8.4.7监听语音播放完毕接口 251
8.4.8上传语音接口 251
8.4.9下载语音接口 252
8.4.10识别音频并返回识别结果接口 253
8.5界面操作接口 254
8.5.1隐藏右上角菜单接口 255
8.5.2显示右上角菜单按钮接口 255
8.5.3关闭当前网页窗口接口 255
8.5.4批量隐藏功能按钮接口 256
8.5.5批量显示功能按钮接口 257
8.5.6隐藏所有非基础按钮接口 258
8.5.7显示所有功能按钮接口 258
8.6微信卡券接口 258
8.6.1调用卡券列表并获取用户选择列表接口 258
8.6.2批量添加卡券接口 259
8.6.3查看微信卡包中的卡券接口 260
8.7其他接口 261
8.7.1获取网络状态接口 261
8.7.2查看位置接口 261
8.7.3获取地理位置接口 262
8.7.4调用微信扫码接口 264
8.7.5跳转微信商品页接口 265
8.7.6发起微信支付接口 265
8.8调用接口常见错误及解决方法 267
第9章 微信企业号 269
9.1微信企业号介绍 270
9.2操作界面 270
9.3建立连接 274
9.3.1主动调用 275
9.3.2回调模式 277
9.4管理通讯录 280
9.4.1管理部门 280
9.4.2管理成员 283
9.4.3管理标签 290
9.5管理多媒体文件 296
9.5.1上传多媒体 296
9.5.2获取多媒体文件 297
9.6接收消息与事件 298
9.6.1关注与取消 298
9.6.2接收普通消息 300
9.6.3接收事件 303
9.6.4被动响应消息 310
9.7发送消息 313
9.8自定义菜单 319
9.8.1创建应用菜单 320
9.8.2删除菜单 323
9.8.3获取菜单列表 323
9.9第三方应用接口 324
第10章 网站优化 328
10.1 AB页面压力测试 329
10.2页面静态化 331
10.3安装高性能服务器Nginx 333
10.3.1安装Nginx步骤 333
10.3.2安装PHP 335
10.4负载均衡 337
10.5使用Redis 339
10.5.1安装Redis 339
10.5.2 Redis的使用和性能对比 341
第11章 用微信连接智能设备 345
11.1微信硬件平台 346
11.1.1设备号简介 346
11.1.2微信用户场景 347
11.1.3硬件平台接入流程 348
11.2硬件平台中三个重要概念 350
附录A全局码说明 351
附录B公众号类型的接口权限说明 354