最近在做微信的网页相关开发,在调用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×tamp=1601287681&url=http://127.0.0.1/
/* 16进制转换生成的 签名*/
public stati