我也遇到与你同样的问题,ios手机上一直报invalid signature签名错误,也按照JSSDK文档附录6关于invalid signature签名错误的排错指导每步都仔细排查了,还是未能解决该问题。

解决方案 »

  1.   

    我也遇到一样的问题,现在解决了。
    签名和验证工具签名一致,只能说明你签名时的url和wx校验时的url不一致,可能是参数导致的,应该在打开页面前,先对参数进行encode,同样在你签名的时候对url的参数进行encode,这样就没问题了。
    注意,是url的参数,不是整个url,希望可以帮到你。
      

  2.   

    这是我的参数         
    string noncestr = "101072105102";
                string jsapi_tickets = jsapi_ticket;
                string timestamp = "201501270101";
                string url = "http://weixin.sinotruk.com/Location/Default.aspx";
                signature = CheckSignature(jsapi_tickets, noncestr, timestamp, url);下面是签名的方法 
     private string CheckSignature(string jsapi_ticket, string noncestr, string timestamp, string url)
        {
            string[] ArrTmp = { jsapi_ticket, noncestr, timestamp, url };
            Array.Sort(ArrTmp);     //字典排序  
            string tmpStr = string.Join("", ArrTmp);
            tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
            tmpStr = tmpStr.ToLower();
            return tmpStr;
        }
    为什么签名数据 跟 微信不一致呢,能指点一下么
      

  3.   


    有的资料说,url可以用location.href.split('#')[0]方法获得,我发现这个方法获得的url会带有微信传来的参数,那么签名的时候用的url是我的原始的url还是带参数的URL呢?请大牛指点啊,搞了好久没搞懂
      

  4.   


    有的资料说,url可以用location.href.split('#')[0]方法获得,我发现这个方法获得的url会带有微信传来的参数,那么签名的时候用的url是我的原始的url还是带参数的URL呢?请大牛指点啊,搞了好久没搞懂带参数的页面地址,也就是点“菜单”“复制链接”的那个地址。
      

  5.   


    有的资料说,url可以用location.href.split('#')[0]方法获得,我发现这个方法获得的url会带有微信传来的参数,那么签名的时候用的url是我的原始的url还是带参数的URL呢?请大牛指点啊,搞了好久没搞懂带参数的页面地址,也就是点“菜单”“复制链接”的那个地址。那微信带来的参数&from=timeline&isappinstalled=1,这个需要encode吗?
      

  6.   

    看这里:http://www.cnblogs.com/deepleo/p/weixinjssdk.html
      

  7.   

    请访解决了么?我也遇到这个问题了,能分享一下么?这是我的问题http://bbs.csdn.net/topics/390981338 谢谢了
      

  8.   

    估计也是url错了。。后面还有一个反斜杠的。。alert出来之后对比一下。。这个斜杠坑了我一个下午。。
      

  9.   

    同样的字符串
    http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
    和http://www.sha1-online.com/ 加密不一样啊, 是不是微信接口有bug。跪求解决方案啊。