《微信开发深度解析 微信公众号、小程序高效开发秘籍》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:苏震巍著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:7121317385
  • 页数:602 页
图书介绍:

第一部分 微信基础介绍 2

第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.5 SSL证书 31

3.2消息通信 31

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

3.2.2 XM L通信格式 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框架介绍 58

第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.2 src目录 61

4.5 Senparc.Weixin.dll 62

4.5.1 Senparc.Weixin文件结构 62

4.5.2 Senparc.Weixin类库结构 65

4.5.3使用Senparc.Weixin注意点 65

4.6 Senparc.Weixin.MP.dll 66

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

4.6.2 Senparc.Weixin.MP.dll类库 69

4.7 Senparc.Weixin.WxOpen.dll 69

4.8 Senparc.Weixin.MP.MvcExtension.dll 71

4.9 Senparc.Weixin.Cache.Redis.dll 71

4.10 Senparc.Weixin.Cache.Memcached.dll 72

4.11其他类库 72

4.12单元测试 72

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

4.13.1注册GitHub账号 73

4.13.2 Fork项目 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.8 Controller控制器 105

5.2.9 Web项目和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.1 Senparc.Weixin.MP.Sample解决方案文件夹 117

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

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

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

6.2配置项目 122

6.2.1 Web.Config文件 122

6.2.2 Global.asax文件 124

6.2.3首页 125

6.3微信消息 126

6.3.1消息处理 127

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

6.4微信菜单 135

6.5 OAuth 138

6.6 JS-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.3 WebSocket 148

6.13其他 148

6.13.1开放平台 148

6.13.2企业号 149

6.13.3文档下载 149

6.14 WebForms项目 150

6.15单元测试 150

6.15.1单元测试项目 150

6.15.2单元测试方法 151

6.16配置服务器和参数 153

6.16.1配置llS 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.5 OnExecuting()和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.1 XML转实体 190

7.9.2实体转XML 190

7.10消息代理 191

7.11了解MessageHandler设计原理 191

7.11.1 Senparc.Weixin.MessageHandlers.MessageHandler结构 192

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

7.11.3抽象类及虚方法 198

7.11.4构造函数 198

7.11.5 Execute()方法 200

7.11.6 CancelExcute属性 201

7.11.7 OnExecuting()方法 202

7.11.8 DefaultResponseMessage()方法 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和ContainerltemCollection 208

8.4本地数据容器缓存策略:Local ContainerCacheStrategy 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.6 Redis分布式缓存策略:RedisContainerCacheStrategy 222

8.6.1 Redis简介 222

8.6.2安装Redis 222

8.6.3 StackExchange.Redis缓存扩展 222

8.6.4实现Redis缓存策略 224

8.6.5单元测试 225

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

8.7.1 Memcached简介 225

8.7.2安装Memcached 226

8.7.3 EnyimMemcached缓存扩展 226

8.7.4实现Memcached缓存策略 227

8.8缓存策略工厂:CacheStrategyFactory 227

8.8.1创建Cache StrategyFactory 227

8.8.2配置和使用Cache StrategyFactory 229

习题 230

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

9.1概述 231

9.2为什么需要分布式锁 231

9.3分布式锁的设计 232

9.3.1 IBaseCacheStrategy接口设计 232

9.3.2 ICacheLock接口设计 234

9.3.3分布式锁基类:BaseCacheLock 236

9.4本地锁 236

9.4.1 LocalCacheLock 236

9.4.2实现BeginCacheLock 238

9.5 Redis锁 238

9.5.1 RedisCacheLock 238

9.5.2 Redlock.CSharp 240

9.5.3实现BeginCacheLock 240

9.6 Memcached锁 241

9.6.1 MamcachedCacheLock 241

9.6.2实现BeginCacheLock 242

习题 242

第10章Container:数据容器 243

10.1设计思路及原理 243

10.2 BaseContainerBag 245

10.3 BaseContainer 246

10.4 AccessTokenContainer 253

10.5 JsApiTicketContainer 262

10.6 BindableBase 262

