这两天在开发微信小程序登陆以及加解密的时候,由于数据大小写的问题被坑了一把。json
wx.login
时会得到code
,传输给服务端能够获得openid
,unionid(绑定了开放平台)
,session_key
getUserInfo
会得到encrypted_data
,iv
,解密后获得unionId
,openId
unionid
和openid
这两个场景键名大小写是不一样的
服务端根据code获取session_key
返回结果以下:小程序
{ "session_key": "我是session_key", "openid": "我是openid", "unionid": "我是unionid" }
服务端根据session_key解密encrypted_data和iv
返回结果以下:微信小程序
{ "openId": "OPENID", "nickName": "NICKNAME", "gender": GENDER, "city": "CITY", "province": "PROVINCE", "country": "COUNTRY", "avatarUrl": "AVATARURL", "unionId": "UNIONID", "watermark": { "appid":"APPID", "timestamp":TIMESTAMP } }
能够看到两次一样的字段openid
和unionid
大小写是不一样的,此处容易踩坑。微信
code换session_key/openid/unionid
是小写
encrypted_data和iv
解密获得的openId/unionId
是大写
最后,祝你们在开发过程当中少踩坑。session
更多精彩尽在个人博客一键直达app