微信小程序数据字段大小写问题
2019年7月16日 · 44 字 · 1 分钟
这两天在开发微信小程序登录以及加解密的时候,因为数据大小写的问题被坑了一把。
场景
- 小程序调用
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
是大写
最后,祝大家在开发过程中少踩坑。