这两天在开发微信小程序登陆以及加解密的时候,由于数据大小写的问题被坑了一把。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