开源库Magicodes.WeChat.SDK总体介绍
2016-11-14 12:18
169 查看
目录
1 概要 1
2 主要特点 2
3 架构图 8
3.1 构造器——WeChatSDKBuilder 8
3.2 函数管理器——WeChatFrameworkFuncsManager 9
3.2.1 获取Key——GetKey 11
3.2.2 获取公众号配置——Config_GetWeChatConfigByKey 12
3.2.3 其他 12
3.3 配置管理器——WeChatConfigManager 13
3.4 接口上下文对象——WeChatApisContext 15
4 开发实践 16
4.1 开发流程图 16
4.2 自定义菜单API调用Demo 17
4.2.1 初始化配置 17
4.2.2 使用 17
本篇主要对MAGICODES.WECHAT.SDK进行简单总体的介绍。通过本篇教程,您可以对Magicodes.WeChat.SDK进行一个全面的了解。
注意:MAGICODES.WECHAT.SDK为心莱团队封装的轻量级微信SDK,现已全部开源,开源库地址为:https://github.com/xin-lai/Magicodes.WeChat.SDK
官方博客:http://www.cnblogs.com/codelove/
相关开源库地址:https://github.com/xin-lai
交流QQ群(Magicodes开源库交流群):346487194
Nuget包地址:https://www.nuget.org/packages?q=magicodes
主要特点如上所示,下面再说点细节:
为了方便扩展,日志记录器使用了Magicodes.Logger,存储器使用了Magicodes.Storage,这两个均为开源库,开源地址为:https://github.com/xin-lai
Magicodes.Logger目前提供了DebugLogger和NLog的具体实现,如果不满足需求,您完全可以编写自己的实现。
Magicodes.Storage目前实现了本地资源存储,即将实现阿里云、windows Azure等云存储。
了解了这些,我们接下来的需要知道的是:
在程序初始化时,我们需要构建这些对象,如下所示:
通过构造器设置了Api日志记录器之后,所有的API请求都会有相应的日志级别的日志输出。设置了支付日志记录器之后,所有的支付请求均由此记录器记录相关数据。存储提供程序后续会用到,目前是预留。
注意Create和Build方法,请不要试图new构造器,请使用Create来返回一个,处理完了之后,切记一定要调用Build方法,否则,你的设置是无效设置。
这个是一个比较简单的设计,不过值得注意的是,函数不是瞎注册就行的,为了便于大家对号入座,这里使用了一个枚举来对应相关的业务:
也许从以上内容并不能很好的帮助你理解这个设计,我们来几段注册的代码看看:
也可以写死,如下所示:
The Same,也可以写死:
注意,SDK只有配置没有缓存的情况下,才会触发该函数的执行。
Config_GetWeChatPayConfigByKey:获取支付配置,可以在此编写获取支付配置的逻辑
APIFunc_TemplateMessageApi_Create:模板消息发送成功函数,可以在此记录发送日志
APIFunc_QRCodeApi_Create:已弃用
APIFunc_GetAccessToken:获取AccessToken。用于中控服务器模式,即从中控服务器获取Accesstoken
目前存储有以下内容:
公众号配置信息
微信支付配置信息
访问凭据
凭证
其有以下方法可供使用:
一般情况下,使用该对象可以轻松访问所有的接口,如下自定义菜单的查询接口调用所示:
又如下面例子,二维码接口调用示例:
通常情况下,我们是极力推荐以上方式来调用接口。但是,也有例外的情形,比如Key的注册函数是依赖Cookie、Sesstion等对象的,而在某些情形下(比如公众号服务器事件响应中),无法通过这些对象获取到key,这时,就需要通过以下方式来调用了。
这里配置了构造器,然后注册了两个函数,分别用于获取Key以及获取公众号配置。
如上面所示,通过WeChatApiContext获取接口,然后调用基本无需额外传递配置参数和Token等。针对业务情况,部分复杂API还支持通过JSON字符串来调用(内部会根据JSON字符串结合转换器来反序列化)。,
1 概要 1
2 主要特点 2
3 架构图 8
3.1 构造器——WeChatSDKBuilder 8
3.2 函数管理器——WeChatFrameworkFuncsManager 9
3.2.1 获取Key——GetKey 11
3.2.2 获取公众号配置——Config_GetWeChatConfigByKey 12
3.2.3 其他 12
3.3 配置管理器——WeChatConfigManager 13
3.4 接口上下文对象——WeChatApisContext 15
4 开发实践 16
4.1 开发流程图 16
4.2 自定义菜单API调用Demo 17
4.2.1 初始化配置 17
4.2.2 使用 17
概要
博客使用Word发博,发布后,排版会出现很多问题,敬请谅解。另外Word发博代码格式显示凌乱,因此相关代码均使用图片替代。可加群获取原始文档。本篇主要对MAGICODES.WECHAT.SDK进行简单总体的介绍。通过本篇教程,您可以对Magicodes.WeChat.SDK进行一个全面的了解。
注意:MAGICODES.WECHAT.SDK为心莱团队封装的轻量级微信SDK,现已全部开源,开源库地址为:https://github.com/xin-lai/Magicodes.WeChat.SDK
官方博客:http://www.cnblogs.com/codelove/
相关开源库地址:https://github.com/xin-lai
交流QQ群(Magicodes开源库交流群):346487194
Nuget包地址:https://www.nuget.org/packages?q=magicodes
主要特点
主要特点如上所示,下面再说点细节:
架构图
构造器——WeChatSDKBuilder
构造器用于构造SDK的一些初始化配置,比如日志记录器、存储器等。为了方便扩展,日志记录器使用了Magicodes.Logger,存储器使用了Magicodes.Storage,这两个均为开源库,开源地址为:https://github.com/xin-lai
Magicodes.Logger目前提供了DebugLogger和NLog的具体实现,如果不满足需求,您完全可以编写自己的实现。
Magicodes.Storage目前实现了本地资源存储,即将实现阿里云、windows Azure等云存储。
了解了这些,我们接下来的需要知道的是:
在程序初始化时,我们需要构建这些对象,如下所示:
通过构造器设置了Api日志记录器之后,所有的API请求都会有相应的日志级别的日志输出。设置了支付日志记录器之后,所有的支付请求均由此记录器记录相关数据。存储提供程序后续会用到,目前是预留。
注意Create和Build方法,请不要试图new构造器,请使用Create来返回一个,处理完了之后,切记一定要调用Build方法,否则,你的设置是无效设置。
函数管理器——WeChatFrameworkFuncsManager
WeChatFrameworkFuncsManager是本SDK的函数总管,通过它可以注册各种函数,以便更方便的使用本SDK。WeChatFrameworkFuncsManager是懒加载单例设计,请不要new。其有以下几个主要方法:这个是一个比较简单的设计,不过值得注意的是,函数不是瞎注册就行的,为了便于大家对号入座,这里使用了一个枚举来对应相关的业务:
也许从以上内容并不能很好的帮助你理解这个设计,我们来几段注册的代码看看:
获取Key——GetKey
使用租户Id作为Key,以确保不同的租户加载不同的公众号配置:也可以写死,如下所示:
获取公众号配置——Config_GetWeChatConfigByKey
根据Key从数据库获取:The Same,也可以写死:
注意,SDK只有配置没有缓存的情况下,才会触发该函数的执行。
其他
其他的就不多说了。简单说明如下所示:Config_GetWeChatPayConfigByKey:获取支付配置,可以在此编写获取支付配置的逻辑
APIFunc_TemplateMessageApi_Create:模板消息发送成功函数,可以在此记录发送日志
APIFunc_QRCodeApi_Create:已弃用
APIFunc_GetAccessToken:获取AccessToken。用于中控服务器模式,即从中控服务器获取Accesstoken
配置管理器——WeChatConfigManager
WeChatConfigManager为配置管理器,顾名思义,就是管理各种配置和凭据,并且维护其过期时间。WeChatConfigManager是懒加载单例设计,请不要new。目前存储有以下内容:
公众号配置信息
微信支付配置信息
访问凭据
凭证
其有以下方法可供使用:
接口上下文对象——WeChatApisContext
WeChatApisContext即接口上下文对象,该类为懒加载单例模式。通过WeChatApisContext. Current来访问。一般情况下,使用该对象可以轻松访问所有的接口,如下自定义菜单的查询接口调用所示:
又如下面例子,二维码接口调用示例:
通常情况下,我们是极力推荐以上方式来调用接口。但是,也有例外的情形,比如Key的注册函数是依赖Cookie、Sesstion等对象的,而在某些情形下(比如公众号服务器事件响应中),无法通过这些对象获取到key,这时,就需要通过以下方式来调用了。
开发实践
开发流程图
自定义菜单API调用Demo
初始化配置
这里配置了构造器,然后注册了两个函数,分别用于获取Key以及获取公众号配置。
使用
如上面所示,通过WeChatApiContext获取接口,然后调用基本无需额外传递配置参数和Token等。针对业务情况,部分复杂API还支持通过JSON字符串来调用(内部会根据JSON字符串结合转换器来反序列化)。,
相关文章推荐
- 开源库Magicodes.WeChat.SDK总体介绍
- 使用开源库MAGICODES.WECHAT.SDK进行微信公众号支付开发
- 使用开源库MAGICODES.WECHAT.SDK进行微信公众号支付开发
- Heritrix源码分析(七) Heritrix总体介绍
- [转]微信公众平台WeChat PHP SDK
- YbSoftwareFactory 代码生成插件【七】:YbRapidSolution for WinForm 插件生成项目总体架构介绍
- EQueue - 一个C#写的开源分布式消息队列的总体介绍
- Android SDK Manager 的介绍
- Apache Spark 的设计与实现(总体介绍)
- 系统引导过程总体介绍
- Eclipse在线升级Android ADT和SDK(4.x)方法介绍
- ArcSDE SDK介绍
- 快速高效接入SDK——总体思路和架构
- 暴风云视频平台SDK使用介绍(六)-- 查询和删除
- SAPI SDK的介绍
- uav 总体介绍
- android sdk tool 的介绍
- SpringMVC流程框架总体介绍
- Android SDK目录结构和工具介绍
- Struts2(一)——总体介绍