微信小程序数据字段大小写致使的坑

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

场景

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

例子

  1. 服务端根据code获取session_key返回结果以下:小程序

    {
        "session_key": "我是session_key",
        "openid": "我是openid",
        "unionid": "我是unionid"
    }
  2. 服务端根据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
        }
    }

能够看到两次一样的字段openidunionid大小写是不一样的,此处容易踩坑。微信

结论

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

最后,祝你们在开发过程当中少踩坑。session

更多精彩尽在个人博客一键直达app

相关文章
相关标签/搜索