10.7 ContainerHelper 264

习题 265

第11章SenparcMessageQueue:消息队列 266

11.1设计原理 266

11.2队列项:SenparcMessageQueueltem 267

11.3消息队列:SenparcMessageQueue 268

11.3.1 GenerateKey()方法 269

11.3.2 MessageQueueDictionary 269

11.3.3 MessageQueueList 269

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

11.4自动线程处理:SenparcMessageQueueThreadUtility 272

11.4.1 SenparcMessageQueueThreadUtility 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.1 GET请求 284

12.3.2 POST请求 286

12.3.3 JSON请求 290

12.3.4文件上传/下载 292

12.3.5公共方法 293

12.4使用AccessToken请求接口:CommonJsonSend 293

12.4.1 Sent<T>()方法 293

12.4.2 JsonSetting 295

12.4.3 WeixinJsonConventer 298

12.5 AccessToken自动处理器:ApiHandlerWapper 299

习题 302

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

13.1 Debug模式设计原理 303

13.2 WeixinTrace 304

13.3异常处理 308

13.3.1 WeixinException 308

13.3.2 ErrorJsonResultException 309

13.3.3 MessageHandlerException 310

13.3.4 UnknownRequestMsgTypeException 311

13.3.5 UnRegisterAppIdException 311

13.3.6 WeixinMenuException 312

13.4微信官方在线调试工具 314

习题 315

第三部分Senparc&Weixin SDK接口介绍 318

第14章 微信接口 318

14.1微信接口概述 318

14.2开始使用微信接口 319

14.2.1获取接口调用凭据(AccessToken) 319

14.2.2获取凭证接口 320

14.2.3获取微信服务器IP地址 321

14.3自定义菜单管理 322

14.3.1自定义菜单 322

14.3.2个性化菜单 328

14.4消息管理 329

14.4.1发送客服消息 329

14.4.2发送消息-群发接口和原创校验 332

14.4.3发送消息-模板消息接口 334

14.4.4获取公众号的自动回复规则 334

14.5微信网页授权(OAuth) 334

14.6素材管理 335

14.6.1新增临时素材 335

14.6.2获取临时素材 335

14.6.3新增永久素材 335

14.6.4获取永久素材 335

14.6.5删除永久素材 335

14.6.6修改永久图文素材 336

14.6.7获取素材总数 336

14.6.8获取素材列表 336

14.7用户管理 336

14.7.1用户标签管理 336

14.7.2设置用户备注名 338

14.7.3获取用户基本信息(UnionID机制) 338

14.8账号管理 339

14.8.1创建二维码 339

14.8.2获取下载二维码的地址 339

14.8.3长链接转短链接 339

14.9数据统计接口 339

14.9.1用户分析数据接口 340

14.9.2图文分析数据 340

14.9.3消息分析数据 341

14.9.4接口分析数据接口 342

14.10微信JS-SDK 343

14.10.1获取验证地址 343

14.10.2获取AccessToken 343

14.10.3刷新access token 343

14.10.4获取用户基本信息 343

14.10.5检验授权凭证(access token)是否有效 343

14.11微信小店接口 344

14.11.1语义理解接口 344

14.12微信卡券接口 344

14.12.1创建卡券 344

14.12.2投放卡券 345

14.12.3核销卡券 346

14.12.4管理卡券 346

14.12.5会员卡专区 348

14.12.6朋友的券专区 349

14.12.7第三方代制专区 350

14.12.8第三方授权相关接口(开放平台) 352

14.13微信门店接口 352

14.13.1上传图片 352

14.13.2创建门店 352

14.13.3查询门店信息 353

14.13.4查询门店列表 353

14.13.5修改门店服务信息 353

14.13.6删除门店 353

14.13.7获取门店类目表 353

14.13.8设备功能介绍 353

14.14多客服功能 354

14.14.1客服管理接口 354

14.14.2多客服会话控制接口 355

14.14.3获取客服聊天记录接口 356

14.15 摇一摇周边 356

14.15.1申请开通摇一摇周边 356

