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


 

目錄

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

 

  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字符串結合轉換器來反序列化)。,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM