.net微信 验证 Token完整代码


验证服务器有效性: 在微信验证页面上 get方法直接调用WechatCheckSerer方法就可以。



 public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            if (context.Request.HttpMethod.ToLower().Equals("get"))
            {
             
               chekSer.CheckServer(); //验证服务器有效性
            }
            else
            {

//这是post

}

  }







以下是验证代码

/// <summary>
    /// 验证微信平台填写的服务器地址的有效性
    /// </summary>
    public class WechatCheckSerer
    {


        /// <summary>
        /// 验证微信平台填写的服务器地址的有效性
        /// </summary>
        public void CheckServer()
        {
            string _token = "自己在微信后台填写 的token";
            string _timestamp = HttpContext.Current.Request["timestamp"];
            string _nonce = HttpContext.Current.Request["nonce"];
            string _singature = HttpContext.Current.Request["signature"];
            string _echostr = HttpContext.Current.Request["echostr"];
            if (CheckSignAture(_token, _timestamp, _nonce, _singature))
            {
                if (!string.IsNullOrEmpty(_echostr))
                {
                    HttpContext.Current.Response.Write(_echostr);


                    HttpContext.Current.Response.End();
                }
            }
        }




        /// <summary>
        /// 验证签名是否一致
        /// </summary>
        /// <param name="token">微信平台设置的口令</param>
        /// <param name="timestamp">时间戳</param>
        /// <param name="nonce">随机数</param>
        /// <param name="signature">微信加密签名</param>
        /// <returns></returns>
        public bool CheckSignAture(string token, string timestamp, string nonce, string signature)
        {
            string[] strs = new string[] { token, timestamp, nonce };//把参数放到数组
            Array.Sort(strs);//加密/校验流程1、数组排序
            string sign = string.Join("", strs);
            sign = GetSHA1Str(sign);
            if (sign == signature)
            {
                return true;
            }
            else
            {
                return false;
            }


        }




        /// <summary>
        /// SHA1加密方法
        /// </summary>
        /// <param name="str">需要加密的字符串</param>
        /// <returns></returns>
        public string GetSHA1Str(string str)
        {
            byte[] _byte = Encoding.Default.GetBytes(str);
            HashAlgorithm ha = new SHA1CryptoServiceProvider();
            _byte = ha.ComputeHash(_byte);
            StringBuilder sha1Str = new StringBuilder();
            foreach (byte b in _byte)
            {
                sha1Str.AppendFormat("{0:x2}", b);
            }
            return sha1Str.ToString();
        }


    }


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屎涂行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值