微信开发深度解析:微信公众号、小程序高效开发秘籍【全本 您所在的位置:网站首页 微信公众号前端开发流程 微信开发深度解析:微信公众号、小程序高效开发秘籍【全本

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

#微信开发深度解析:微信公众号、小程序高效开发秘籍【全本| 来源: 网络整理| 查看: 265

内容简介

推荐序

前言

致谢

软件著作权及商标说明

第一部分 微信基础介绍

第1章使用本书

1.1 我是否适合读这本书

1.2 如何用好这本书

1.3 各章节导读

1.4 名词解释

1.5 学习资源

1.6 帮助我们改进

习题

第2章策划你的第一个微信项目

2.1 需求分析

2.1.1 沟通需求

2.1.2 整理需求

2.1.3 制定方案

2.2 数据库设计

2.3 接口统计

2.4 业务逻辑

2.5 技术架构

2.6 微信公众号策划

2.7 统一培训

习题

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

3.1 准备工作

3.1.1 基本技能

3.1.2 开发环境

3.1.3 域名

3.1.4 服务器

3.1.5 SSL证书

3.2 消息通信

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

3.2.2 XML通信格式

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

3.3 访问网页

3.4 使用测试号进行测试

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

3.5.1 下载和安装

3.5.2 使用开发者工具

3.6 单元测试

3.7 在线接口调试工具

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

3.8.1 服务号

3.8.2 订阅号

3.9 微信公众号申请

习题

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

第4章Senparc.Weixin SDK设计架构

4.1 开源项目

4.2 开源协议

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

4.4 文件目录

4.4.1 根目录

4.4.2 src目录

4.5 Senparc.Weixin.dll

4.5.1 Senparc.Weixin文件结构

4.5.2 Senparc.Weixin类库结构

4.5.3 使用Senparc.Weixin注意点

4.6 Senparc.Weixin.MP.dll

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

4.6.2 Senparc.Weixin.MP.dll类库

4.7 Senparc.Weixin.WxOpen.dll

4.8 Senparc.Weixin.MP.MvcExtension.dll

4.9 Senparc.Weixin.Cache.Redis.dll

4.10 Senparc.Weixin.Cache.Memcached.dll

4.11 其他类库

4.12 单元测试

4.13 修改源代码和贡献代码

4.13.1 注册 GitHub 账号

4.13.2 Fork项目

4.13.3 修改代码

4.13.4 提交代码

4.13.5 贡献代码

习题

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

5.1 开发准备

5.1.1 安装开发环境及工具

5.1.2 创建解决方案

5.1.3 创建项目

5.1.4 使用 Nuget 安装 Senparc.Weixin SDK

5.2 开发

5.2.1 准备基础框架

5.2.2 创建数据库

5.2.3 同步数据库

5.2.4 建立数据库框架

5.2.5 开发Repository仓储模块

5.2.6 缓存

5.2.7 开发业务逻辑

5.2.8 Controller控制器

5.2.9 Web项目和UI

5.3 单元测试

5.4 部署

5.5 消息验证和线上测试

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

习题

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

6.1 文件位置及结构

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

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

6.1.3 Senparc.Weixin.MP.Sample Web项目

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

6.2 配置项目

6.2.1 Web.Config文件

6.2.2 Global.asax 文件

6.2.3 首页

6.3 微信消息

6.3.1 消息处理

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

6.4 微信菜单

6.5 OAuth

6.6 JS-SDK

6.7 微信支付

6.8 素材

6.9 缓存测试

6.10 异步方法

6.11 微信内置浏览器过滤

6.12 微信小程序

6.12.1 消息处理

6.12.2 模板消息

6.12.3 WebSocket

6.13 其他

6.13.1 开放平台

6.13.2 企业号

6.13.3 文档下载

6.14 WebForms项目

6.15 单元测试

6.15.1 单元测试项目

6.15.2 单元测试方法

6.16 配置服务器和参数

6.16.1 配置IIS

6.16.2 安装 .NET Framework 4.5

6.16.3 设置IIS站点

6.16.4 解析域名

6.16.5 检查 Web.config 文件

6.17 部署

习题

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

7.1 设计思想

7.2 消息类型

7.2.1 概述

7.2.2 命名规则

7.2.3 全局消息基类

7.2.4 请求消息

7.2.5 响应消息

7.3 原始消息处理方法

7.4 使用MessageHandler

7.4.1 第一步:通过Nuget安装Senparc.Weixin.MP

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

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

