[原創][下載]Senparc.Weixin.MP-微信公眾平台SDK(C#) - 已支持微信7.x API


    因為正在計划做一個微信機器人,需要用ASP.NET,找了一下只有PHP的SDK,沒有C#的,於是動手寫了一個,已經全面支持微信7.x所有接口,包括公眾號、小程序、企業號、開放平台、多客服、卡券、微信支付、等。

  1.     微信公眾平台地址:http://mp.weixin.qq.com
  2.     Senparc.Weixin SDK 官網地址:https://weixin.senparc.com
  3.     所有源代碼(SDK+示例): https://github.com/JeffreySu/WeiXinMPSDK(新版本已發布,可以在github中查看最新的代碼和教程)
  4.     在線示例(開源):https://sdk.weixin.senparc.com
  5.     微信技術交流社區:https://weixin.senparc.com/QA
  6.     chm幫助文檔下載:https://sdk.weixin.senparc.com/Document
  7.     微信開發資源匯總:https://github.com/JeffreySu/WeixinResource
  8.     《微信開發深度解析:微信公眾號、小程序高效開發秘籍》配套輔助閱讀系統:https://book.weixin.senparc.com

    目前已經支持微信6.x所有API(主要是自定義菜單),並且我為大家准備了兩個非常好用的在線工具(都已在源代碼中開源):

技術交流QQ群:

  • 1群:300313885 (2000人群 已滿)
  • 2群:293958349 (1000人群 已滿)
  • 3群:342319110 (2000人群 已滿)
  • 4群:372212092 (500人群 已滿)
  • 5群:377815480 (1000人群 已滿)
  • 6群:425898825 (1000人群 已滿)
  • 7群:482942254 (500人群 已滿)
  • 8群:106230270 (500人群 已滿)
  • 9群:539061281 (500人群 已滿)
  • 10群(分布式緩存):246860933 Senparc.Weixin.Cache SDK 10群
  • 11群:553198593 (500人群 已滿)
  • 12群(微信小程序):108830388 Senparc微信小程序 12群
  • 13群(開放平台):183424136 (500人群 已滿)
  • 14群(視頻學員):588231256 Senparc.Weixin SDK 14群
  • 15群:289181996 Senparc.Weixin SDK 15群
  • 16群(開放平台):860626938 [16群 開放平台]SenparcSDK

 

Senparc.Weixin SDK 配套微信開發圖書《微信開發深度解析:微信公眾號、小程序高效開發秘籍》已經出版,點擊這里購買正版!

 

    用微信掃描下面二維碼,關注官方公眾號(添加后可發送文本、位置、圖片信息,以及點擊菜單,測試部分功能效果):

    

    注意:開始開發之前需要到上面申請一個公眾賬號,並開啟“關鍵詞自動回復 => 公眾平台消息接口”,根據提示設置token等信息。

    Senparc.Weixin.MP所有項目文件如下:


(項目已更新,具體文件請到https://github.com/JeffreySu/WeiXinMPSDK查看或同步最新代碼)

    Senparc.Weixin.MP幾個關鍵類介紹如下:

  • Entities/Request*.cs 用於接收微信平台自動發送到服務器的實體(發送過來的是XML),包括文本、位置、圖片三類
  • Entities/Response*.cs 用於反饋給發送人的信息實體(最終會轉成XML),包括文本、新聞(圖文)兩類
  • Helpers/EntityHelper.cs 用於實體和XML之間的轉換(由於其中有許多需要特殊處理的字段和類型,這里不能簡單用XML序列化)
  • Helpers/MsgTypeHelper.cs 用於獲取消息類型
  • CheckSignature.cs 驗證請求合法性類
  • Enums.cs 各種枚舉
  • RequestMessageFactory.cs 用於自動生成不同Request類型的實體,並作必要的數據填充

    Senparc.Weixin.MP幾個關鍵類及重要方法(按一般使用過程排序,注意很多地方已經升級到更簡潔的方法,請參考最新的代碼:https://github.com/JeffreySu/WeiXinMPSDK

  1. 生成驗證字符串:Senparc.Weixin.MP.CheckSignature.GetSignature(string timestamp, string nonce, string token = null),返回根據微信平台提供的數據,SHA1加密后的驗證字符串(注意token必須跟公眾平台的設置一直)
  2. 驗證請求:Senparc.Weixin.MP.CheckSignature.Check(string signature, string timestamp, string nonce, string token = null),驗證請求是否合法
  3. 獲取請求實體:var requestMessage = Senparc.Weixin.MP.RequestMessageFactory.GetRequestEntity(XDocument doc); 根據不同請求的類型,自動生成可用於操作的實體(doc只需要用XDocument.Parse(xmlString)就能生成),requestMessage.MsgType就是請求枚舉類型。
  4. 進行判斷及各類操作。
  5. 根據需要,創建響應類型的實體,如:var responseMessage = ResponseMessageBase.CreateFromRequestMessage(requestMessage, ResponseMsgType.Text) as ResponseMessageText; 即可返回文本類型信息。
    注:v0.6版本以后,此方法可以簡寫為:var responseMessage = CreateResponseMessage<ResponseMessageText>();
  6. 由於目前微信只接受XML的返回數據,所以在返回之前還需要做一次轉換:XDocument responseDoc = Senparc.Weixin.MP.Helpers.EntityHelper.ConvertEntityToXml(responseMessage); var xmlString = responseDoc.ToString();
  7. 至此整個微信公眾賬號的自動響應過程結束。

    

    所有Senparc.Weixin.MP源代碼及示例代碼已開源(示例是ASP.NET MVC 4,.NET 4.0,Senparc.Weixin.MP源代碼最低支持.NET 4.0,其中.NET 4.5的版本支持更多異步處理等新功能):

    https://github.com/JeffreySu/WeiXinMPSDK


    (包含三個文件夾:Senparc.Weixin.MP、Senparc.Weixin.MP.BuildOutPut、Senparc.Weixin.MP.Sample,分別對應Senparc.Weixin.MP.dll源代碼項目、Senparc.Weixin.MP.dll輸出目錄、Web示例,Web示例建議放到公網測試,讓公眾平台自動發送)

    目前SDK還在測試中,歡迎大家提出寶貴意見!

 

補充:

    關於直接使用Senparc.Weixin.MP.Sample部署到服務器上進行測試的朋友,有幾點需要注意一下:

  1. 進入微信公眾賬號后台后,依次進入 高級功能 > 開發模式 > 成為開發者 ,編輯接口配置信息,其中Url中需要填寫默認端口(80)的Url,如http://weixin.senparc.com/weixin (注意后面的/weixin一定要加,這是用於驗證的一個Controller地址)
  2. 為了確保安全,在上述接口配置信息中的Token最好輸入一個復雜一些的字符串,並且在Senparc.Weixin.MP.Sample/Controllers/WeixinController.cs中修改Token使之匹配,如:

 

關於Senparc.Weixin.MP.Test單元測試項目所有Senparc.Weixin.MP核心代碼都已通過單元測試。沒有外網部署條件的朋友也可以使用Senparc.Weixin.MP.Test項目提供的單元測試進行測試,這些測試同樣適用於微信還沒有正式發布、無法實際測試的功能,如消息推送:


截圖對應測試版本:v0.3.1

 

微信開發教程(Senparc.Weixin.MP SDK): http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html

 

 


免責聲明!

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



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