一、使用场景
在做一款党建类的小程序时,使用到了获取用户信息以及code进行登录。
使用小程序的button按钮open-type="getUserInfo",获取用户信息;获取完用户信息之后,调用wx.login方法,来获取code;最后将getUserInfo获取到的encryptedData和iv以及wx.login获取的到code做为参数,调用接口传给后台。
二、遇到问题以及解决方法
上面的方法是没有错误的,但是在使用的时候,有一定几率会报用户信息解密错误(41003)。这是因为请求顺序的原因,先去获取encryptedData和iv,再去获取code。这个时候获取到code后,iv可能就已经失效了。
解决方法是,在wx.login里面再次调用wx.getUserInfo方法(这个方法在已经获取到用户授权之后使用是没有授权弹框的),使用第二次getUserInfo获取到的encryptedData和iv作为参数调用接口,这个时候就不会报用户信息解密错误了。