7.5 OnExecuting() 和OnExecuted()

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

7.6.1 消息容器:MessageContainer

7.6.2 消息队列:MessageQueue

7.6.3 单用户上下文:MessageContext

7.6.4 全局上下文:WeixinContext

7.6.5 上下文移除事件:WeixinContextRemovedEventArgs

7.7 消息去重

7.8 消息加密

7.9 消息格式转换

7.9.1 XML转实体

7.9.2 实体转XML

7.10 消息代理

7.11 了解MessageHandler设计原理

7.11.1 Senparc.Weixin.MessageHandlers.MessageHandler结构

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

7.11.3 抽象类及虚方法

7.11.4 构造函数

7.11.5 Execute() 方法

7.11.6 CancelExcute属性

7.11.7 OnExecuting()方法

7.11.8 DefaultResponseMessage() 方法

习题

第8章缓存策略

8.1 设计原理

8.2 基础缓存策略接口:IBaseCacheStrategy

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

8.3.1 原始IContainerCacheStragegy设计思路

8.3.2 优化IContainerCacheStragegy设计思路

8.3.3 优化IContainerItemCollection和ContainerItemCollection

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

8.4.1 创建LocalContainerCacheStrategy类

8.4.2 定义数据源

8.4.3 实现容器缓存策略

8.4.4 运用单例模式

8.4.5 测试

8.5 分布式缓存

8.5.1 起因

8.5.2 负载均衡

8.5.3 分布式缓存

8.5.4 分布式使用的注意点

8.6 Redis分布式缓存策略:RedisContainerCacheStrategy

8.6.1 Redis简介

8.6.2 安装Redis

8.6.3 StackExchange.Redis缓存扩展

8.6.4 实现Redis缓存策略

8.6.5 单元测试

8.7 Memcached分布式缓存策略:MemcachedContainerCacheStrategy

8.7.1 Memcached简介

8.7.2 安装Memcached

8.7.3 EnyimMemcached缓存扩展

8.7.4 实现Memcached缓存策略

8.8 缓存策略工厂:CacheStrategyFactory

8.8.1 创建CacheStrategyFactory

8.8.2 配置和使用CacheStrategyFactory

习题

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

9.1 概述

9.2 为什么需要分布式锁

9.3 分布式锁的设计

9.3.1 IBaseCacheStrategy 接口设计

9.3.2 ICacheLock 接口设计

9.3.3 分布式锁基类:BaseCacheLock

9.4 本地锁

9.4.1 LocalCacheLock

9.4.2 实现 BeginCacheLock

9.5 Redis 锁

9.5.1 RedisCacheLock

9.5.2 Redlock.CSharp

9.5.3 实现BeginCacheLock

9.6 Memcached锁

9.6.1 MamcachedCacheLock

9.6.2 实现BeginCacheLock

习题

第10章Container:数据容器

10.1 设计思路及原理

10.2 BaseContainerBag

10.3 BaseContainer

10.4 AccessTokenContainer

10.5 JsApiTicketContainer

10.6 BindableBase

10.7 ContainerHelper

习题

第11章SenparcMessageQueue:消息队列

11.1 设计原理

11.2 队列项:SenparcMessageQueueItem

11.3 消息队列:SenparcMessageQueue

11.3.1 GenerateKey() 方法

11.3.2 MessageQueueDictionary

11.3.3 MessageQueueList

11.3.4 有关Dictionary和List的效率测试

11.4 自动线程处理:SenparcMessageQueueThreadUtility

11.4.1 SenparcMessageQueueThreadUtility

11.4.2 线程工具类:ThreadUtility

11.4.3 优化扩展

习题

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

12.1 设计规则

12.2 响应类型

12.2.1 基类:WxJsonResult

12.2.2 扩展响应类型

12.3 请求

12.3.1 GET请求

12.3.2 POST请求

12.3.3 JSON 请求

12.3.4 文件上传/下载

12.3.5 公共方法

12.4 使用AccessToken请求接口:CommonJsonSend

12.4.1 Sent() 方法

12.4.2 JsonSetting

12.4.3 WeixinJsonConventer

12.5 AccessToken自动处理器:ApiHandlerWapper

习题

第13章Debug模式及异常处理

13.1 Debug模式设计原理

13.2 WeixinTrace

13.3 异常处理

13.3.1 WeixinException

13.3.2 ErrorJsonResultException

13.3.3 MessageHandlerException

13.3.4 UnknownRequestMsgTypeException

13.3.5 UnRegisterAppIdException

13.3.6 WeixinMenuException

13.4 微信官方在线调试工具

习题

第三部分 Senparc.Weixin SDK接口介绍

第14章微信接口

14.1 微信接口概述

14.2 开始使用微信接口

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

14.2.2 获取凭证接口

14.2.3 获取微信服务器IP地址

14.3 自定义菜单管理

14.3.1 自定义菜单

14.3.2 个性化菜单

14.4 消息管理

14.4.1 发送客服消息

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

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

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

14.5 微信网页授权(OAuth)

14.6 素材管理

14.6.1 新增临时素材

14.6.2 获取临时素材

14.6.3 新增永久素材

14.6.4 获取永久素材

14.6.5 删除永久素材

14.6.6 修改永久图文素材

14.6.7 获取素材总数

14.6.8 获取素材列表

14.7 用户管理

14.7.1 用户标签管理

14.7.2 设置用户备注名

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

14.8 账号管理

14.8.1 创建二维码

14.8.2 获取下载二维码的地址

14.8.3 长链接转短链接

14.9 数据统计接口

14.9.1 用户分析数据接口

14.9.2 图文分析数据

14.9.3 消息分析数据

14.9.4 接口分析数据接口

14.10 微信JS-SDK

14.10.1 获取验证地址

14.10.2 获取AccessToken

14.10.3 刷新access_token

14.10.4 获取用户基本信息

14.10.5 检验授权凭证(access_token)是否有效

14.11 微信小店接口

14.11.1 语义理解接口

14.12 微信卡券接口

14.12.1 创建卡券

14.12.2 投放卡券

14.12.3 核销卡券

14.12.4 管理卡券

14.12.5 会员卡专区

14.12.6 朋友的券专区

14.12.7 第三方代制专区

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

14.13 微信门店接口

14.13.1 上传图片

14.13.2 创建门店

14.13.3 查询门店信息

14.13.4 查询门店列表

14.13.5 修改门店服务信息

14.13.6 删除门店

14.13.7 获取门店类目表

14.13.8 设备功能介绍

14.14 多客服功能

14.14.1 客服管理接口

14.14.2 多客服会话控制接口

14.14.3 获取客服聊天记录接口

14.15 摇一摇周边

14.15.1 申请开通摇一摇周边

14.15.2 设备管理

14.15.3 页面管理

14.15.4 素材管理

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

14.15.6 数据统计

14.15.7 HTML5页面获取设备信息

14.15.8 获取设备及用户信息

14.15.9 摇一摇红包

14.16 微信连Wi-Fi

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

14.16.2 Wi-Fi门店管理

14.16.3 Wi-Fi设备管理

14.16.4 配置联网方式

14.16.5 商家主页管理

14.16.6 Wi-Fi数据统计

14.16.7 卡券投放

14.17 小程序

14.18 异步方法

习题

第15章模板消息

15.1 概述

15.2 使用规则

15.3 申请模板消息

15.3.1 开通模板消息功能

15.3.2 添加消息模板

15.3.3 创建自定义消息模板

15.4 接口介绍

15.4.1 设置所属行业

15.4.2 获取设置的行业信息

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

15.4.4 获取模板列表

15.4.5 删除模板

15.4.6 发送模板消息

15.4.7 事件推送

15.4.8 异步方法

习题

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

16.1 OAuth 2.0简介

16.2 设置微信OAuth回调域名

16.3 开发微信OAuth接口

16.3.1 创建Controller

16.3.2 GetAuthorizeUrl()方法

16.3.3 GetAccessToken() 方法

16.3.4 GetUserInfo() 方法

16.3.5 RefreshToken() 方法

16.3.6 Auth()方法

16.4 异步OAuth接口

16.5 调试OAuth

16.5.1 调试工具

16.5.2 设置

16.6 使用SenparcOAuthAttribute实现OAuth自动登录

16.6.1 SenparcOAuthAttribute 定义

16.6.2 使用 SenparcOAuthAttribute

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

16.7.1 现象和问题

16.7.2 原因

16.7.3 解决方案一

16.7.4 解决方案二

16.7.5 解决方案三

16.7.6 解决方案四

16.7.7 解决方案总结

16.8 一些误区和注意点

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

16.8.2 认为不使用HTTPS没有关系

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

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

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

习题

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

17.1 概述

17.2 序列化和JSON相关

