微信二次分享鏈接,出現config:invalid signature錯誤的解決方法

當開發微信時需要做特定的頁面做分享時,根據官方提供的jssdk.php文件創建的簽名數據包調試時,大家碰到的最多的錯誤而且解決最麻煩的大概就是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地址加入白名單

登錄微信公衆平臺,依次點擊設置->安全中心->IP白名單進行添加或修改

ps:微信開放平臺、公衆平臺、商戶平臺區別

一.微信開放平臺

主要面對移動應用/網站應用開發者,爲其提供微信登錄、分享、支付等相關權限和服務。

微信開放平臺還提供了數據統計功能,用於開發者統計接入應用的登錄、分享等數據情況。

接入步驟

已京東APP舉例,比如京東APP需要使用微信登錄、分享和微信支付功能,首先註冊微信開發平臺-開發者賬號,並按照以下流程在微信開放平臺創建京東APP:

審覈通過後,即可獲得以下的初級權限,如要獲得更高如微信支付權限,需要再單獨申請,具體微信支付權限申請步驟詳見附件《移動應用-微信支付權限申請流程》

二.微信公衆平臺

微信公衆平臺用於管理、開放微信公衆號(包括訂閱號、服務號、企業號),簡單的說就是微信公衆號的後臺運營、管理系統。

後臺功能(以服務號介紹)

(1) 基礎運營功能:公衆號申請成功後即可獲得羣發功能、自動回覆、自定義菜單、投票管理;

(2) 高級功能:微信公衆平臺還提供了以下高級的功能來豐富公衆號,以下權限需要二次開發。

(3) 微信支付:提供公衆號內微信支付能力,和移動應用一樣也需要單獨申請,流程和移動APP流程類似。

(4)管理:包括已關注用戶管理、消息管理、素材管理

(5)推廣:包括廣告主(定向投放廣告,精準推廣自己的服務)和流量主(按月獲取廣告收入)

(6)統計:用戶分析、圖文分析、消息分析、接口分析(自定義菜單調用量)

三.商戶平臺

無論是申請 公衆平臺商戶 還是 開放平臺商戶,申請成功後,都會擁有商戶平臺賬號,可登陸商戶平臺進行操作。

商戶平臺主要就是做微信支付用的,如果APP或者公衆號需要接入支付功能,那麼就需要在公衆平臺申請公衆平臺商戶,或者在開放平臺申請開放平臺商戶。申請成功後會分配商戶平臺賬號。

8、反向代理問題

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


proxy_set_header Host $http_host;
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章