14.15.2设备管理 356

14.15.3页面管理 357

14.15.4素材管理 358

14.15.5配置设备与页面的关联关系 358

14.15.6数据统计 359

14.15.7 HTML5页面获取设备信息 359

14.15.8获取设备及用户信息 360

14.15.9摇一摇红包 361

14.16微信连Wi-Fi 361

14.16.1第三方平台获取开插件wifi_token 361

14.16.2 Wi-Fi门店管理 362

14.16.3 Wi-Fi设备管理 362

14.16.4配置联网方式 363

14.16.5商家主页管理 363

14.16.6 Wi-Fi数据统计 364

14.16.7卡券投放 364

14.17小程序 364

14.18异步方法 365

习题 366

第15章 模板消息 367

15.1概述 367

15.2使用规则 367

15.3申请模板消息 369

15.3.1开通模板消息功能 369

15.3.2添加消息模板 370

15.3.3创建自定义消息模板 373

15.4接口介绍 374

15.4.1设置所属行业 374

15.4.2获取设置的行业信息 374

15.4.3获得模板ID(添加模板) 374

15.4.4获取模板列表 375

15.4.5删除模板 375

15.4.6发送模板消息 375

15.4.7事件推送 381

15.4.8异步方法 382

习题 383

第16章 微信网页授权(OAuth 2.0) 384

16.1 OAuth 2.0简介 384

16.2设置微信OAuth回调域名 386

16.3开发微信OAuth接口 387

16.3.1创建Controller 387

16.3.2 GetAuthorizeUrl()方法 388

16.3.3 GetAccessToken()方法 391

16.3.4 GetUserlnfo()方法 394

16.3.5 RefreshToken()方法 398

16.3.6 Auth()方法 398

16.4异步OAuth接口 399

16.5调试OAuth 399

16.5.1调试工具 399

16.5.2设置 400

16.6使用SenparcOAuthAttribute实现OAuth自动登录 403

16.6.1 SenparcOAuthAttribute定义 403

16.6.2使用SenparcOAuthAttribute 406

16.7解决OAuth出现40029 (invalid code)错误 408

16.7.1现象和问题 408

16.7.2原因 408

16.7.3解决方案一 411

16.7.4解决方案二 411

16.7.5解决方案三 412

16.7.6解决方案四 412

16.7.7解决方案总结 414

16.8一些误区和注意点 414

16.8.1每次打开页面都使用OAuth获取Openld 414

16.8.2认为不使用HTTPS没有关系 416

16.8.3在Callback (redirectUrl)页面直接输出页面 416

16.8.4短信通知包含需要OAuth的网页(体验问题) 417

16.8.5不使用OAuth,而使用菜单事件判断来访者身份 418

习题 419

第17章 其他帮助类及辅助接口 420

17.1概述 420

17.2序列化和JSON相关 420

17.2.1 SerializerHelper 420

17.2.2 WeixinJsonConventer 422

17.2.3 JsonSetting 422

17.3时间帮助类:DateTimeHelper 423

17.4加密解密 424

17.4.1 MD5 424

17.4.2 SHA 1 425

17.4.3 AES 426

17.5浏览器相关 427

17.5.1判断当前网页是否在浏览器内 427

17.6 JS-SDK 429

17.6.1获取签名信息 429

17.6.2 JsSdkUiPackage 430

17.6.3获取SHA1加密信息 432

17.6.4卡券相关 433

17.7地图及位置 435

17.7.1 LBS位置计算帮助类:GpsHelper 435

17.7.2百度地图 435

17.7.3谷歌地图 435

习题 436

第18章 微信网页开发:JS-SDK 437

18.1概述 437

18.2签名 438

18.2.1通过JsApiTicketContainer获取j sapi- ticket 438

18.2.2获取签名 439

18.3 JS-SDK使用步骤 439

18.3.1第一步:绑定域名 439

18.3.2第二步:引入JS文件 440

18.3.3第三步:通过config接口注入权限验证配置 441

