天天看點

java解密微信小程式encryptedData擷取unionid遇坑

未關注微信小程式的主體公衆号時,通過wx.getUserInfo方式擷取unionid

java解密微信小程式encryptedData擷取unionid遇坑

解密過程中踩坑記錄

坑一:javax.crypto.BadPaddingException: pad block corrupted

原因:sessionKey與encryptedData,iv不比對,解決:wx.login在wx.getUserInfo之前調用

坑二:java.lang.IllegalArgumentException: Null input buffer

原因:encryptedData末尾的等号由于前端使用小程式内嵌H5,小程式傳參至H5時接受的encryptedData末尾的等号丢失,導緻encryptedData錯誤,解決:前端将encryptedData與iv利用encodeURI編碼傳H5,H5進行decodeURI後調後端解密接口

iv末尾等号丢失解決辦法同上