最近在做微信的网页相关开发,在调用JS-SDK时,总是时不时出现 invalid signature 的报错。

查了N多方法,后来排除到签名的生成上。在微信的文档(微信JSSDK签名生成)里仅是提到使用SHA1加密。

.Net  Core 中,可以用 System.Security.Cryptography里的SHA1进行加密,不过得到的是byte类型,而微信验证需要的是字符类的签名,所以需要转一下。

在转换时踩了个坑,利用的是16进制转换,如下

采用url为 http://127.0.0.1的进行构造

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=4f6c95eae451473cb731c8df62ae9ffe&timestamp=1601287681&url=http://127.0.0.1/
/* 16进制转换生成的 签名*/
public static string 16ToSignature(string sting1)
{SHA1 sha = SHA1.Create();byte[] bytResult = sha.ComputeHash(System.Text.Encoding.UTF8.GetBytes(string1));string errSignature="";for (int i = 0; i < bytResult.Length; i++){//16进制转换errSignature = errSignature + bytResult[i].ToString("X");}Console.WriteLine("错误生成:"+errSignature);}   
 /* 使用BitConverter生成签名*/
public static string BitToSignature(string sting1)
{SHA1 sha = SHA1.Create();byte[] bytResult = sha.ComputeHash(System.Text.Encoding.UTF8.GetBytes(string1));Console.WriteLine("正确生成:"+BitConverter.ToString(bytResult).Replace("-", ""));         Console.ReadKey();
}

输出的结果:

貌似16进制直接转换的,和BitConvert 转的都一样

但是当签名构造里的URL地址变化时,url变成 http://127.0.0.1/WX

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=4f6c95eae451473cb731c8df62ae9ffe&timestamp=1601287681&url=http://127.0.0.1/WX";

输出结果:

那这两个如何验证哪个正确那?即微信的sha1生成的是哪一个? 可以使用微信校验签名算法工具,进行校验下

.Net Core SHA1 微信签名 invalid signature解决相关推荐

  1. 微信JSSDK invalid signature签名错误的解决方法

    导致签名错误的原因: 微信文档给出以下原因. invalid signature签名错误:建议按如下顺序检查: 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cg ...

  2. config:invalid signature 解决办法和问题排查详解

    先验证签名是否有效 1. 获取 access_token,填写 appid 和 secret 就能获取到 微信公众平台接口调试工具 2.通过 access_token 获取 jsapi_ticket ...

  3. 微信config:invalid signature完美解决

    最近开发小程序一直受这个错误的影响,迟迟解决不出来,按照官方的解决方案也都尝试并没有效果.先直白的说我最终的解决办法: 登陆微信公众平台-设置-JS安全域名 把URL地址输入进去,如果是静态的话可以直 ...

  4. 微信二次分享签名错误php,微信二次分享报错invalid signature问题及解决方法

    基于微信公众号开发的h5页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享.问题出在用户B收到的分享链接与用户A打开的链接不同 A用户的链接为 B用户收到的连接 ...

  5. VUE解决微信签名,SPA微信invalid signature问题,完美处理

    深度解决方案,包教不包会,只因为踩坑无数,希望大家能有所收获 前端小菜鸟,因为项目要对接微信的jssdk,对接就需要签名认证,但是无奈安卓和IOS各有各的坑,本篇文章只讨论签名,和一个分享的坑,希望大 ...

  6. 微信分享踩坑:config:invalid signature错误的解决方法

    微信分享踩坑:config:invalid signature错误的解决方法 一般出现这个错误多半是签名获取失败,而我根据我获取到的签名跟签名算法校验里面得到的签名是一样的,于是查找大量文档,核实可能 ...

  7. C# 微信JS-SDK之config接口注入权限验证invalid signature签名错误

    文章目录 1.开发环境 2.我的代码 3.问题描述 4.问题分析 5.问题根源 6.解决办法 记一次使用微信JS-SDK分享接口,config接口注入权限验证失败, 提示invalid signatu ...

  8. 微信公众号+Vue+JS-SDK配置注册失败,显示config:fail,Error: 系统错误,错误码:63002,invalid signature等解决方法

    用vue做微信公众号调用js-sdk遇到的问题 问题1(JS-SDK在IOS中报签名无效invalid signature) 解决办法 在VUE路由进去你要操作的页面时进行config接口注入 首先打 ...

  9. 微信二次分享链接,出现config:invalid signature错误的解决方法

    当开发微信时需要做特定的页面做分享时,根据官方提供的jssdk.php文件创建的签名数据包调试时,大家碰到的最多的错误而且解决最麻烦的大概就是signature错误了, 分享时提示错误"{& ...

最新文章

  1. C#应用NPOI实现导出EXcel表格中插入饼状图(可实现动态数据生成)
  2. 简明Linux命令行笔记:dmesg
  3. 基于前后端分离的Nginx+Tomcat动静分离
  4. CentOS7修改网卡名称为eth格式
  5. python灰度图像为什么显示成彩色的_python opencv image 怎么变成伪彩色
  6. iOS原生实现二维码扫描
  7. Thunder团队第二周 - Scrum会议3
  8. Google云也想为中国企业服务,正与腾讯浪潮谈合作
  9. poj 2955 Brackets 区间DP
  10. 个人作业7 第一阶段SCRUM冲刺(九)
  11. win7 Embedded EWF与HORM特性(实战验证)
  12. 找出冲突的Windows快捷键
  13. 盘点那些年用过的机械键盘,为什么我最爱Keychron键盘呢
  14. iMeta | 深圳先进院戴磊组开发可同时提取共存菌株的组成和基因成分谱的菌株分析工具...
  15. rancher添加镜像库
  16. Codeforces1144C(C题)Two Shuffled Sequences
  17. Snipaste等截图px与浏览器内容px不一样
  18. 零架构项目经验的程序员,如何升级成架构师
  19. 转 Python爬虫实战一之爬取糗事百科段子
  20. flutter在导航栏处实现对两个列表的点击事件

热门文章

  1. 漫谈程序员系列 一个老程序员的2014年终总结
  2. 手机我的世界服务器系统指令,sude的服务器指令
  3. JavaWeb开发测试流程
  4. 【学术讲座】听报告讲座感悟
  5. 千亿级“隐形牙套”致富经,即将跑出“隐形正畸第一股”
  6. Tensorflow 2.x(keras)源码详解之第十一章:keras损失函数及自定义损失函数
  7. 时间格式化占位符列表
  8. 【C++基础自学python】(寒假速成)Day3
  9. TOP命令参数详解---10分钟学会top用法
  10. 马良建模学习笔记——楼梯制作二