通過官方的例子就能配置成功,需要注意session_key,$encryptedData和$iv一定要嚴(yán)格對(duì)應(yīng),如果沒有對(duì)應(yīng)就無法解密并返回錯(cuò)誤碼:-41003. 這個(gè)問題調(diào)整了兩三天,才發(fā)現(xiàn)是調(diào)試時(shí)把$encryptedData寫死了,所以才出現(xiàn)這個(gè)問題。
引入微信加密數(shù)據(jù)解密后,返回的數(shù)據(jù)一直報(bào)SyntaxError: Unexpected token in JSON at position 0,無法解析成json對(duì)象。一般的如果是數(shù)據(jù)格式錯(cuò)誤的話,token后面會(huì)有錯(cuò)誤的字符,奇怪的是這個(gè)沒有。折騰了一下午,后來通過調(diào)試后發(fā)現(xiàn),在服務(wù)器返回的數(shù)據(jù)前面多了幾個(gè)一般情況下看不到的空格,上圖:
這個(gè)空格在編輯器里是看不到的,就是這個(gè)空格把所有的東西都改變了。打印出來的內(nèi)容變成了這樣:
data:"?{\"code\":200,\"message\":\"user login success!\",\"data\":\"<''\"}"
??????而正常情況下是:
data:{"code":200,"message":"user login success!","data":"<''"}
解決方法:把從微信官方提供的解密文件轉(zhuǎn)換成“以UTF-8無BOM格式編碼”即可神奇的解決這個(gè)問題。
轉(zhuǎn)換后調(diào)試結(jié)果,JSON也能正常解析了。