weixinSDK.net微信公眾平臺 SDK
weixinSDK.net 是一個超級輕量級的,像 Python 一樣自由書寫代碼的微信公眾平臺 SDK( .net 版本)。
1.使用對象
本API目前只針對微信公眾平臺開發(fā)者文檔所有API進(jìn)行包裝:http://mp.weixin.qq.com/wiki/home/index.html
也就是微信服務(wù)號和訂閱號的開發(fā),不支持微信企業(yè)號和移動端API。
但是不排除企業(yè)號和移動端API共有部分的調(diào)用,對于這部分本SDK不保證其能調(diào)用成功。
2.API包裝的核心思想
運(yùn)用Dynamic(.net 4.0以及以上版本支持)在程序中傳遞微信所需的結(jié)構(gòu)化(xml,json)對象,減少大量代碼,實現(xiàn)輕量級。 讓您可以像Python一樣書寫代碼。
3.SDK優(yōu)勢
(1)輕量級,摒棄了大量對微信API調(diào)用過程中的傳遞對象的包裝,代碼至少減少1/2,和同級.net版本的微信SDK相比是最輕量級的。
(2)結(jié)構(gòu)清晰,和官方API列表一一對應(yīng),便于開發(fā)者快速定位。
(3)簡單靈活,只包裝官方最底層的,最原始的API,便于開發(fā)者自由發(fā)揮。
4.API目錄說明
(1)AcceptMessageAPI.cs 對應(yīng)微信API的 "接收消息" 注意:驗證消息真實性在BasicAPI的CheckSignature中. 接收消息文字、圖片、視頻、音頻、位置、鏈接和事件消息都包裝在AcceptMessageAPI.Parse(string message)方法中, 因為他們都可以歸為消息,所以只需要提供一個統(tǒng)一的解析方法即可。當(dāng)然,這個方法返回的是一個動態(tài)對象。 接受語音識別消息,只是在返回的語音消息xml數(shù)據(jù)中多了Recognition(注:需要公眾號有接收語音識別結(jié)果的權(quán)限)
(2)AdvanceMassReplayMessageAPI.cs 對應(yīng)微信API的 "發(fā)送消息”=》"高級群發(fā)消息接口"
(3)BasicAPI.cs 對應(yīng)微信API的 "基礎(chǔ)支持"
(4)CustomMenuAPI.cs 對應(yīng)微信API的 "自定義菜單管理"
(5)InterfaceStatisticsAPI.cs 對應(yīng)微信API的 "數(shù)據(jù)統(tǒng)計接口" =>"接口分析數(shù)據(jù)接口"
(6)MessageStatisticsAPI.cs 對應(yīng)微信API的 "數(shù)據(jù)統(tǒng)計接口" =>"消息分析數(shù)據(jù)接口"
(7)MutliServiceAPI.cs 對應(yīng)微信API的 "多客服功能"
(8)NewsStatisticsAPI.cs 對應(yīng)微信API的 "數(shù)據(jù)統(tǒng)計接口" =>"圖文分析數(shù)據(jù)接口"
(9)PromotionAPI.cs 對應(yīng)微信API的 "帳號管理"
(10)ReplayActiveMessageAPI.cs 對應(yīng)微信API的 "發(fā)送消息”=》"客服接口"=>"發(fā)送(主動)客服消息"
(11)ReplayPassiveMessageAPI.cs 對應(yīng)微信API的 "發(fā)送消息”=》"被動回復(fù)消息"
(12)ServiceAdminAPI.cs 對應(yīng)微信API的 "多客服功能"=>"客服管理"
(13)SmartAPI.cs 對應(yīng)微信API的 "智能接口"
(14)TemplateMessageAPI.cs 對應(yīng)微信API的 "發(fā)送消息”=》"模板消息接口"
(15)UserAdminAPI.cs 對應(yīng)微信API的 "用戶管理"
注意:獲取用戶地理位置在接受Location事件時獲取,解析地址位置數(shù)據(jù)包在AcceptMessageAPI.Parse(string message)方法中,詳細(xì)見:(2)AcceptMessageAPI.cs 。 網(wǎng)頁授權(quán)獲取用戶基本信息和獲取用戶網(wǎng)絡(luò)狀態(tài)(JS)接口暫時不包含在本SDK中。
(16)UserStatisticsAPI.cs 對應(yīng)微信API的 "數(shù)據(jù)統(tǒng)計接口" =>"用戶分析數(shù)據(jù)接口"
(17)JSSDK/JSAPI.cs 對應(yīng)微信API的 "微信JS接口" =>"微信JS-SDK說明文檔" =>"附錄1-JS-SDK使用權(quán)限簽名算法"
(18)微信支付
Pay/WxPayAPI.cs 對應(yīng)微信支付API =>公共API Pay/WxMicroPayAP.cs 對應(yīng)微信支付API =>被掃支付 Pay/WxBizPayAP.cs 對應(yīng)微信支付API =>掃碼原生支付 官方文檔:http://pay.weixin.qq.com/wiki/doc/api/index.php
其中微信內(nèi)網(wǎng)頁支付 Demo已經(jīng)在SDK中實現(xiàn),具體請參考:
Deepleo.Web/Controllers/WXPayController.cs
Deepleo.Web/Controllers/JSSDKController.cs/Pay
Deepleo.Web/Views/JSSDK/Pay.cshtml
(19)OAuth2API.cs 對應(yīng)微信API的 用戶管理=》 "網(wǎng)頁授權(quán)獲取用戶基本信息”
(20)微信卡券
Card/CreateCardAPI.cs 創(chuàng)建卡券接口 Card/SendCardAPI.cs 卡券投放接口 Card/UseCardAPI.cs 卡券核銷接口 Card/ManageCardAPI.cs 卡券管理接口 Card/Special 特殊卡票接口 Card/TestWhiteAPI.cs 設(shè)置測試用戶白名單
(21) 微信小店(微信商鋪API手冊V1.15)
Merchant/ProductAPI.cs 商品管理接口 Merchant/ExpressAPI.cs 郵費(fèi)模板管理接口 Merchant/StockAPI.cs 庫存管理接口 Merchant/GroupAPI.cs 分組管理接口 Merchant/ShelfAPI.cs 貨架管理接口 Merchant/OrderAPI.cs 訂單管理接口 Merchant/CommonAPI.cs 功能接口
設(shè)備功能接口暫未開發(fā)。
5.demo Deepleo.Web項目,請編譯后發(fā)布到服務(wù)器,并修改web.config(appid,appsecrect,Token,EncodingAESKey), 在后臺將服務(wù)地址改為:[域名]/weixin。demo在線演示請關(guān)注微信公眾號:
(1) 鳴創(chuàng)軟件(訂閱號所有可以實現(xiàn)的功能演示,)
(2) 慢做菜(基于WeixinSDK實現(xiàn)的菜譜查詢服務(wù))
(3) http://weixinsdk.deepleo.com/jssdk (js-sdk演示,需要在微信中打開, 由于本公眾號只是未認(rèn)證訂閱號,故請對照后臺權(quán)限測試)
6.問題幫助
1)API返回的Dynamic對象應(yīng)該如何使用?
答:如果您調(diào)用API,return的是 a.由DynamicJson.Parse轉(zhuǎn)換而來,您可以用.[屬性名稱] 訪問到該屬性的值; 譬如 BasicAPI.cs中GetAccessToken: var token = DynamicJson.Parse(result.Content.ReadAsStringAsync().Result); 那么調(diào)用時:string newToken = BasicAPI.GetAccessToken(AppId, AppSecrect).access_token; b.如果是DynamicXml轉(zhuǎn)換而來的,您可以用.[屬性名稱].Value 訪問到該屬性的值; 譬如 AcceptMessageAPI.cs中Parse: msg.Body = new DynamicXml(message); string msgType = msg.Body.MsgType.Value;
2) demo項目發(fā)布之前如何配置?
答:需要修改web.config里appSettings節(jié)點(diǎn)下關(guān)于網(wǎng)站配置和微信相關(guān)配置,如果不需要的功能不用填寫。 讀取這些配置的類在App_start/WeixinConfig.cs中,您可以根據(jù)自己的業(yè)務(wù)邏輯更改實現(xiàn)方式。 譬如,如果您一個網(wǎng)站需要管理多個微信公眾號的情況。
7.注意事項
1)由于本SDK只是簡單包裝了官方API,API調(diào)用有諸多限制(譬如權(quán)限限制,次數(shù)限制),所以開發(fā)者還是需要仔細(xì)閱讀官方文檔。
2)微信現(xiàn)在還不是很成熟,如果遇到調(diào)用失敗的問題,請查看官方公告或者多試幾次。
3)微信公眾平臺可以申請測試號,如果您的產(chǎn)品已經(jīng)上線,但是發(fā)布新功能還沒有在生產(chǎn)環(huán)境中驗證過,申請測試號是不錯的選擇。
4)微信自帶開發(fā)者問答系統(tǒng),上面都是前車之鑒,有一定參考價值。
8.源代碼托管:https://github.com/night-king/weixinSDK
9.鄭重申明
本SDK不收費(fèi),堅持開源,沒有未公開的api,項目中的代碼是我自己開發(fā)過的項目積累。
10.捐助
如果這個項目對您有用,我們歡迎各方任何形式的捐助,也包括參與到項目代碼更新或意見反饋中來。謝謝!資金捐助:
