微时代

微信公众平台开发之微信接入验证

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