因为小程序代码调用顺序的问题导致签名错误。先调用wx.login,再调wx.getUserInfo。这样就不会返回签名错误的问题了。
签名错误大概是先调用wx.getUserInfo获取的信息是使用之前的session_key。但是wx.login调用后就刷新了js_code。所以传道后端的js_code是新的,但是传上去的用户信息加密串却是上次的。所以后端用新的js_code来换取的session_key是新的,从而验签就不通过了。
查看了大多资料,其中相同原因的错误应该有:
1.PHP EasyWechat SDK 解密用户数据是返回 The given payload is invalid
2.微信小程序encryptedData解密偶尔报错-41003