请教大神帮我解决下微信JSSDk接口签名错误的问题?在线等

大海之舟 2015-01-14 02:54:23
config配置权限验证时要获取 接口的签名
首先要根据oppid获取 access_token 公众号的全局唯一票据
然后再根据access_token 获取 jsapi_ticket
最后再根据jsapi_ticket 获得签名
但是怎么弄都提示签名错误。。。。。。。
官网说:参数按照字段名的 ASCII 码从小到大排序
确认config中noncestr, timestamp与用以签名中的对应noncestr, timestamp一致。
确认url是页面完整的url,包括GET参数部分。
确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。

我都对了1天了 这些都没弄错
就是一直报签名的 错误。。。。。。。。。。。。。。。。。。。

string1:
jsapi_ticket=bxLdikRXVbTPdHSM05e5u1sgBgnhgLlAc-l-lxGl6z01X9Dz0N_ogV00_xQxFdJj-jh47ZXibMa8bysSXH_LSA&noncestr=rHk2XMkrI8P6SGQh×tamp=1421216992&url=http://active.ucandemo.net/test.aspx
signature=sha1(string1)
signature:
5e4caf2186c02472871fff57e4e2ad73d1e612b1
...全文
41974 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljdLJDhandsome 2018-07-26
  • 打赏
  • 举报
回复
昨天刚解决了这个问题,最有可能的是你传给后台的url和你给微信验证的url不一致导致的,再看下你的文件所在的域名是不是配置在微信安全域名下,微信验证的url是什么,我好像没有给过微信验证的url???
smile0315 2018-07-14
  • 打赏
  • 举报
回复
昨天刚解决了这个问题,最有可能的是你传给后台的url和你给微信验证的url不一致导致的,再看下你的文件所在的域名是不是配置在微信安全域名下
hezhengjun9911 2018-07-12
  • 打赏
  • 举报
回复
请问一下,那个URL是一定要用域名吗,在本地可以测试吗
luozhengeast 2018-07-10
  • 打赏
  • 举报
回复
从来不发言的我也特意上来说一下:不得不说微信的接口开发真的是太坑,为一个微信扫一扫功能的验证错误问题足足浪费了我5天时间,只差把代码背下来了,一直找不到问题,感谢15楼的兄弟,确实是url最后要加一个“/”,我这里再说一次,以免后面的兄弟再掉坑里!
z670707170 2017-09-25
  • 打赏
  • 举报
回复
var targetUrl = encodeURIComponent(location.href.split("#")[0]); 用以上方法获取到targetUrl解决了苹果端报invalid signature错误. 之前用的时候没有进行encode编码导致报错.
qq_34453316 2017-09-21
  • 打赏
  • 举报
回复
用sha1得到signature这步是怎么弄的?我得到了那串字符串,然后用sha1(字符串),直接就报“sha1 is not defined”?
qishiwobuben 2017-07-12
  • 打赏
  • 举报
回复
生成签名与微信测试签名工具结果一致,但是不能生效的原因,可能是你中途改了你的 APPID,或者 APPSECRET,然后你注意检查你自己的生成签名的代码,有没有缓存你的 access_token ,新版 SDK中 if ($data->expire_time < time()) 这个$data 是缓存时间!你找到缓存文件,然后改下时间戳 !!刷新 就可以了 。。。。 耽误了我一个下午 !! 怪自己看代码不细心啊 !!
v_xchen_v 2017-06-19
  • 打赏
  • 举报
回复
感谢15楼。url结尾有个反斜杠
pingguo_11 2017-03-24
  • 打赏
  • 举报
回复
我现在在做微信卡券 到了领取卡券的页面一直说签名错误 排查了好久也没效果,问下你这个解决了吗,,我这挺着急的,还没弄出来,,有时间的话请大神帮帮忙啊 谢谢
qq_15630527 2016-09-25
  • 打赏
  • 举报
回复
我的后台java代码中获取的url地址(String url = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+req.getContextPath()+req.getServletPath();)带了端口号80,而前台url地址并没有端口号80,所以我把后台获取端口号(+":"+req.getServerPort())的这个给去掉,之后就可以了。
junhm 2016-09-20
  • 打赏
  • 举报
回复
我也碰到同样的问题,后来解决了,说起来悲催: 把参数timestamp写成了timeStamp,足足调试了半天才发现。
  • 打赏
  • 举报
回复
我的解决了,你先前端做个测试,确认跑通了,然后再让再让后台做动态的,你获取就可以,签名有效期是两小时,过期了,你的token,tiket都要重新再换一次,然后再把方法调用在ready成功里面......有问题加Q:553644700,带上备注。
lw1992826 2015-09-23
  • 打赏
  • 举报
回复
求解啊,签名算法时候的url到底是哪里获取到的呢? 。。。公众平台测试号,可以测分享功能吗?还是必须认证过的正式号
wulieji879 2015-08-20
  • 打赏
  • 举报
回复
楼主,你的问题解决了没?是什么原因啊?
delly_ya 2015-07-22
  • 打赏
  • 举报
回复
我也是一样的问题,早了好久都没搞定,晕死了
williamxia8 2015-07-10
  • 打赏
  • 举报
回复
没有合理的答案啊,都是问题
xiongxu 2015-06-02
  • 打赏
  • 举报
回复
有人解决这个问题了吗? 我已经确认过了,我后台程序生成的签名和微信在线工具生成的签名是一模一样的 我的后台的url和微信里复制链接的url也是一模一样的 其他参数也都已经确认过了,但是就是不能通过验证
trigger-11 2015-05-07
  • 打赏
  • 举报
回复
签名错误也有可能是jsapi_ticket过期后无法获取,因为获取次数“非常有限”
Yalishizhude 2015-04-30
  • 打赏
  • 举报
回复
http://jingyan.baidu.com/article/59703552c3c9808fc1074072.html 问题我解决了,大家可以看看我的百度经验~
qq_23979845 2015-04-16
  • 打赏
  • 举报
回复
楼主解决了这个问题么?我也有同样的问题 签名都和微信测试页面的一样,还是一直提示签名错误!不知道哪里出了问题
加载更多回复(18)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