1. 程式人生 > >微信分享連結出現config:invalid signature錯誤的解決方法

微信分享連結出現config:invalid signature錯誤的解決方法

當開發微信時需要做特定的頁面做分享時,根據官方提供的jssdk.php檔案建立的簽名資料包除錯時,大家碰到的最多的錯誤而且解決最麻煩的大概就是signature錯誤了,如下圖:

微信分享連結出現config:invalid signature錯誤的解決方法

分享時提示錯誤“{"errMsg":"config:invalid signature"}”

一般出現這個錯誤多半是簽名獲取失敗,而造成簽名獲取失敗的原因各種各種,餘鬥在開發的時候也遇到過這種情況,搜尋了不少網上教程,解決了自己的問題。接下來,餘鬥將這些解決方法統一整理列出來,希望可以幫到大家:

1、APPID和APPSECRET填錯

這個錯誤可以到官方的除錯頁面獲取access_token看看是否是正確,點選

獲取獲取access_token

根據返回的結果可以判斷頁面內的APPID和APPSECRET有沒有出錯,沒有出錯的話可以點選獲取jsapi_ticket

利用前面拿到的access_token 採用http GET方式請求獲得jsapi_ticket,如果出錯的話會返回對應的說明。

點選進行確認簽名演算法校驗

點選檢視全域性返回碼說明

2、超過了每日的access_token獲取上限

官方限定每日2000次請求,所以如果沒有快取access_token的話,還是比較容易過限的。

3、檢視微信公共號狀態是否不正常

比如驗證過期了,被封禁了等。

4、確認config中nonceStr

js中駝峰標準大寫S, timestamp與用以簽名中的對應noncestr, timestamp一致。

5、確認url是頁面完整的url

請在當前頁面alert(location.href.split('#')[0])確認,包括'http(s)://'部分,以及'?'後面的GET引數部分,但不包括'#'hash後面的部分,這裡在文章《靜態頁面實現微信分享帶縮圖、標題和描述》最後已做說明,大家可以自行修改好。

6、配置curl是否使用ssl的帶證書(https協議)訪問開關

找到官方提供的jssdk.php,找到程式碼:


  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
 

將true改為false,因為一般我們是沒有安裝證書的(https協議),所以將true改為false就好,反之,如果網站安裝了證書,則將false改為true。

7、將網站所在伺服器IP地址加入白名單

微信分享連結出現config:invalid signature錯誤的解決方法

8、反向代理問題

如果以上查驗絕沒有解決問題,則檢視下自己的伺服器是否反向代理沒有設定好,nginx配置反向代理程式碼:


proxy_set_header Host $http_host;
 

轉載:https://www.yudouyudou.com/jiaochengheji/wangzhanjianshe/1237.html