描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121308093
简单:30天,上千行核心代码让你精通微信企业号开发
丰富:AngularJS、ECharts、Qpid、WebSocket、Servlet等10余种技术与微信的结合
创新:类似微信小程序的单页面应用开发讲解
篇 从零开始学企业号
第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
第二篇 微信企业号开发核心技术
第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
第三篇 综合案例
第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
推荐序
随着移动互联网的迅猛推广,尤其是微信等移动社交平台的快速普及,企业运营协作模式也在发生深刻变化,企业信息化走向移动已经成为十分紧迫的课题。诞生于桌面PC时代的企业信息化目前还主要应用于桌面环境,移动化可以将信息接入从桌面向智能终端大大延伸,从而突破固有的终端种类、接入时间和地点的局限性,可以实现企业信息化真正的无缝闭环,这无疑是企业信息化发展历程中的一次质的飞跃。
企业移动信息化的实现途径多种多样,从初的WAP网站方式到后来的智能App模式,再到轻应用模式,技术实现方式背后蕴藏着各种企业信息化要素的平衡和优化,这些要素包括用户体验、开发成本、企业信息安全、推广效率,等等。微信企业号正是可以满足这些要素的优秀解决方案,因此甫一推出就立刻受到了广泛的关注和认可。
在用户体验方面,由于企业信息化应用绝大多数涉及的只是信息的浏览和表单的处理,对用户体验的方面要求并不高,因此微信平台提供的轻应用完全可以胜任。从开发成本上考虑,由于微信企业号的开发采取的是跨平台的网页开发技术,而开发跨平台应用,相较于原生App开发无疑可以节省大量的开发和测试成本,对于项目来说,也就意味着可以在较短的时间内实现应用上线,从而迅速产生实际效益。
仅有项目开发的“多快好省”还不行,在数据成为企业新的重要资产的今天,互联网环境下的信息安全成为企业在部署移动化之前不得不考虑的前提。传统的移动信息安全一般要借助于移动设备管理MDM等系统级平台,项目投资大,对于移动设备的侵入性也非常大,对于中小型企业来说,往往难以承受。针对信息安全,微信企业号提供了相对轻量级的安全架构,将内部相对封闭的内部组织架构与个人微信号实现绑定,通过企业号后台可以对进入企业号的微信号进行认证、绑定以及后续的注销,具备基本的用户管理能力,而进一步更严格的认证措施则可以通过企业号的二次开发来实现。
后再来看一下微信企业号的推广效率。由于微信本身已经成为覆盖绝大多数企业员工的社交平台,企业往往也已经建立了各种微信群或微信公众号,借助于这些传播渠道,微信企业号可以很轻易地获得推广,而且绑定动作相对于App的安装来说轻量且优雅,也不存在App后续的升级更新问题。
综合以上特征,个人认为微信企业号对于信息敏感性不太高的中小企业来说无疑是适合的企业移动信息化扩展平台。通过在微信企业号上进行一定的二次开发,就可以轻易地使企业内部的信息化系统具备移动化能力。
我们海颐软件正是这样一家中等规模的软件企业,并较早成为了微信企业号的用户。本书的作者正是我们微信企业号的主要开发者。在实际开发过程中,他积累了丰富的知识和经验。相信借助于本书,您可以绕开大部分的困扰和陷阱,帮助您直达目标,迅速构建出令人满意的微信企业号应用来。
李锐
烟台海颐软件股份有限公司 副总经理
前 言
为什么要写这本书?
智能手机的日渐普及不断地推动着移动互联网在各行业的应用,众多的App琳琅满目,App开发也从初的Native App开发,发展到Native App、Web App等多种开发技术。开发越来越容易,各类客户需求的分散,导致App越来越多,大量功能单一的应用被搁置,成为“僵尸应用”。越来越多的用户将视线聚集到微信、QQ、新浪微博等超级应用中,在超级应用倍受关注的形势下,Light App应运而生。Light App又被称为轻应用、微应用,是一种无须下载、即搜即用的全功能App,既有媲美甚至超越Native App的用户体验,提升用户群体,又具备Web App快速开发节约开发成本等特性,前景更加广阔。
微信公众号是腾讯公司在微信的基础上推出的,属于Light App的范畴,使广大微信用户无须下载便能够借助微信直接享受个人或企业提供的各类服务。对于企业推广和发展来说,企业可以通过订阅号、服务号打造一个基于微信的服务或推广平台;而对企业内部,企业能够通过微信新推出的企业号实现对内部管理系统的集成,包括:人力资源管理系统、报销管理系统、企业论坛、新闻通知公告、即时通信系统、OA协同办公等系统,使各类系统移动化,提高工作效率。
企业号能够高效地帮助政府、企业及组织构建自己独有的生态系统,随时随地连接员工、上下游合作伙伴及内部系统和应用,实现业务及管理的互联网移动化。2014年9月企业号进行公测,2015年笔者因工作需要开始进行微信企业号开发,当时市面上基本没有企业号开发的相关文章,笔者先后完成多个企业号项目开发,编写数个微信企业号建设方案,并在CSDN发布了几篇博文,收到许多读者和企业的来信。随着企业号近两年的发展,越来越多的企业想开发企业号,企业号开发人员也受到软件公司的青睐。
为了把微信公众平台开发经验以及企业号的运用更详细、系统地分享出来,笔者在源智图书李幸编辑的鼓励下编写了这本书,希望认识更多的IT人才。
本书内容及知识体系
第1篇 微信企业号概述及开发基础知识(第1~2章)
本篇介绍了微信公众平台企业号概述以及微信企业号开发环境的配置和开发基础知识,主要包括微信公众号的区别、企业号的发展与注册、配置微信开发环境、JCE安全策略的调整、微信调试工具的安装与使用、HttpClients服务请求调用、域名发布使用以及Properties文件配置等。
第2篇 典型模块开发(第3~7章)
本篇介绍了微信开发各种模式下接口调用及开发实现,主要包括AccessToken申请、Token缓存处理、各类消息的主动推送、素材管理、开启回调模式、消息的接收与响应、ECharts运用、语音导航实现、WebSocket连接实现、SPA开发、企业IM与微信的对接、通讯录异步任务维护以及现场业务上报实现等。
第3篇 微信数据安全及数据库基础(第8~9章)
本篇主要介绍了微信公众号数据安全访问的方式策略,主要从软件开发角度实现数据的传输,通过识别浏览、OAuth 2.0身份验证、页面访问有效期、QPID以及前置机代理服务等方式实现数据的传输。
第4篇 项目案例实战(第10~11章)
本篇主要以案例的方式介绍了微信企业号应用的开发过程,从应用创建到应用开发实现,一步步带领读者学习企业号开发,学习企业资讯、微信考勤等应用的实现。
适合阅读本书的读者
需要全面学习微信企业号开发技术的人员;
微信公众号开发技术人员;
微信单页面应用开发人员
Java程序员;
Java EE开发工程师;
希望提高微信项目开发水平的人员;
专业培训机构的学员;
微信企业号应用开发项目经理;
需要一本微信功能查询与实现手册的人员。
阅读本书的建议
没有微信开发经验的读者,建议从第1章顺次阅读并演练每一个实例。
有一定微信开发基础的读者,可以根据实际情况有选择地阅读各个模块和项目案例。
对于有微信公众号项目经验或者对单页面应用开发有兴趣的读者,可以重点阅读第5章JS-SDK的相关开发。
阅读时建议首先阅读一遍书中的模块和项目案例,然后从Hello World写起,“千里之行,始于足下”。大到每个案例,小到每行代码,哪怕简单的变量定义也在SDK中书写一遍,这样不仅能够提高代码速度、效率,而且理解起来也会更加深刻、容易。
致谢
感谢微信创始人张小龙先生及其团队创造了微信这一优秀的平台;
感谢海颐软件李锐、宋庆伟、于洋提供的微信公众账号开发机遇;
感谢徐国智、李明、马金刚在技术上的启蒙与指导;
感谢于春洋在我写书期间在生活上给予的鼓励与帮助;
感谢身边的同事以及广大IT网友对这本书的支持与鼓励。
评论
还没有评论。