1. 程式人生 > >微信企業號,回撥模式開通.net

微信企業號,回撥模式開通.net

企業號每個應用有普通模式和回撥模式兩種,普通模式直接開啟網頁,回撥模式可設定應用底部選單項、可增加互動開發、可把客戶端的操作事件傳給企業伺服器,企業伺服器做響應開發。

開通回撥模式,首先需要通過url的回撥驗證,那麼進入應用後臺設定項,設定好url、token、aes加密偏移量,然後,使用如下程式碼:

    public class Auth : IHttpHandler
    {

        const string sToken = "111";             //應用配置中隨機生成的Token
        const string sCorpID = "222";      //企業號的CorpID
        const string sEncodingAESKey = "333";     //應用配置中隨機生成的EncodingAESKey
        pub.WXBizMsgCrypt wxcpt = new pub.WXBizMsgCrypt(sToken, sEncodingAESKey, sCorpID);

        public void ProcessRequest(HttpContext context)
        {
            if (HttpContext.Current.Request.HttpMethod.ToUpper() == "GET")
            {
                UrlAuth();
            }
            else {

            }
        }

        private void UrlAuth() {
            
            //接收企業號回撥資訊
            string sVerifyMsgSig = pub.DNTRequest.GetQueryString("msg_signature");
            string sVerifyTimeStamp = pub.DNTRequest.GetQueryString("timestamp");
            string sVerifyNonce = pub.DNTRequest.GetQueryString("nonce");
            string sVerifyEchoStr = pub.DNTRequest.GetQueryString("echostr");
            sVerifyEchoStr = sVerifyEchoStr.Replace(" ", "+");

            int ret = 0;
            string sEchoStr = "";
            ret = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp, sVerifyNonce, sVerifyEchoStr, ref sEchoStr);
            if (ret != 0)
            {
                return;
            }
            HttpContext.Current.Response.Write(sEchoStr);
            HttpContext.Current.Response.End();
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }