微信公眾平臺 SDK( .net 版本):weixinSDK.net

jopen 9年前發布 | 61K 次閱讀 weixinSDK.net

weixinSDK.net 是一個超級輕量級的,像 Python 一樣自由書寫代碼的微信公眾平臺 SDK( .net 版本)。

1.使用對象

本API目前只針對微信公眾平臺開發者文檔所有API進行包裝:http://mp.weixin.qq.com/wiki/home/index.html

也就是微信服務號和訂閱號的開發,不支持微信企業號和移動端API。

但是不排除企業號和移動端API共有部分的調用,對于這部分本SDK不保證其能調用成功。

2.API包裝的核心思想

運用Dynamic(.net 4.0以及以上版本支持)在程序中傳遞微信所需的結構化(xml,json)對象,減少大量代碼,實現輕量級。 讓您可以像Python一樣書寫代碼。

3.SDK優勢

(1)輕量級,摒棄了大量對微信API調用過程中的傳遞對象的包裝,代碼至少減少1/2,和同級.net版本的微信SDK相比是最輕量級的。

(2)結構清晰,和官方API列表一一對應,便于開發者快速定位。

(3)簡單靈活,只包裝官方最底層的,最原始的API,便于開發者自由發揮。

4.API目錄說明

(1)AcceptMessageAPI.cs 對應微信API的 "接收消息" 注意:驗證消息真實性在BasicAPI的CheckSignature中. 接收消息文字、圖片、視頻、音頻、位置、鏈接和事件消息都包裝在AcceptMessageAPI.Parse(string message)方法中, 因為他們都可以歸為消息,所以只需要提供一個統一的解析方法即可。當然,這個方法返回的是一個動態對象。 接受語音識別消息,只是在返回的語音消息xml數據中多了Recognition(注:需要公眾號有接收語音識別結果的權限)

(2)AdvanceMassReplayMessageAPI.cs 對應微信API的 "發送消息”=》"高級群發消息接口"

(3)BasicAPI.cs 對應微信API的 "基礎支持"

(4)CustomMenuAPI.cs 對應微信API的 "自定義菜單管理"

(5)InterfaceStatisticsAPI.cs 對應微信API的 "數據統計接口" =>"接口分析數據接口"

(6)MessageStatisticsAPI.cs 對應微信API的 "數據統計接口" =>"消息分析數據接口"

(7)MutliServiceAPI.cs 對應微信API的 "多客服功能"

(8)NewsStatisticsAPI.cs 對應微信API的 "數據統計接口" =>"圖文分析數據接口"

(9)PromotionAPI.cs 對應微信API的 "帳號管理"

(10)ReplayActiveMessageAPI.cs 對應微信API的 "發送消息”=》"客服接口"=>"發送(主動)客服消息"

(11)ReplayPassiveMessageAPI.cs 對應微信API的 "發送消息”=》"被動回復消息"

(12)ServiceAdminAPI.cs 對應微信API的 "多客服功能"=>"客服管理"

(13)SmartAPI.cs 對應微信API的 "智能接口"

(14)TemplateMessageAPI.cs 對應微信API的 "發送消息”=》"模板消息接口"

(15)UserAdminAPI.cs 對應微信API的 "用戶管理"

注 意:獲取用戶地理位置在接受Location事件時獲取,解析地址位置數據包在AcceptMessageAPI.Parse(string message)方法中,詳細見:(2)AcceptMessageAPI.cs 。 網頁授權獲取用戶基本信息和獲取用戶網絡狀態(JS)接口暫時不包含在本SDK中。

(16)UserStatisticsAPI.cs 對應微信API的 "數據統計接口" =>"用戶分析數據接口"

(17)JSSDK/JSAPI.cs 對應微信API的 "微信JS接口" =>"微信JS-SDK說明文檔" =>"附錄1-JS-SDK使用權限簽名算法"

(18)微信支付

Pay/WxPayAPI.cs                             對應微信支付API =>公共API

Pay/WxMicroPayAP.cs                         對應微信支付API =>被掃支付

Pay/WxBizPayAP.cs                           對應微信支付API =>掃碼原生支付

