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

來源:互聯網
上載者:User

    因為正在計劃做一個機器人,需要用ASP.NET,找了一下只有PHP的SDK,沒有C#的,於是動手寫了一個,準系統已經完成。

    公眾平台地址:http://mp.weixin.qq.com

    Senparc.Weixin.MP官網地址:http://weixin.senparc.com

    所有原始碼(SDK+樣本): https://github.com/JeffreySu/WeiXinMPSDK(新版本發行,可以在github中查看最新的代碼和教程)

    技術交流QQ群:300313885

    用掃描下面二維碼,添加測試帳號為好友(添加後發送文本、位置、圖片資訊,測試反饋效果):

    

    注意:開始開發之前需要到上面申請一個公眾帳號,並開啟“關鍵詞自動回複 => 公眾平台訊息介面”,根據提示設定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幾個關鍵類及重要方法(按一般使用過程排序)

  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.3版本以後,此方法可以簡寫為:var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);
  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 3.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

 

升級記錄:https://github.com/JeffreySu/WeiXinMPSDK/blob/master/Senparc.Weixin.MP.BuildOutPut/readme.md

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.