今天遇到一个很棘手的问题,就是将页面分享给他人的时候,不断提示“invalid signature”,用尽各种方法还是不行。
因为之前写过很多次分享的代码,都是原样复制过来的,我确定代码没有问题,而且我将“jsapi_ticket={0}&noncestr={1}×tamp={2}&url={3}”用官方的调试工具生成config,再给项目下断点,确定config是对的。
百思不得其解。
后来网上搜了一下,发现很多人提到config里的url跟当前页面的url必须匹配,于是各种断点,各种log,觉得url是没问题的。
最后,在我就要放弃的时候,将页面的url从微信的内置浏览器里copy出来,才发现页面的实际url比标准的url多了一个“/”斜杠,虽然同样可以访问,但是对严格wx验证来说,就是两个不同的url,于是出现了“签名不正确”。
总结
code里自动获取的是标准url
http://mp.leijizhu.com/MyCard/NewMem/Share
而程序员们写跳转路径的时候很有可能多些别的内容,比如一个斜杠,不仔细看还看不出来
http://mp.leijizhu.com//MyCard/NewMem/Share
但是wx会将这两个url作为两个不同的页面,说你签名里的url跟实际url不匹配