1、前言c#
微信企業號應用中,有兩種模式,一種是普通模式,這種模式只能進行簡單網頁連接,以及發送固定的消息。爲了能夠讓企業號的用戶更好的與應用交互,微信提供了回調模式,這種回調模式的能夠將用戶發送給微信的信息,轉發到用戶提供的一個回調接口上,該接口解析用戶發送過來的信息,解析後進行相應,並且回調模式中,能夠調用的東西很多,掃碼,圖片,視頻,地理位置信息等。微信
在應用的模式下,選擇回調模式,以後,須要設置3個參數(1.回調接口URL;2.token;3.ASESKey),URL就是提供的回調接口,微信會把用戶提供的信息,轉發到該接口來。咱們這裏用的url爲http://m.xxx.com:10000/WeiXin/MessageInterface/。接口的驗證是採用http Get的方式,接口獲取消息是採用Post的方式。並且要設置回調模式,必須先實現驗證接口。函數
這對接口的驗證,微信提供了相應的開發包,有c#專用的,開發包的主要做用就是進行簽名的驗證和加密解密。加密
接口驗證代碼以下url
public string MessageInterface() { string signature = Request.QueryString["msg_signature"]; string timestamp = Request.QueryString["timestamp"]; string nonce = Request.QueryString["nonce"]; string echostr = Request.QueryString["echostr"]; //Careysoft.Basic.Public.Log.LogWrite("111"); if (Request.HttpMethod.ToUpper() == "GET") { string decryptEchoString = ""; if (Careysoft.WeiXin.Public.WeiXinFunction.CheckSignature(m_Token, signature, timestamp, nonce, m_Corpid, m_EncodingAESKey, echostr, ref decryptEchoString)) { if (!string.IsNullOrEmpty(decryptEchoString)) { return decryptEchoString; } } } }
m_Token爲回調模式中設置的Token,m_Corpid爲企業號微信Id,m_EncodingAESKey爲回調模式中設置的AESKey,其他的參數爲回調模式傳遞過來的參數。spa
下面是 CheckSignature 函數:.net
public static bool CheckSignature(string token, string signature, string timestamp, string nonce, string corpId, string encodingAESKey, string echostr, ref string retEchostr) { WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token, encodingAESKey, corpId); int result = wxcpt.VerifyURL(signature, timestamp, nonce, echostr, ref retEchostr); if (result != 0) { return false; } return true; //ret==0表示驗證成功,retEchostr參數表示明文,用戶須要將retEchostr做爲get請求的返回參數,返回給企業號。 // HttpUtils.SetResponse(retEchostr); }
其中,WXBizMsgCrypt爲微信平臺回調接口開發包,你們下載引用過來就好。code
好的,回調驗證接口就是這樣,有了這個,就能夠把應用模式設置爲回調模式了!視頻
下一節,咱們將試着從回調接口接收用戶發送的信息,並對用戶進行回覆。blog
請看.net之微信企業號開發(四) 回調模式的接口 信息的接收和發送