第一篇 从零开始学企业号 2
第1章 微信公众平台——认识企业号 2
1.1 微信企业号简介 2
1.1.1 平台发展历程 2
1.1.2 企业号定位 3
1.1.3 与订阅号、服务号区别 3
1.1.4 企业号应用 4
1.2 企业号注册 5
1.2.1 基本信息 5
1.2.2 邮箱激活 5
1.2.3 选择类型 6
1.2.4 信息登记 7
1.2.5 公众号信息 10
1.2.6 绑定管理员 11
1.2.7 增加管理员 11
1.2.8 认证 13
1.3 应用创建 14
1.3.1 进入应用中心 14
1.3.2 选择应用类型 15
1.3.3 填写应用信息 15
1.3.4 完成应用创建 16
第2章 平台开发基础入门 17
2.1 JDK及JCE补丁部署 17
2.1.1 安装JDK 17
2.1.2 环境变量 19
2.1.3 JCE安全策略补丁 21
2.2 开发环境 22
2.2.1 安装MyEclipse 22
2.2.2 绑定服务器 24
2.2.3 调整编译环境 26
2.2.4 微信web开发工具 27
2.3 HttpClients使用技巧 29
2.4 HttpURLConnection使用技巧 32
2.5 Properties配置文件使用 36
2.6 接口调试工具 37
2.7 发布外网服务 38
2.8 公众平台消息模式 39
2.9 微信企业号入门Hello World 40
第二篇 微信企业号开发核心技术 46
第3章 主动调用模式 46
3.1 主动调用模式介绍 46
3.2 申请AccessToken 47
3.3 AccessToken的缓存处理 50
3.4 主动调用频率限制 53
3.5 信息推送 53
3.5.1 接口说明 54
3.5.2 推动文本消息 56
3.5.3 推送图片消息 61
3.5.4 推送语音消息 62
3.5.5 推送视频消息 66
3.5.6 推送文件消息 70
3.5.7 推送新闻消息 73
3.5.8 推送永久图文消息 79
3.5.9 管理端推送消息 86
3.6 素材管理 87
3.6.1 接口说明 87
3.6.2 上传临时素材文件 87
3.6.3 获取临时素材文件 90
3.6.4 上传永久素材(非图文素材) 92
3.6.5 上传永久素材(图文素材) 93
3.6.6 获取永久素材(非图文素材) 97
3.6.7 获取永久素材(图文素材) 98
3.6.8 删除永久素材 99
3.6.9 修改永久图文素材 100
3.6.10 获取素材总数 101
3.6.11 获取素材列表 102
3.6.12 管理端素材维护 104
3.7 企业号应用管理 105
3.7.1 获取企业号应用 105
3.7.2 设置企业号应用 107
3.7.3 获取应用概况列表 108
3.7.4 管理端应用管理 109
3.8 主动模式自定义菜单 110
3.9 信息自动回复 111
3.10 案例:业务派单 113
第4章 被动回调模式 117
4.1 被动回调模式介绍 117
4.2 开启回调模式 119
4.3 加密/解密算法 123
4.4 被动模式自定义菜单 125
4.4.1 限制与说明 125
4.4.2 创建菜单 127
4.4.3 删除菜单 132
4.4.4 获取菜单列表 133
4.4.5 管理端菜单维护 134
4.5 接收消息Dom解析 135
4.6 消息响应Xstream转换 138
4.7 接收普通消息 141
4.7.1 接口说明 141
4.7.2 接收文本消息 145
4.7.3 接收图片消息 146
4.7.4 接收音频消息 147
4.7.5 接收位置消息 148
4.7.6 接收小视频消息 149
4.7.7 接收链接消息 151
4.7.8 接收视频消息 152
4.8 接收事件消息 153
4.8.1 接口说明 153
4.8.2 接收关注/取消关注事件 155
4.8.3 接收地理位置事件 157
4.8.4 接收进入应用事件 158
4.8.5 接收菜单事件 159
4.8.6 接收异步任务完成事件 166
4.9 被动响应消息 167
4.9.1 接口说明 167
4.9.2 被动响应文字消息 169
4.9.3 被动响应图片消息 171
4.9.4 被动响应音频消息 173
4.9.5 被动响应视频消息 175
4.9.6 被动响应图文消息 177
4.10 案例:企业通讯录快速搜索 180
第5章 JSAPI模式 192
5.1 JSAPI模式介绍 192
5.2 页面接口引入 193
5.2.1 配置“可信域名” 193
5.2.2 引入微信JS文件 194
5.2.3 权限验证 194
5.2.4 验证成功事件 199
5.2.5 验证失败事件 199
5.3 Debug调试及基础接口说明 199
5.3.1 Debug调试模式开启 199
5.3.2 判断当前客户端版本是否支持指定JS接口 200
5.3.3 接口通用函数 201
5.4 微信JS-SDK接口说明 201
5.5 权限接口应用 202
5.5.1 隐藏右上角菜单 202
5.5.2 GPS定位获取位置信息 204
5.5.3 图片处理接口 205
5.5.4 语音及智能接口 206
5.6 ECharts在微信中的应用 208
5.6.1 ECharts简介 208
5.6.2 ECharts快速接入 208
5.6.3 ECharts微信应用 210
5.7 微信中的地图语音导航 214
5.7.1 微信内置地图导航 214
5.7.2 腾讯地图语音导航 215
5.7.3 百度地图语音导航 217
5.8 微信SPA开发 219
5.8.1 基于AngularJS的onsenUI 219
5.8.2 创建AngularJS微信服务 220
5.8.3 SPA下JSAPI模式权限初始化 221
5.8.4 SPA下获取OAuth 2.0成员身份信息 222
5.8.5 解决微信物理回退 223
5.9 微信WebSocket开发 224
5.9.1 WebSocket客户端 224
5.9.2 WebSocket服务端 226
5.10 微信中的支付宝 228
5.11 常见问题 229
5.12 案例:现场业务上报 232
5.12.1 场景回顾 232
5.12.2 示例代码展示 232
第6章 企业会话模式 240
6.1 企业会话模式介绍 240
6.2 开启企业会话 242
6.3 推送聊天信息 245
6.3.1 信息推送接口说明 245
6.3.2 聊天消息体结构说明 247
6.3.3 创建多聊会话 250
6.3.4 修改多聊会话 253
6.3.5 退出多聊会话 255
6.3.6 获取多聊会话信息 256
6.3.7 清除未读会话状态 257
6.3.8 会话消息免打扰 258
6.4 接收聊天信息 260
6.4.1 信息接收接口说明 260
6.4.2 普通消息结构体说明 262
6.4.3 事件消息结构体说明 265
6.5 案例:企业IM与微信的对接 267
第7章 通讯录管理及异步任务 275
7.1 成员验证关注 275
7.2 部门管理 276
7.2.1 新增部门 276
7.2.2 更新部门 277
7.2.3 删除部门 278
7.2.4 获取部门列表 278
7.3 成员管理 279
7.3.1 新增成员 280
7.3.2 成员扩展属性extattr 281
7.3.3 维护成员信息 282
7.3.4 删除单个成员 283
7.3.5 批量删除成员 284
7.3.6 获取成员信息 284
7.3.7 获取部门成员 286
7.3.8 获取部门成员及详细信息 287
7.4 异步任务管理 289
7.4.1 上传CVS文件 290
7.4.2 全量覆盖部门 292
7.4.3 全量覆盖成员 296
7.4.4 jobid获取异步任务结果 299
7.4.5 callback接收异步任务通知 302
7.5 标签管理 305
7.5.1 创建标签 305
7.5.2 新增标签成员 307
7.5.3 删除标签成员 310
7.5.4 获取标签成员 313
7.5.5 删除标签 313
7.6 案例:企业通讯录异步维护 314
第8章 数据安全访问策略 321
8.1 OAuth 2.0身份验证 321
8.1.1 获取code 322
8.1.2 根据code获得成员信息 323
8.2 浏览器类型安全访问 325
8.3 全局验证码变量 326
8.4 页面有效期访问 327
8.4.1 JS定时任务校验 328
8.4.2 事件校验 329
8.5 QPID消息队列 330
8.5.1 QPID消息Hello World 330
8.5.2 QPID发送MAP消息 333
8.5.3 8080端口问题 336
8.6 代理服务器 337
8.7 企业号服务IP白名单 339
8.8 案例:通过DMZ服务器获取内网图片 341
第9章 数据库及服务器 348
9.1 常用SQL语句 348
9.1.1 查询语句 348
9.1.2 新增语句 350
9.1.3 更新语句 350
9.1.4 删除语句 351
9.2 HQL语句基础语法 351
9.3 HQL方言处理 354
9.4 Tomcat服务器 355
9.4.1 在SDK中部署 355
9.4.2 8080端口号冲突 356
9.4.3 内存调整 358
9.4.4 清理数据缓存 358
9.5 JBoss服务器 359
9.5.1 JBoss在SDK中安装 359
9.5.2 修改8080端口 360
9.5.3 JBoss内存调整 361
9.5.4 发布缓存处理 363
9.6 WebLogic服务器 363
9.6.1 域的创建 363
9.6.2 WebLogic在SDK中安装 367
9.6.3 7001端口号调整 368
9.6.4 服务器缓存清理 368
第三篇 综合案例 370
第10章 基础应用——企业资讯 370
10.1 创建应用 371
10.2 获取开发者信息 371
10.3 开发实现 372
10.3.1 创建数据库Table 372
10.3.2 生成PO/VO实体类 374
10.3.3 创建工具类WxUtil 379
10.3.4 创建Web服务 382
10.3.5 Service处理Web请求 384
10.4 开启企业资讯应用回调 390
10.5 创建最新资讯菜单 391
10.6 本章小结 391
第11章 更近一步:微信考勤 392
11.1 场景回顾 393
11.2 腾讯地图引入 393
11.2.1 腾讯地图Key申请 394
11.2.2 腾讯地图Demo 395
11.2.3 腾讯地图坐标转换 397
11.3 开发实现 397
11.3.1 创建微信工具类 398
11.3.2 编写回调服务 406
11.3.3 考勤信息实体类 408
11.3.4 创建业务层服务类 409
11.3.5 服务跳转类 415
11.3.6 JSP考勤打卡Map页 421
11.3.7 考勤查询JSP页 426
11.3.8 其他考勤页 433
11.4 开启微信考勤回调模式 435
11.5 绑定可信域名 436
11.6 微信考勤应用菜单 437
11.7 本章小结 437
附录A 微信表情转换表 438
附录B 返回码说明表 441