17.2.1 SerializerHelper

17.2.2 WeixinJsonConventer

17.2.3 JsonSetting

17.3 时间帮助类:DateTimeHelper

17.4 加密解密

17.4.1 MD5

17.4.2 SHA1

17.4.3 AES

17.5 浏览器相关

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

17.6 JS-SDK

17.6.1 获取签名信息

17.6.2 JsSdkUiPackage

17.6.3 获取 SHA1 加密信息

17.6.4 卡券相关

17.7 地图及位置

17.7.1 LBS位置计算帮助类:GpsHelper

17.7.2 百度地图

17.7.3 谷歌地图

习题

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

18.1 概述

18.2 签名

18.2.1 通过JsApiTicketContainer获取jsapi_ticket

18.2.2 获取签名

18.3 JS-SDK使用步骤

18.3.1 第一步:绑定域名

18.3.2 第二步:引入JS文件

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

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

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

18.4 接口调用说明

18.5 基础接口

18.6 具体业务接口

18.6.1 分享接口

18.6.2 图像接口

18.6.3 音频接口

18.6.4 智能接口

18.6.5 设备信息

18.6.6 地理位置

18.6.7 摇一摇周边

18.6.8 界面操作

18.6.9 微信扫一扫

18.6.10 微信小店

18.6.11 微信支付

18.6.12 微信卡券

18.7 参考资料

18.7.1 所有菜单项列表

18.7.2 卡券扩展字段cardExt说明

18.7.3 所有JS接口列表

习题

第19章微信支付

19.1 支付模式

19.1.1 刷卡支付

19.1.2 扫码支付

19.1.3 公众号支付

19.1.4 APP支付

19.2 申请微信支付

19.2.1 流程介绍

19.2.2 第一步:申请开户

19.2.3 第二步:小额打款

19.2.4 第三步:支付验证费用

19.3 获取商户证书

19.3.1 接收邮件

19.3.2 安装操作证书

19.3.3 下载证书

19.3.4 一些注意点

19.4 接口规则

19.4.1 协议规则

19.4.2 参数规定

19.4.3 安全规范

19.4.4 获取OpenId

19.5 公众号支付

19.5.1 支付场景介绍

19.5.2 公众号后台的配置

19.5.3 设置测试目录

19.5.4 商户后台的配置

19.5.5 业务流程

19.5.6 HTML5页面调起支付API

19.6 微信支付API

19.6.1 统一下单

19.6.2 查询订单

19.6.3 关闭订单

19.6.4 申请退款

19.6.5 查询退款

19.6.6 下载对账单

19.6.7 支付结果通知

19.6.8 交易保障

19.7 企业付款

19.7.1 概述

19.7.2 企业付款 API

19.7.3 查询企业付款 API

19.8 微信支付Demo开发

19.8.1 后端开发

19.8.2 前端开发

19.9 需要注意的一些事

19.9.1 关于服务器SSL版本

19.9.2 关于IPv6

19.9.3 关于阿里云主机

习题

第四部分 微信小程序

第20章微信小程序

20.1 注册小程序

20.2 管理信息及微信认证

20.2.1 信息设置

20.2.2 微信认证

20.3 准备开发

20.3.1 开发参数设置

20.3.2 添加开发者和体验者

20.3.3 下载开发工具

20.3.4 开发第一个小程序

20.3.5 预览小程序

20.3.6 发布小程序

20.4 使用 SDK 进行后端开发

20.4.1 Senparc.Weixin.WxOpen.dll

20.4.2 对接MessageHandler

20.4.3 回复客服消息

20.4.4 获取二维码

20.4.5 其他高级接口

20.5 使用模板消息

20.5.1 概述

20.5.2 第一步:选取消息模板

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

20.5.4 第三步:发送模板消息

20.5.5 申请模板

20.6 实现数据请求

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

20.7.1 登录:wx.login

20.7.2 登录状态维护:SessionContainer

20.7.3 验证:wx.checkSession

20.7.4 签名加密

20.7.5 加密数据解密算法

20.8 实现WebSocket 通信

20.8.1 关于 WebSocket

20.8.2 在服务器上配置 WebSocket

20.8.3 使用 Senparc.WebSocket 进行 WebSocket 开发

20.9 小程序的微信支付

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

20.10.1 使用HTTPS

20.10.2 安装WMSVC证书

20.10.3 申请免费的SSL证书

20.10.4 解决Unexpected response code: 200 错误

习题



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有