18.3.4第四步:通过ready接口处理成功验证 442

18.3.5第五步:通过error接口处理失败验证 442

18.4接口调用说明 442

18.5基础接口 443

18.6具体业务接口 443

18.6.1分享接口 444

18.6.2图像接口 446

18.6.3音频接口 447

18.6.4智能接口 450

18.6.5设备信息 451

18.6.6地理位置 451

18.6.7摇一摇周边 452

18.6.8界面操作 452

18.6.9微信扫一扫 454

18.6.10微信小店 454

18.6.11微信支付 455

18.6.12微信卡券 455

18.7参考资料 458

18.7.1所有菜单项列表 458

18.7.2卡券扩展字段cardExt说明 459

18.7.3所有JS接口列表 459

习题 461

第19章 微信支付 462

19.1支付模式 463

19.1.1刷卡支付 463

19.1.2扫码支付 463

19.1.3公众号支付 463

19.1.4 APP支付 463

19.2申请微信支付 463

19.2.1流程介绍 463

19.2.2第一步:申请开户 464

19.2.3第二步:小额打款 466

19.2.4第三步:支付验证费用 467

19.3获取商户证书 468

19.3.1接收邮件 468

19.3.2安装操作证书 468

19.3.3下载证书 471

19.3.4一些注意点 474

19.4接口规则 475

19.4.1协议规则 475

19.4.2参数规定 476

19.4.3安全规范 479

19.4.4获取Openld 480

19.5公众号支付 480

19.5.1支付场景介绍 480

19.5.2公众号后台的配置 482

19.5.3设置测试目录 486

19.5.4商户后台的配置 487

19.5.5业务流程 489

19.5.6 HTML5页面调起支付API 491

19.6微信支付API 492

19.6.1统一下单 493

19.6.2查询订单 496

19.6.3关闭订单 497

19.6.4申请退款 498

19.6.5查询退款 499

19.6.6下载对账单 500

19.6.7支付结果通知 502

19.6.8交易保障 503

19.7企业付款 503

19.7.1概述 503

19.7.2企业付款API 505

19.7.3查询企业付款API 506

19.8微信支付Demo开发 507

19.8.1后端开发 507

19.8.2前端开发 514

19.9需要注意的一些事 517

19.9.1关于服务器 SSL版本 517

19.9.2关于IPv6 518

19.9.3关于阿里云主机 518

习题 518

第四部分 微信小程序 522

第20章 微信小程序 522

20.1注册小程序 523

20.2管理信息及微信认证 525

20.2.1信息设置 525

20.2.2微信认证 527

20.3准备开发 528

20.3.1开发参数设置 528

20.3.2添加开发者和体验者 532

20.3.3下载开发工具 532

20.3.4开发第一个小程序 533

20.3.5预览小程序 542

20.3.6发布小程序 542

20.4使用SDK进行后端开发 545

20.4.1 Senparc.Weixin.WxOpen.dll 545

20.4.2对接MessageHandler 545

20.4.3回复客服消息 551

20.4.4获取二维码 555

20.4.5其他高级接口 556

20.5使用模板消息 556

20.5.1概述 556

20.5.2第一步:选取消息模板 556

20.5.3第二步:设置并添加模板 558

20.5.4第三步:发送模板消息 559

20.5.5申请模板 563

20.6实现数据请求 565

20.7登录接口及用户信息管理 569

20.7.1登录:wx.login 569

20.7.2登录状态维护:SessionContainer 571

20.7.3验证:wx.checkSession 573

20.7.4签名加密 573

20.7.5加密数据解密算法 575

20.8实现WebSocket通信 578

20.8.1关于WebSocket 578

20.8.2在服务器上配置WebSocket 578

20.8.3使用Senparc.WebSocket进行WebSocket开发 580

20.9小程序的微信支付 591

20.10小程序开发过程中的常见问题 594

20.10.1使用HTTPS 594

20.10.2安装WMSVC证书 596

20.10.3申请免费的SSL证书 596

20.10.4解决Unexpected response code∶ 200错误 601

习题 602