首頁 微信小程式 微信開發 微信開發提示:config:invalid signature這個錯誤的解決方法

微信開發提示:config:invalid signature這個錯誤的解決方法

Nov 07, 2016 am 10:49 AM

微信開發提示:config:invalid signature這個錯誤的解決方法

微信公眾平台, config:invalid signature一直爆這個錯誤的解決方法
如果是invalid signature簽章錯誤。建議依下列順序檢查:
1.確認簽章演算法正確,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 頁面工具進行校驗。
2.確認config中nonceStr(js中駝峰標準大寫S), timestamp與使用以簽名中的對應noncestr, timestamp一致。
3.確認url是頁面完整的url(請在當前頁面alert(location.href.split(‘#’)[0])確認),包括’http(s)://’部分,以及’? ’後面的GET參數部分,但不包括’#’hash後面的部分。
4.確認 config 中的 appid 與用來取得 jsapi_ticket 的 appid 一致。
5.確保一定快取access_token和jsapi_ticket。

這個是重點:
確保你取得用來簽署的url是動態取得的,動態頁面可參考實例程式碼中php的實作方式。如果是html的靜態頁面在前端透過ajax將url傳到後台簽名,前端需要用js獲取當前頁面除去'#'hash部分的連結(可用location.href.split('#')[0]獲取,而且需要encodeURIComponent),因為頁面一旦分享,微信客戶端會在你的鏈接末尾加入其它參數,如果不是動態獲取當前鏈接,將導致分享後的頁面簽名失敗。

教如何驗證是否正確方法:
url動態取得的方法是:

$protocol = (!empty($_SERVER[HTTPS]) && $_SERVER[HTTPS] !== off || $_SERVER[SERVER_PORT] = = 443) ? "https://" : "http://";

$url = $protocol.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];

 

。頁alert(location.href.split('#')[0]);
然後你再印出動態取得的url是否和你alert的位址是否一樣。一定要一模一樣,包括大小寫。
如果發現不一樣,那就依照自己的需求改。反正要一樣。驗證簽名一定可以通過的。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)