微信开发之(一)微信验证
基于微信公众测试平台进行开发测试,并在网上找了很多资料再此声明(如有占用代码请联系以备修改),由于比较杂不一一说明谢谢他们的努力。供有需要的人参考。
首先是实现微信的认证,登录微信测试平台我们可以看到系统自动给了一个微信号,测试号信息:appID和appsecret。
在接口配置信息中,有URL和Token 二个文本框,我们分别在URL上写上我们的服务器测试文件的地址,采用的是一般处理程序类似(http://yourdomain.com/valided.ashx).
Token的值我们可以自定义。
然后我们新建一个项目,新建valided.ashx文件用于验证。
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | //在ProcessRequest方法里面写上如下代码: if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST" ) { //do something } else { AuthWechat(); //采用GET方法判断进入验证方法 } ///认证微信 private void AuthWechat() { string token = "testweixin" ; //Token的值 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> private bool CheckSignature( string token, string signature, string timestamp, string nonce) { string [] ArrTmp = { token, timestamp, nonce }; //将参数放进数组 Array.Sort(ArrTmp); //对数组进行排序 string tmpStr = string .Join( "" , ArrTmp); //将数组进行拼接 ///对拼接后的字符串进行加密操作 // tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); tmpStr=Membership.CreateUser(tmpStr, "SHA1" ).ToString(); //转换成小写形式 tmpStr = tmpStr.ToLower(); //比对成功返回 if (tmpStr == signature) { return true ; } else { return false ; } } |
上图中的相关参数说明:
描述 | |
---|---|
signature | 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
timestamp | 时间戳 |
nonce | 随机数 |
echostr | 随机字符串 |
参考官方文档地址解析:验证消息真实性
将上面的代码保存后我们编译下然后发布到服务器,在刚刚的测试号里面写好发布对应的地址,点击保存的时候系统会提示你是否配置成功,有时可能是网络原因会提示配置失败,建议多试几次,如果没有问题一般都会提示配置成功!这就实现了验证和签名。完成了重要的一步为其他接口的开发和实现奠定了基础。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 从零开始开发一个 MCP Server!
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档