微信 JSSDK 报 config:invalid signature 错误

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在微信公众号开发中遇到自定义分享内容。使用 JSSDK 的时候一直报 config:invalid signature 错误。

大家可以先参考一下腾讯的官方说明。

然后需注意一下几点:

  • 签名要用到的jsapi_ticket需要保存的,2小时有效期。如果在2小时内出现问题需要删除才能工作,一般是自身程序的问题,请检查。

  • nonceStr和noncestr的大小写,当心!

  • url一定要当心,如果是"http://x.com/jspay?oid=0&attr=1#wechat"的形式,那么应该保留的是"http://x.com/jspay?oid=0&attr=1"。

  • 据此,url在JavaScript中是location.href.split('#')[0]获取。

  • 据此,url在php中用$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]拼装,

  • 据说会有多余的80端口问题,但是记录者没有遇到过,总之请小心。

  • url在JavaScript中千万别忘记“encodeURIComponent”!否则后果很诡异,遇到过初始化的时候报invalid
    signature,但是API接口又能调用的情况。

1、页面请求的 url 和生成 signature 的 url 必须一致。

2、url 需去除 # 号后面的内容 (  encodeURIComponent(location.href.split('#')[0])  )

我的是通过 ajax 调用生成签名来配置 wx.config({ }) 的

后台php

 //获取微信JSSDK配置信息
    function getSignPackage($url){
        $jssdk = new JSSDK("addId", "appSecret");
        $signPackage = $jssdk->GetSignPackage($url);
        $signPackage['code']=(empty($signPackage))?0:1;
        $this->ajaxReturn(json_encode($signPackage));
        exit();
    }
ps:
具体怎么使用微信自定义的分享功能可以参考
http://www.huceo.com/post/414.html
 

转载于:https://my.oschina.net/jack088/blog/677270

你可能感兴趣的:(微信 JSSDK 报 config:invalid signature 错误)