微信公众号分享,使用 http://res2.wx.qq.com/open/js/jweixin-1.4.0.js  调用jssdk的时候,权限校验提示config:fail 或者无效签名。

    总结以上可能会出错的原因

    1, 在公众号后台,功能设置-业务域名要设成 m.xxx.com JS域名也要设成 m.xxx.com

    2,通过 appId,appSecret 获取 access_token,此access_token要在服务器缓存.

    地址 

    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

    3,通过 access_token 获取jsapi_ticket ,此jsapi_ticket 要在服务器缓存。

    地址 

    https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

    4,分享接口校验签名,签名顺序 

    "jsapi_ticket=" + jsapiticket + "&noncestr=" + noncestr + "&timestamp=" + timestamp + "&url=" + url

    注意此处为不写 nonstr
    而在jssdk中权限签名



    wx.config({
        debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: '', // 必填,公众号的唯一标识
        timestamp: , // 必填,生成签名的时间戳
        nonceStr: '', // 必填,生成签名的随机串
        signature: '',// 必填,签名
        jsApiList: [] // 必填,需要使用的JS接口列表
    });

    注意红色,粗体大小写。

    原因:

    当前要分享的页面地址,如果是从其他微信分享过来的,地址栏上面会带有二个参数 from=groupmessage&isappinstalled=0 这样的二个参数。

    如果你把这二个参数带上去签名,那么肯定会提示无效签名。

    如果你只是截取地址,参与签名也会提示无效签名。

    正确做法,再做一次转发,主动把微信后面带的参数拿掉为止。

     

    联系QQ:343886028 --加QQ群 145315854