微信企業號 jsSDK wx.config報invalid signature錯誤,導致api接口無法使用


最近在做公司定制化的時候發現一個問題,使用微信的語音API的時候微信報錯,錯誤信息為:the permission value is offline verifying

但是詭異的是:同樣的代碼在我們公司的產品上就不會報這個錯誤,可以正確調用接口。但是放在客戶的服務器上,wx.config里面的參數配置成客戶微信企業號信息就會報錯。

通過查詢發現,微信JS-SDK的附錄5已經說明了這個問題可能存在的原因

通過排查,發現23沒有問題,所以將焦點放在了第一個。

通過微信提供的web調試工具發現wx.config果然報錯了,錯誤代碼invalid signature,意思是簽名錯誤

再去微信JS-SDK里面查這個錯誤發現如下說明

通過微信提供的微信 JS 接口簽名校驗工具進行驗證,發現后台計算的結果和工具得到的結果一致,說明后台算法沒有錯。

然后把目光放在了生成簽名的幾個參數上面

因為之前在公司產品上是沒問題的,所以我們認為前三個參數都沒有問題,可能是最后一個url參數有問題,遂通過一番查找分別查詢了如下幾個方面。

1、確認url是頁面完整的url(請在當前頁面alert(location.href.split('#')[0])確認),包括'http(s)://'部分,以及'?'后面的GET參數部分,但不包括'#'hash后面的部分,url是動態獲取的。

2、去微信企業號后台確認可信域名是否正確並符合規則。

 

結果,發現所有的配置都沒有問題,算法也沒有問題,但是錯誤依然存在,於是bug的解決陷入了停滯。

於是開始了各種問,各種找,在某一個群上詢問是大神的一句“反向代理”,讓絕境有了一線生機,后台同學說我們的項目是通過反向代理來映射到我們公司的服務器上的。

於是,通過后台調試發現,果然生成秘鑰的url域名並不是可信域名,而是反向代理設置的域名,於是乎,問題終於是解決了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM