這篇文章主要介紹了微信jssdk簽名錯誤invalidsignature的解決方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。
invalidsignature是什么
幾乎每一個開發用于微信公眾號頁面的工程師都遇到過微信jssdk報的各種錯誤,通常是permissiondenied,類似這樣:
通常他們會建議你把debug選項開開,比如這樣:
wechat.config({ debug:true, appId:appId, timestamp:timestamp, nonceStr:nonceStr, signature:signature, jsApiList:['scanQRCode'], });
結果你又遇到了invalidsignature。類似這樣:
簽名不對,這是什么意思?可是這簽名是后端給過來的,我怎么知道它為什么不對?后端用的是標準算法,不可能不對啊。
invalidsignature怎么辦
查網上各種教程,或者微信官網,他們總是不厭其煩地告訴你,讓你去檢查簽名算法,然而根本沒有用!
90%的這種情況下,其實只是一個原因:你用于計算簽名的URL地址不對,跟算法沒有任何關系,完全不必浪費時間去看什么簽名算法。
微信要求:如果我們需要在頁面中調用微信的某個方法,則必須用這個頁面的URL地址獲取簽名。聽上去似乎很好理解,但是實際上URL地址包含的部分很多,有問號,有#號,你所要做的是取出#前面的部分。比如說你的URL地址是這,那么你用于計算簽名的URL地址不可以是,也不能是,而必須只能是。
如何獲取當前頁面的URL地址呢?這個很簡單:
letwechaturl=window.location.href.split('#')[0];
然而你以為事情就這樣結束了?太天真。你的頁面還是無法正常使用微信函數的。
因為:微信內嵌瀏覽器在iOS和安卓下的表現不一樣。
在安卓下,你確實用上面的方法是可以調用了。但是在iOS下,簽名依然失敗!因為在iOS下,微信需要你傳遞的是入口URL,而不是當前頁面的URL!
比如說,你在微信公眾號的某個菜單鏈接進入了A頁面,然后從A頁面的某個鏈接跳轉到B頁面,然后你在B頁面獲取簽名,如果是在安卓下,你應該用B頁面的URL地址來獲取,但是在iOS下,你還必須用A頁面的URL地址來獲取,否則就還是簽名失敗!
感謝各位的閱讀!關于“invalid signature的解決方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
信用卡透支消費利率為多少呢?一般來說,信用卡正常透支消費是不收取利息的,所以也沒有利率。只有在持卡人使用信用卡透支取現或是逾期還款、只還了當期賬單最低還款額的情況下,銀行才會從交易記賬日開始計收利息。通常,利息是按日利率萬分之五計算,按天收取,按月計收復利,直到還清為止。信用卡的透支利息是怎么產生的?1、透支取現:包括ATM取現,和信用卡現金轉出,這種是產生利息最常見的情況。畢竟信用卡只有透支消費...
(資料圖片)提起怎么上傳音樂大家在熟悉不過了,被越來越多的人所熟知,那你知道怎么上傳音樂嗎?快和小編一起去了解一下吧!1、第一步在我們的手機里面打開音樂軟件,進去聽歌的界面,點擊右上方的列圖標。2、打開側邊欄界面之后,點擊個人頭像進入個人頁面。3、進去個人主頁界面之后,點擊右上方的賬號設置。4、進去個人信息界面之后,點擊上傳音樂作品。進去上傳音樂作品界面之后,點擊上傳作品。進去上傳音樂作品的詳情界...
短債基金是什么意思?基金分為很多類型,主要是按照投資持倉來分,比如股票型基金、貨幣基金、債券基金等等,而債券基金又分為短債基金、中短債基金、中長期純債基金等等,很多人都是買的短債基金,短債基金是主要投資于久期小于1年的債券,中短債基金主要投資于久期在1-3年的債券,中長期純債基金則沒有久期的限制。久期就是債券的剩余壽命,也就是債券持有者收回全部本金和利息的平均時間。久期越長,債券價格的波動越大,風...