C# 微信公众号token 认证笔记
因公司需要,开通了微信公众号。
在开发对接中摸索了2天,写下此记,备忘。
服务器地址(URL):https://www.findtechgroup.net/Handler1.ashx
因http80端口已被其他业务占用,只能用https(443) 协议,需路由映射服务器的443端口。
IIS 中需要添加SSL证书,这个证书在阿里云中免费申请,
如下为c#的 token 认证代码
在VS 项目中创建一个 一般处理程序( 下面代码是网上Copy的,出处忘记了)
/// <summary> /// Handler1 的摘要说明 /// </summary> public class Handler1 : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string token = "find123456789"; if (string.IsNullOrEmpty(token)) { return; } string echoString = HttpContext.Current.Request.QueryString["echoStr"]; string signature = HttpContext.Current.Request.QueryString["signature"]; string timestamp = HttpContext.Current.Request.QueryString["timestamp"]; string nonce = HttpContext.Current.Request.QueryString["nonce"]; if (CheckSignature(token, signature, timestamp, nonce)) { if (!string.IsNullOrEmpty(echoString)) { HttpContext.Current.Response.Write(echoString); HttpContext.Current.Response.End(); } } } /// <summary> /// 验证微信签名 /// </summary> public static bool CheckSignature(string token, string signature, string timestamp, string nonce) { string[] ArrTmp = { token, timestamp, nonce }; //字典排序 Array.Sort(ArrTmp); //拼接 string tmpStr = string.Join("", ArrTmp); //sha1验证 tmpStr = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); //tmpStr = Membership.CreateUser(tmpStr, "SHA1"); tmpStr = tmpStr.ToLower(); if (tmpStr == signature) { return true; } else { return false; } } public bool IsReusable { get { return false; } } }
其实没那么麻烦,直接最简单的:
/// <summary> /// 微信公众号开发配置基本配置时候填的token校验 /// </summary> /// <returns></returns> public IActionResult TokenValid() { ///这里做的假,正常的是需要一堆审核的 ///https://codeleading.com/article/81633002885/ string echostr = GDCUtility.GetParamNoSpace("echostr"); return Content(echostr); }
直接返回验证传递过来的 echostr .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2015-02-05 SQL Server 2008读取域帐户信息