最近在接手同事以前寫的代碼,關於微信接口開發的,花了點時間把它整理成了一個類庫,可是爲了顯得高大上,冠了一個框架之名。而後寫下這麼一篇文章:html
有朋友說我寫這個,牛刀殺雞,可是若是我連雞都殺不了,怎麼可以讓別人相信我能殺牛呢。儘管它是個小類庫,可是並必定能把它寫好,若是你有更好的方案,歡迎討論,但不要人身攻擊。謝謝。git
也有人說,把功能實現不就得了,管它代碼的好壞呢。若是你是老闆,你能夠不關心它,若是你是客戶,你更不須要擔憂它。可是,若是做爲技術人員,尤爲是技術部門的管理人員,你不關心它,最後代碼亂到無法維護,錯誤頻頻發生,這個板子確定是要打到你的屁股上的。題外說完,下面說一下這個類庫。github
1、爲何要使用它微信
使用這個框架來開發,是否是就不須要了解微信的接口呢?不!你仍然須要瞭解微信消息的通訊機制和它的接口,只有你清楚瞭解了這些,才能用好這個類庫。使用這個類庫的好處是,能夠規範你所寫的代碼,使得你所寫的代碼更易於維護。 微信公衆平臺
2、它封裝了哪些接口框架
如今只是封裝了消息處理的部份的接口。ide
即:接叫消息和發送消息的大部份接口。post
3、使用指南 測試
一、在使用這個類庫以前,你得首先註冊一個微信的公衆賬號,你能夠到 mp.weixin.qq.com 註冊。若是你已經註冊完成了,請忽略。url
二、點擊 微信消處理框架 下載,而後解壓縮。打開項目進行編譯。另外:項目託管在CodePlex上了,能夠到 http://wx.codeplex.com/ 下載最新的。
三、建立一個 Web 項目,而後引用 WeiXin.dll。
如今已經轉移動GitHub了,https://github.com/ansiboy/YuChang
四、建立一個 Generic Handler 文件,例如:MessageReceiver.ashx。
五、在該文件的代碼以下所示,其中的 Token 值,你能夠自行設定,在這裏是 5201314 。
<%@ WebHandler Language="C#" Class="WeiXin.MessageReceiver" %> #define TRACE using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Diagnostics; using System.IO; using System.Xml; using WeiXin; using WeiXin.Models; namespace WeiXin { public class MessageReceiver : IHttpHandler { public MessageReceiver() { } public void ProcessRequest(HttpContext context) { const string TOKEN = "5201314"; var handler = new WeiXin.HttpHandler(TOKEN, new MessageProcesser()); handler.Process(context.Request, context.Response); } public virtual bool IsReusable { get { return false; } } } }
六、把該文件上傳到空間上,假設路徑是 「http://wx.alinq.org/Test/MessageReceiver.ashx」 。
七、登陸微信公衆平臺,先申請一個測試的帳號,而後在服務配置上填上下面的信息。
九、如今咱們打開微信,掃一下公衆帳號,看有什麼響應。
掃完後,在微信的界面上將會顯示下面的信息:
十、重寫 MessageProcesser 類,來實現回覆自定義的消息。建立 MessageProcesser 繼承類命名爲 MyMessageProcesser ,例如
using System; using System.Collections.Generic; using System.Linq; using System.Web; using WeiXin.Models; public class MyMessageProcesser : WeiXin.MessageProcesser { public MyMessageProcesser() { } protected override ReplyMessage ProcessSubscribeEvent(SubscribeEvent msg) { var reply = new TextReply(msg); reply.Content = "你好,歡迎關注"; return reply; } protected override ReplyMessage ProcessUnsubscribeEvent(UnsubscribeEvent msg) { var reply = new TextReply(msg); reply.Content = "取消關注"; return reply; } }
而後修改 MessageReceiver.ashx 文件的代碼,把
var handler = new WeiXin.HttpHandler(TOKEN, new MessageProcesser());
改成:
var handler = new WeiXin.HttpHandler(TOKEN, new MyMessageProcesser());
十一、如今咱們再來掃一掃,看看有什麼效果,固然,在掃以前請先取消關注,你會發現,回覆變成了「你好,歡迎關注」。
你們若是對我作的東西感興趣,能夠和我聯繫:
QQ: 81932759
Q羣: 71418067
上海的朋友,能夠掃一掃下這面這個公衆號。