微信小程序数据字段大小写问题

这两天在开发微信小程序登录以及加解密的时候,因为数据大小写的问题被坑了一把。

场景

  1. 小程序调用wx.login时会获得code,传输给服务端可以得到openid,unionid(绑定了开放平台),session_key
  2. 小程序调用getUserInfo会获得encrypted_data,iv,解密后得到unionId,openId
  3. unionidopenid这两个场景键名大小写是不同的

例子

  1. 服务端根据code获取session_key返回结果如下:

    1
    2
    3
    4
    5
    {
    "session_key": "我是session_key",
    "openid": "我是openid",
    "unionid": "我是unionid"
    }
  2. 服务端根据session_key解密encrypted_data和iv返回结果如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    {
    "openId": "OPENID",
    "nickName": "NICKNAME",
    "gender": GENDER,
    "city": "CITY",
    "province": "PROVINCE",
    "country": "COUNTRY",
    "avatarUrl": "AVATARURL",
    "unionId": "UNIONID",
    "watermark":
    {
    "appid":"APPID",
    "timestamp":TIMESTAMP
    }
    }

可以看到两次同样的字段openidunionid大小写是不同的,此处容易踩坑。

结论

  1. 服务端根据code换session_key/openid/unionid小写
  2. 服务端根据encrypted_data和iv解密得到的openId/unionId大写

最后,祝大家在开发过程中少踩坑。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×