进入微信小程序,点击开发-》选择消息推送-》扫码授权,填写必要参数
进入接口开发:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
/// <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(); <br> //参数排序 SortedDictionary< string , string > keyValuePairs = new SortedDictionary< string , 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加密:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/// <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
转自:http://Www.CnBlogs.Com/WebEnh/
如果想下次快速找到我,记得点下面的关注哦!
本博客Android APP 下载 |
![]() |
支持我们就给我们点打赏 |
![]() |
支付宝打赏 支付宝扫一扫二维码 |
![]() |
微信打赏 微信扫一扫二维码 |
![]() |
如果想下次快速找到我,记得点下面的关注哦!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2019-01-08 JS全角与半角转化小结
2019-01-08 C#下实现的半角转与全角的互转
2017-01-08 为你下一个项目准备的 50 个 Bootstrap 插件
2017-01-08 In-Memory:内存数据库
2017-01-08 在vs.net 2010,2015 等版本,给JS函数添加代码提示\注释