官方文檔:http://pay.weixin.qq.com/wiki/doc/api/index.php

其中微信內網頁支付 Demo已經在SDK中實現,具體請參考:

Deepleo.Web/Controllers/WXPayController.cs

Deepleo.Web/Controllers/JSSDKController.cs/Pay

Deepleo.Web/Views/JSSDK/Pay.cshtml

(19)OAuth2API.cs 對應微信API的 用戶管理=》 "網頁授權獲取用戶基本信息”

(20)微信卡券

Card/CreateCardAPI.cs  創建卡券接口

 Card/SendCardAPI.cs    卡券投放接口

 Card/UseCardAPI.cs     卡券核銷接口

 Card/ManageCardAPI.cs  卡券管理接口

 Card/Special           特殊卡票接口

 Card/TestWhiteAPI.cs   設置測試用戶白名單

(21) 微信小店(微信商鋪API手冊V1.15)

Merchant/ProductAPI.cs  商品管理接口

 Merchant/ExpressAPI.cs  郵費模板管理接口

 Merchant/StockAPI.cs    庫存管理接口

 Merchant/GroupAPI.cs    分組管理接口

 Merchant/ShelfAPI.cs    貨架管理接口

 Merchant/OrderAPI.cs    訂單管理接口

 Merchant/CommonAPI.cs   功能接口

設備功能接口暫未開發。

5.demo Deepleo.Web項目,請編譯后發布到服務器,并修改web.config(appid,appsecrect,Token,EncodingAESKey), 在后臺將服務地址改為:[域名]/weixin。demo在線演示請關注微信公眾號:

(1) 鳴創軟件(訂閱號所有可以實現的功能演示,)

(2) 慢做菜(基于WeixinSDK實現的菜譜查詢服務)

(3) http://weixinsdk.deepleo.com/jssdk (js-sdk演示,需要在微信中打開, 由于本公眾號只是未認證訂閱號,故請對照后臺權限測試)

6.問題幫助

1)API返回的Dynamic對象應該如何使用?

答:如果您調用API,return的是

a.由DynamicJson.Parse轉換而來,您可以用.[屬性名稱] 訪問到該屬性的值;

譬如 BasicAPI.cs中GetAccessToken:

var token = DynamicJson.Parse(result.Content.ReadAsStringAsync().Result);

那么調用時:string newToken = BasicAPI.GetAccessToken(AppId, AppSecrect).access_token;

b.如果是DynamicXml轉換而來的,您可以用.[屬性名稱].Value 訪問到該屬性的值;

譬如 AcceptMessageAPI.cs中Parse:

msg.Body = new DynamicXml(message);

string msgType = msg.Body.MsgType.Value;

2) demo項目發布之前如何配置?

答:需要修改web.config里appSettings節點下關于網站配置和微信相關配置,如果不需要的功能不用填寫。

    讀取這些配置的類在App_start/WeixinConfig.cs中,您可以根據自己的業務邏輯更改實現方式。

    譬如,如果您一個網站需要管理多個微信公眾號的情況。

7.注意事項

1)由于本SDK只是簡單包裝了官方API,API調用有諸多限制(譬如權限限制,次數限制),所以開發者還是需要仔細閱讀官方文檔。

2)微信現在還不是很成熟,如果遇到調用失敗的問題,請查看官方公告或者多試幾次。

3)微信公眾平臺可以申請測試號,如果您的產品已經上線,但是發布新功能還沒有在生產環境中驗證過,申請測試號是不錯的選擇。

4)微信自帶開發者問答系統,上面都是前車之鑒,有一定參考價值。

8.源代碼托管:https://github.com/night-king/weixinSDK

9.鄭重申明

本SDK不收費,堅持開源,沒有未公開的api,項目中的代碼是我自己開發過的項目積累。

10.捐助

如果這個項目對您有用,我們歡迎各方任何形式的捐助,也包括參與到項目代碼更新或意見反饋中來。謝謝!資金捐助:



項目主頁:http://www.baiduhome.net/lib/view/home/1428478160010

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!