小程序的获取用户信息报解密错误(41003)

一、使用场景

在做一款党建类的小程序时,使用到了获取用户信息以及code进行登录。
使用小程序的button按钮open-type="getUserInfo",获取用户信息;获取完用户信息之后,调用wx.login方法,来获取code;最后将getUserInfo获取到的encryptedDataiv以及wx.login获取的到code做为参数,调用接口传给后台。

Created with Raphaël 2.2.0 Button getUserInfo wx.login request

二、遇到问题以及解决方法

上面的方法是没有错误的,但是在使用的时候,有一定几率会报用户信息解密错误(41003)。这是因为请求顺序的原因,先去获取encryptedDataiv,再去获取code。这个时候获取到code后,iv可能就已经失效了。

解决方法是,在wx.login里面再次调用wx.getUserInfo方法(这个方法在已经获取到用户授权之后使用是没有授权弹框的),使用第二次getUserInfo获取到的encryptedDataiv作为参数调用接口,这个时候就不会报用户信息解密错误了。

Created with Raphaël 2.2.0 Button getUserInfo wx.login wx.getUserInfo request

你可能感兴趣的:(小程序)