微信小程序> .NETCORE微信小程序消息验证的坑

.NETCORE微信小程序消息验证的坑

浏览量:751 时间: 来源:weixin_30940783

进入微信小程序,点击开发-》选择消息推送-》扫码授权,填写必要参数

进入接口开发:

  

 /// summary        /// 验证小程序        /// /summary        /// returns/returns        [HttpGet("checksign")]        public dynamic CheckSignature()        {            /// 1、将token、timestamp、nonce三个参数进行字典序排序             /// 2、将三个参数字符串拼接成一个字符串进行sha1加密             /// 3、开发者获得加密后的字符串可与signature对比,标识该请求来源于微信            var _signature = Request.Query["signature"].ToString();            var _timestamp = Request.Query["timestamp"].ToString();            var _nonce = Request.Query["nonce"].ToString();        
       //参数排序            SortedDictionarystring, string keyValuePairs = new SortedDictionarystring, string();            keyValuePairs.Add("token", "xxxxxxxx");  //设定的token            keyValuePairs.Add("timestamp", _timestamp);            keyValuePairs.Add("_nonce", _nonce);            StringBuilder sb = new StringBuilder();            foreach (var item in keyValuePairs)            {                sb.Append(item.Value);            }            var signature = StringHelper.Sha1(sb.ToString()).ToLower();  //sha1加密,注意,必须是小写的             if (signature.Equals(_signature))            {                return Request.Query["echostr"].ToString();  //注意:坑,官方文档上提示返回true和false,其实返回的是echostr参数            }            else            {                return "非法請求";            }        }

  sha1加密:

 /// summary        /// 基于Sha1的自定义加密字符串方法:输入一个字符串,返回一个由40个字符组成的十六进制的哈希散列(字符串)。        /// /summary        /// param name="str"要加密的字符串/param        /// returns加密后的十六进制的哈希散列(字符串)/returns        public static string Sha1(this string str)        {            var buffer = Encoding.UTF8.GetBytes(str);            var data = SHA1.Create().ComputeHash(buffer);            var sb = new StringBuilder();            foreach (var t in data)            {                sb.Append(t.ToString("X2"));            }            return sb.ToString();        }

  然后把上述接口发布到服务器上,必须绑定域名,而且直接指定到对应的接口上,如:http://api.xylove.net/lee/WX/checksign

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