開源庫Magicodes.WeChat.SDK整體介紹

 

目錄 git

1    概要    1github

2    主要特色    2數據庫

3    架構圖    8windows

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

 

  1. 概要

    博客使用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

 

  1. 主要特色

主要特色如上所示,下面再說點細節:

  1. 架構圖

 

  1. 構造器——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方法,不然,你的設置是無效設置。

  1. 函數管理器——WeChatFrameworkFuncsManager

WeChatFrameworkFuncsManager是本SDK的函數總管,經過它能夠註冊各類函數,以便更方便的使用本SDK。WeChatFrameworkFuncsManager是懶加載單例設計,請不要new。其有如下幾個主要方法:

這個是一個比較簡單的設計,不過值得注意的是,函數不是瞎註冊就行的,爲了便於你們對號入座,這裏使用了一個枚舉來對應相關的業務:

也許從以上內容並不能很好的幫助你理解這個設計,咱們來幾段註冊的代碼看看:

  1. 獲取Key——GetKey

使用租戶Id做爲Key,以確保不一樣的租戶加載不一樣的公衆號配置:

也能夠寫死,以下所示:

 

  1. 獲取公衆號配置——Config_GetWeChatConfigByKey

根據Key從數據庫獲取:

The Same,也能夠寫死:

注意,SDK只有配置沒有緩存的狀況下,纔會觸發該函數的執行。

  1. 其餘

其餘的就很少說了。簡單說明以下所示:

Config_GetWeChatPayConfigByKey:獲取支付配置,能夠在此編寫獲取支付配置的邏輯

APIFunc_TemplateMessageApi_Create:模板消息發送成功函數,能夠在此記錄發送日誌

APIFunc_QRCodeApi_Create:已棄用

APIFunc_GetAccessToken:獲取AccessToken。用於中控服務器模式,即從中控服務器獲取Accesstoken

 

  1. 配置管理器——WeChatConfigManager

WeChatConfigManager爲配置管理器,顧名思義,就是管理各類配置和憑據,而且維護其過時時間。WeChatConfigManager是懶加載單例設計,請不要new。

目前存儲有如下內容:

  • 公衆號配置信息
  • 微信支付配置信息
  • 訪問憑據
  • 憑證

其有如下方法可供使用:

 

  1. 接口上下文對象——WeChatApisContext

WeChatApisContext即接口上下文對象,該類爲懶加載單例模式。經過WeChatApisContext. Current來訪問。

通常狀況下,使用該對象能夠輕鬆訪問全部的接口,以下自定義菜單的查詢接口調用所示:

又以下面例子,二維碼接口調用示例:

一般狀況下,咱們是極力推薦以上方式來調用接口。可是,也有例外的情形,好比Key的註冊函數是依賴Cookie、Sesstion等對象的,而在某些情形下(好比公衆號服務器事件響應中),沒法經過這些對象獲取到key,這時,就須要經過如下方式來調用了。

 

  1. 開發實踐

    1. 開發流程圖

  1. 自定義菜單API調用Demo

    1. 初始化配置

這裏配置了構造器,而後註冊了兩個函數,分別用於獲取Key以及獲取公衆號配置。

  1. 使用

如上面所示,經過WeChatApiContext獲取接口,而後調用基本無需額外傳遞配置參數和Token等。針對業務狀況,部分複雜API還支持經過JSON字符串來調用(內部會根據JSON字符串結合轉換器來反序列化)。,

相關文章
相關標籤/搜索