您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么解決php微信登錄41001錯誤問題”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么解決php微信登錄41001錯誤問題”文章能幫助大家解決問題。
php微信登錄41001錯誤的解決辦法:1、查看日志;2、通過stripslashes去掉反斜杠;3、通過json_decode進行解碼即可。
本文操作環境:windows7系統、PHP7.1版、DELL G3電腦
如何解決php微信登錄41001錯誤問題?
小程序登錄解密用戶數據encryptedData -41001: encodingAesKey 非法
問題:
做小程序微信授權登錄,先獲取code,然后去獲取到session_key和open_id,再拿到encryptedData,傳到服務器去解密拿到用戶信息,但是有時成功,有時返回-41001錯誤, 觀察日志,都有獲取到session_key,這是什么原因造成的,應該怎么去解決呢?
解決方法:
剛開始考慮的方向一直是session_key過期之類的,因為不知道session_key的過期,后經多次試驗知道不是此原因導致
然后開始翻閱各種相關博客及搜索相關問題,終沒有找到解決方案,可能是出現的這個問題太不應該了,所以這方面的問題并不多
最后開始翻看解密的SDK源碼,然后發現-41001是的原因 是驗證了session_key的長度
if (strlen($this->sessionKey) != 24) { return ErrorCode::$IllegalAesKey; } //public static $IllegalAesKey = -41001; //>-41001: encodingAesKey 非法
最后又細細去看日志(之前也有詳細對比session_key,只是看有值,一大串字符,也不懂其中的深意,就知道有的成功,有的失敗,根本找不到規律),留意session_key長度,才看出來其中的貓膩
PHP的json字符串有時候加上反斜杠”\”來轉義,PHP處理時需要先去掉反斜杠,然后再json_decode
$str = stripslashes($json); $arr = json_decode($str,true);
使用stripslashes()函數,問題解決!
關于“怎么解決php微信登錄41001錯誤問題”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。