微信开发深度解析:微信公众号、小程序高效开发秘籍图书
人气:116

微信开发深度解析:微信公众号、小程序高效开发秘籍

历经2年精心雕琢,难得的“理论 + 实战案例 + 趟坑经验”总结,从需求分析、策划,到账号申请、验证,再到的 API 及开发工具,覆盖所有开发微信公众号(含订阅号、服务号和小程序)所需关键技能
  • 所属分类:图书 >计算机/网络>程序设计>其他  
  • 作者:[苏震巍]
  • 产品参数:
  • 丛书名:--
  • 国际刊号:9787121317385
  • 出版社:电子工业出版社
  • 出版时间:2017-07
  • 印刷时间:2017-07-01
  • 版次:1
  • 开本:128开
  • 页数:--
  • 纸张:胶版纸
  • 包装:平装-胶订
  • 套装:

内容简介

本书以深度剖析Senparc.Weixin SDK框架的设计思想和使用方法为主干,介绍了开发微信公众号(包含了订阅号、服务号和小程序)所需的关键技能,包括了从需求分析、策划,到账号申请、验证,再到的API及开发工具介绍,侧重于服务器端开发。本书也涵盖了盛派网络团队在多年的研发过中收集到的大量注意点,帮助开发者“避坑”。

本书包含了四个部分:微信基础介绍(第1~3章)、Senparc.Weixin SDK框架介绍(第4~13章)、Senparc.Weixin SDK接口介绍(第14~19章)和微信小程序(第20章),由浅入深指导开发者学习微信开发,在此过程中可以结合配套系统进行阅读和练习:https://book.weixin.senparc.com。

同时,本书也是Senparc.Weixin SDK作者为开发者奉上的一份官方文档,书中详细介绍了SDK中各个接口的位置及用法,可以帮助开发者灵活应用和改写代码。对于需要学习编程架构思想的开发者,本书也凝结了较多精华的思想和思考过程,可以作为参考。

Senparc.Weixin SDK已经支持了多个.NET版本,包括.NET Core、.NET Framework 4.5和.NET Framework 4.0,各个版本的接口和使用方法保持了高度的一致,本书以目前使用率zui高的.NET 4.5(C#)版本为例进行介绍,针对其他框架本书也同样适用,读者可以举一反三。

本书除提供给专业开发人员使用以外,也适合大专院校、培训机构作为相关教材和参考书使用。

编辑推荐

历经2年精心雕琢,堪称微信开发白皮书

详解微信公众号、小程序开发的方方面面

从宝贵“实战案例”中总结“踩坑”经验

助你快速搭建微信公众号、小程序的同时

掌握盛派网络多年的架构设计思想和技巧

作者认真负责赋予本书不一般的品质

Senparc.Weixin SDK GitHub C# 开源首位

真正介绍微信开发所需所有关键技能

腾讯博学工程师推荐

微信 c# 开发必须选它

作者简介

苏震巍,苏州盛泽人氏,香港理工大学信息管理硕士、微软 Ignite 技术大会讲师、高级电子商务师、中级物流师。

苏州盛派网络科技有限公司创始人,首席架构师。

专注于软件及互联网开发已有 24 年,所著图书《ASP.NET 3.5 SQL Server网站模块化开发全程实录》已被多所大学选为教材。

主持了众多大型项目的架构、开发和集成,对物联网、大数据和人工智能相关技术有深入的实践和理解,已为十余家世界 500 强企业提供解决方案和技术支持。

作为“中国 HTML5 研究小组”首批成员,带领了国内shou个HTML5 商业应用,并一直进行着 HTML5 商业化应用的实践和分享。

zui早进入微信开发领域的开拓者之一,开源的 Senparc.Weixin SDK 框架是目前使用率zui高的微信 .NET SDK,同时也是国内zui受欢迎的 .NET 开源项目之一。

目录

及时部分微信基础介绍

第1章使用本书 2

1.1 我是否适合读这本书 3

1.2 如何用好这本书 3

1.3各章节导读 5

1.4名词解释 7

1.5学习资源 8

1.6帮助我们改进 9

习题 9

第2章策划你的及时个微信项目 10

2.1需求分析 10

2.1.1沟通需求 10

2.1.2整理需求 13

2.1.3制定方案 14

2.2数据库设计 17

2.3接口统计 21

2.4业务逻辑 22

2.5技术架构 24

2.6微信公众号策划 26

2.7统一培训 27

习题 28

第3章开发微信公众号前的准备 29

3.1准备工作 29

3.1.1基本技能 29

3.1.2开发环境 30

3.1.3域名 31

3.1.4服务器 31

3.1.5SSL证书 31

3.2消息通信 31

3.2.1公众平台的消息通信过程 31

3.2.2XML通信格式 32

3.2.3消息通信中需要注意的问题 33

3.3访问网页 34

3.4使用测试号进行测试 34

3.5使用微信 Web 开发者工具调试微信 36

3.5.1下载和安装 36

3.5.2使用开发者工具 37

3.6单元测试 39

3.7在线接口调试工具 39

3.8服务号、订阅号和认证账号的功能差别 40

3.8.1服务号 40

3.8.2订阅号 44

3.9微信公众号申请 47

习题 56

第二部分Senparc.Weixin SDK框架介绍

第4章Senparc.Weixin SDK设计架构 58

4.1开源项目 58

4.2开源协议 58

4.3微信平台生态与 Senparc.Weixin SDK 59

4.4文件目录 61

4.4.1根目录 61

4.4.2src目录 61

4.5Senparc.Weixin.dll 62

4.5.1Senparc.Weixin文件结构 62

4.5.2Senparc.Weixin类库结构 65

4.5.3使用Senparc.Weixin注意点 65

4.6Senparc.Weixin.MP.dll 66

4.6.1Senparc.Weixin.MP.dll文件结构 66

4.6.2Senparc.Weixin.MP.dll类库 69

4.7Senparc.Weixin.WxOpen.dll 69

4.8Senparc.Weixin.MP.MvcExtension.dll 71

4.9Senparc.Weixin.Cache.Redis.dll 71

4.10Senparc.Weixin.Cache.Memcached.dll 72

4.11其他类库 72

4.12单元测试 72

4.13修改源代码和贡献代码 72

4.13.1注册 GitHub 账号 73

4.13.2Fork项目 75

4.13.3修改代码 76

4.13.4提交代码 78

4.13.5贡献代码 79

习题 82

第5章微信公众号开发全过程案例 83

5.1开发准备 83

5.1.1安装开发环境及工具 83

5.1.2创建解决方案 84

5.1.3创建项目 85

5.1.4使用 Nuget 安装 Senparc.Weixin SDK 88

5.2开发 90

5.2.1准备基础框架 91

5.2.2创建数据库 91

5.2.3同步数据库 92

5.2.4建立数据库框架 95

5.2.5开发Repository仓储模块 98

5.2.6缓存 100

5.2.7开发业务逻辑 102

5.2.8Controller控制器 105

5.2.9Web项目和UI 111

5.3单元测试 111

5.4部署 112

5.5消息验证和线上测试 112

5.6在Microsoft Azure上运行微信公众号示例 112

习题 116

第6章使用SDK Demo:Senparc.Weixin.MP.Sample 117

6.1文件位置及结构 117

6.1.1Senparc.Weixin.MP.Sample 解决方案文件夹 117

6.1.2Senparc.Weixin.MP.Sample 解决方案 118

6.1.3Senparc.Weixin.MP.Sample Web项目 119

6.1.4Senparc.Weixin.MP.Sample.CommonService 项目 121

6.2配置项目 122

6.2.1Web.Config文件 122

6.2.2Global.asax 文件 124

6.2.3首页 125

6.3微信消息 126

6.3.1消息处理 127

6.3.2消息模拟及并发消息测试 134

6.4微信菜单 135

6.5OAuth 138

6.6JS-SDK 140

6.7微信支付 141

6.8素材 143

6.9缓存测试 143

6.10异步方法 145

6.11微信内置浏览器过滤 146

6.12微信小程序 147

6.12.1消息处理 147

6.12.2模板消息 148

6.12.3WebSocket 148

6.13其他 148

6.13.1开放平台 148

6.13.2企业号 149

6.13.3文档下载 149

6.14WebForms项目 150

6.15单元测试 150

6.15.1单元测试项目 150

6.15.2单元测试方法 151

6.16配置服务器和参数 153

6.16.1配置IIS 153

6.16.2安装 .NET Framework 4.5 154

6.16.3设置IIS站点 155

6.16.4解析域名 156

6.16.5检查 Web.config 文件 156

6.17部署 156

习题 157

第7章MessageHandler:简化消息处理流程 158

7.1设计思想 158

7.2消息类型 160

7.2.1概述 160

7.2.2命名规则 161

7.2.3全局消息基类 161

7.2.4请求消息 161

7.2.5响应消息 165

7.3原始消息处理方法 169

7.4使用MessageHandler 170

7.4.1及时步:通过Nuget安装Senparc.Weixin.MP 170

7.4.2第二步:创建你自己的MessageHandler 170

7.4.3第三步:写3行关键代码 175

7.5OnExecuting()和OnExecuted() 175

7.6解决用户上下文(Session)问题 176

7.6.1消息容器:MessageContainer 177

7.6.2消息队列:MessageQueue 178

7.6.3单用户上下文:MessageContext 179

7.6.4全局上下文:WeixinContext 183

7.6.5上下文移除事件:WeixinContextRemovedEventArgs 185

7.7消息去重 185

7.8消息加密 187

7.9消息格式转换 189

7.9.1XML转实体 190

7.9.2实体转XML 190

7.10消息 191

7.11了解MessageHandler设计原理 191

7.11.1Senparc.Weixin.MessageHandlers.MessageHandler结构 192

7.11.2Senparc.Weixin.MP.MessageHandlers.MessageHandler结构 196

7.11.3抽象类及虚方法 198

7.11.4构造函数 198

7.11.5Execute()方法 200

7.11.6CancelExcute属性 201

7.11.7OnExecuting()方法 202

7.11.8DefaultResponseMessage()方法 202

习题 203

第8章缓存策略 204

8.1设计原理 204

8.2基础缓存策略接口:IBaseCacheStrategy 206

8.3数据容器缓存策略接口:IContainerCacheStragegy 207

8.3.1原始IContainerCacheStragegy设计思路 207

8.3.2优化IContainerCacheStragegy设计思路 208

8.3.3优化IContainerItemCollection和ContainerItemCollection 208

8.4本地数据容器缓存策略:LocalContainerCacheStrategy 211

8.4.1创建LocalContainerCacheStrategy类 211

8.4.2定义数据源 212

8.4.3实现容器缓存策略 214

8.4.4运用单例模式 216

8.4.5测试 218

8.5分布式缓存 219

8.5.1起因 219

8.5.2负载均衡 220

8.5.3分布式缓存 220

8.5.4分布式使用的注意点 221

8.6Redis分布式缓存策略:RediscontainerCacheStrategy 222

8.6.1Redis简介 222

8.6.2安装Redis 222

8.6.3StackExchange.Redis缓存扩展 222

8.6.4实现Redis缓存策略 224

8.6.5单元测试 225

8.7Memcached分布式缓存策略:MemcachedContainerCacheStrategy 225

8.7.1Memcached简介 225

8.7.2安装Memcached 226

8.7.3EnyimMemcached缓存扩展 226

8.7.4实现Memcached缓存策略 227

8.8缓存策略工厂:CacheStrategyFactory 227

8.8.1创建CacheStrategyFactory 227

8.8.2配置和使用CacheStrategyFactory 229

习题 230

第9章并发场景下的分布式锁 231

9.1概述 231

9.2为什么需要分布式锁 231

9.3分布式锁的设计 232

9.3.1IBaseCacheStrategy 接口设计 232

9.3.2ICacheLock 接口设计 234

9.3.3分布式锁基类:BaseCacheLock 236

9.4本地锁 236

9.4.1LocalCacheLock 236

9.4.2实现 BeginCacheLock 238

9.5Redis 锁 238

9.5.1RedisCacheLock 238

9.5.2Redlock.CSharp 240

9.5.3实现BeginCacheLock 240

9.6Memcached锁 241

9.6.1MamcachedCacheLock 241

9.6.2实现BeginCacheLock 242

习题 242

第10章Container:数据容器 243

10.1设计思路及原理 243

10.2BaseContainerBag 245

10.3BaseContainer 246

10.4AccessTokenContainer 253

10.5JsApiTicketContainer 262

10.6BindableBase 262

10.7ContainerHelper 264

习题 265

第11章SenparcMessageQueue:消息队列 266

11.1设计原理 266

11.2队列项:SenparcMessageQueueItem 267

11.3消息队列:SenparcMessageQueue 268

11.3.1GenerateKey()方法 269

11.3.2MessageQueueDictionary 269

11.3.3MessageQueueList 269

11.3.4有关Dictionary和List的效率测试 270

11.4自动线程处理:SenparcMessageQueueThreadUtility 272

11.4.1SenparcMessageQueueThreadUtility 272

11.4.2线程工具类:ThreadUtility 274

11.4.3优化扩展 276

习题 278

第12章接口调用及数据请求 279

12.1设计规则 279

12.2响应类型 281

12.2.1基类:WxJsonResult 281

12.2.2扩展响应类型 282

12.3请求 284

12.3.1GET请求 284

12.3.2POST请求 286

12.3.3JSON 请求 290

12.3.4文件上传/下载 292

12.3.5公共方法 293

12.4使用AccessToken请求接口:CommonJsonSend 293

12.4.1Sent() 方法 293

12.4.2JsonSetting 295

12.4.3WeixinJsonConventer 298

12.5AccessToken自动处理器:ApiHandlerWapper 299

习题 302

第13章Debug模式及异常处理 303

13.1Debug模式设计原理 303

13.2WeixinTrace 304

13.3异常处理 308

13.3.1WeixinException 308

13.3.2ErrorJsonResultException 309

13.3.3

在线预览

第7章MessageHandler:简化消息处理流程

MessageHandler 是一个微信消息的处理模块,也是整个微信开发过程中不可缺少的一部分。在 MessageHandler 中,开发者可以非常轻松地处理所有类型的微信消息。

本章将介绍 MessageHandler 的原理以及使用方法,包括支撑MessageHandler 运行所必需的实体类型、工厂方法等相关知识的介绍。

7.1设计思想

在第3章3.1节中,我们已经了解微信消息的基本通信原理,因此我们可以非常方便地构造出一个简单的消息处理功能,例如 141#487:

//此处省略了代码,详见书中

这个方法也是目前很多其他框架甚至微信官方的Demo使用的,但是这种方法我可以用“不美好”来形容。

不美——首先使用字符串拼接的方式非常丑陋,其次哪怕使用 XmlDocument 或 XDocument 等面向对象的方式去处理,面对几十种不同的微信消息类型以及一一对应的不同的格式,代码将变得非常冗长而且难以维护。这样的代码你的老板或客户会喜欢吗?

不好——这样的写法坏处太多:

n 可移植性差

n 并没有做到很好地分离(无论是和整个应用程序还是不同请求类型之间)

n 如果要做单元测试就必须整体代码一起上

n 基本上不具备可扩展性

n 容错能力很差,即使做到了,代码已经无法直视

n 正常人用多了会心情不好

那么,“美好”的消息处理方式应该是怎么样的呢?

下面就将 Senparc.Weixin.MP.MessageHandler 介绍给你。

首先,美好的 MessageHandler 必须具有对消息类型的自动识别和分类能力。

第二,美好的 MessageHandler 必须能够同时、自动处理“明文”“兼容模式”“加密模式”三种(所有)消息加密类型,并且让开发者忘掉加密这回事情的存在。

第三,美好的 MessageHandler 必须能够提供很好的消息容器以及储存容器,来解决消息去重、Session 等一系列的问题。

第四,美好的 MessageHandler 必须能够兼容 MVC 和 WebFroms 不同的请求处理方式。

第五,美好的 MessageHandler 必须能够提供统一逻辑处理的接口,方便在特定的环节对消息进行统一处理。

第六,美好的 MessageHandler 必须具备的可测试性和扩展能力。

第七,美好的 MessageHandler 必须能做到很好的逻辑分离。

第八,美好的 MessageHandler 必须让你用起来心情好。

第九,美好的 MessageHandler 不能保障你能在 10 分钟内,完成一个满足以上八条的简单微信应用从开发到上线、的全过程。但是我们做到了。

媒体评论

Senparc 微信 SDK 是目前zui的 C# 开源项目之一。覆盖了微信开发的各个方面,通过的高并发的缓存模式设计架构,大大简化了微信消息处理等完整流程的编码。特别是 C# 很多的语言特性被发扬光大,加上 .NET Core 的开源,为开源项目的长远发展奠定了坚实的基础。希望更多的开发者通过 Senparc 微信 SDK,加入到 .NET Core 开发者队伍中来,并预祝本书热卖!

—— 微软中国云计算创新中心 shou席产品经理 宋青见

如果你想基于 .NET 开发微信公众号和小程序,那么 Senparc.Weixin SDK 是你的shou选函数库。它不仅功能强大接口清晰,还开源高星,尤其支持 .NET Core让你轻松跨平台。这本出自官方的指导性书籍,理所当然将会是你的shou选学习材料。用 .NET,用 Senparc.Weixin SDK 将会让你微信公众号和小程序开发更快捷更省心。

—— 软件工匠 10届MVP 朱永光

本书使用了大量的代码和实例,指导读者怎样从零开始搭建一个基础的微信公众号服务。之后又进一步介绍了并发的环境及数据容器,为开发大规模、高可用的公众号服务提供了很好的模板和支持,zui后本书涵盖了网页授权、微信支付及微信小程序,可以说,本书的内容覆盖了微信相关开发的各个方面,读者阅读完本书,可以从零开始搭建一个个性化的、可商用级别的公众号服务。

—— 微软公司 开发者工具事业部 软件工程师 严祥

曾经买过一些技术书籍,有的只是简单 Demo 或官方文档整理,有的作者没有真正开发过大型项目,很难总结出实战项目的宝贵“踩坑”经验。而这本书让人眼前一亮,难得的“理论 实战案例 趟坑经验”总结。作者是专注于微信应用解决方案开发的盛派公司 CEO、微软 Ignite 技术大会讲师,微信开源 SDK在GitHub 国内 C# 开源项目 Star 数排shou位。本书讲解了很多微信开发实战经验与注意事项,例如高并发微信接口调用、缓存、分布式锁、消息队列、微软云 Azure、阿里云的微信部署“踩坑”经验,以及微信小程序开发指导等,无论你用 .NET C#,还是Java、PHP、Go、Python、JavaScript、TypeScript 等,相信都能从本书得到帮助与指导!

—— .NET新时代CTO联盟微信群群主 新东方研发经理 Mike

网友评论(不代表本站观点)

来自有梦的**的评论:

印刷质量很好,内容也不错。

2017-09-04 16:02:07
来自无昵称**的评论:

最关键的地方没有可以下载的代码。比如支付模块demo下载,比如卡券的使用,总的来说,如果使用这个库还是比较方便的手册。

2017-09-16 20:42:46
登录后即可发表评论

免责声明

更多相关图书
在线咨询