微時代

微信公眾平臺開發之微信接入驗證

2014/6/10 23:51:04 / 來源: / 點擊: 0

摘要:微信,想必大家都不陌生,現在越來越多的微服務也開始進入我們的生活,我們可以使用微信進行查詢賬單、消費提醒、打車、還款、支付等等,最近微信官方又開放了很多高級接口,使得購買電影票、手機充值、收看互聯網電視付費節目變成可能

 微信開發者模式

相要通過微信和自身業務進行緊密相連,就需要實現如何與微信服務器進行對接,涉足微信開發,首先需要到微信公眾平臺申請一個微信公眾號,打開開發者模式后,首先需要對您填寫的url和Token進行驗證,驗證url的有效性,是微信后續開發的首要條件。下面是實現url驗證判斷的代碼:

  

       /// <summary>  

        /// 微信URL驗證  

        /// </summary>  

        private void RenZheng()

        {

            #region 新認證

            if (Request.HttpMethod.ToUpper() == "GET")

            {

                // 微信加密簽名    

                string signature = Request.QueryString["signature"];

                // 時間戳    

                string timestamp = Request.QueryString["timestamp"];

                // 隨機數    

                string nonce = Request.QueryString["nonce"];

                // 隨機字符串    

                string echostr = Request.QueryString["echostr"];

                if (CheckSignature(signature, timestamp, nonce))

                {

                    Response.Write(echostr);

                    Response.End();

                }

 

            }

            #endregion

        }

 

        public static bool CheckSignature(String signature, Stringtimestamp, String nonce)

        {

            string token = ViewUtil.WXToken;

            String[] arr = new String[] { token, timestamp, nonce };

            // 將token、timestamp、nonce三個參數進行字典序排序    

            Array.Sort<String>(arr);

 

            StringBuilder content = new StringBuilder();

            for (int i = 0; i < arr.Length; i++)

            {

                content.Append(arr[i]);

            }

 

            String tmpStr = SHA1_Encrypt(content.ToString());

 

            // 將sha1加密后的字符串可與signature對比,標識該請求來源于微信    

            return tmpStr != null ? tmpStr.Equals(signature) : false;

        }

 

        /// <summary>  

        /// 使用缺省密鑰給字符串加密  

        /// </summary>  

        /// <param name="Source_String"></param>  

        /// <returns></returns>  

        public static string SHA1_Encrypt(string Source_String)

        {

            byte[] StrRes = Encoding.Default.GetBytes(Source_String);

            HashAlgorithm iSHA = new SHA1CryptoServiceProvider();

            StrRes = iSHA.ComputeHash(StrRes);

            StringBuilder EnText = new StringBuilder();

            foreach (byte iByte in StrRes)

            {

                EnText.AppendFormat("{0:x2}", iByte);

            }

            return EnText.ToString();

        }

 

    }

 

 

驗證成功后,即可成為開發者,可以根據自身業務實現各種個性話的功能定制,比如智能回復,多客服,消息自動推送,位置定位等,多樣化的功能使得自身系統變得更加貼近實用,為用戶帶來實實在在的益處

相關熱詞搜索:微信開發教程微信代碼token微信開發者模式

上一篇:微信公眾平臺開發之微信OAuth2.0網頁授權回調方法的參數獲取
下一篇:微信公眾平臺開發之微信智能回復轉多客服

分享到: 0
辉柏嘉和酷喜乐