请问下wx.getUserInfo(OBJECT)和getPhoneNumber(OBJECT)的解码是一样的吗?为什么我原来的代码wx.getUserInfo(OBJECT)用示例代码可以解出来,但是getPhoneNumber(OBJECT)解码的时候始终都是
error code<li>-41003: aes 解密失败</li>???
想请问一下我是哪里出错了?
正常解出来的,用一样的代码一样的解密函数,导入一样的参数,但是就是出错
求指教~~~~~谢谢
你好,session未过期情况下login会刷新登录态,导致sessionKey发生变化。稳妥的方案是在用户点击后,先checkSession,如果未过期,不login,服务器可以用之前的sessionKey解密。如果session过期,再重新login,可以使用新的sessionKey解密。
如果在获取到加密信息后调用login,如果此时登录未过期,sessionKey会刷新,开发者使用code获取到的sessionKey和加密用的sessionKey就不是同一个了。
手机号码这个可能也会有另一个问题,对某些解密算法库的实现支持有问题,刚刚定位到,我们会尽快修复。
@晨
__
__
明白了,谢谢耐心解释,刚才测试也成功了。
也就是说,bindgetphonenumber的时候是用现有的key进行加密的,如果过期就用新的key加密。
如果提交服务器前再wx.login会产生新的key而解不出来。
那么问题来了。。。哎!
很多人都不储存 code 或者sessionkey 在用户端或服务器上,因为wx.XXXX,的接口都是异步的,判断起来有点麻烦,所以都是现用现wx.login(), 反正频率也不会搞,我们保持用户连接的key是自己生成的key,不用wx.login。
而过去的getUserInfo, getWeRunData,还有群ID的那个就是用接口,都可以先wx.login(), 成功后再 wx.XXXXX
只有这个是先加密好了, 这个就有点麻烦了,需要改不少地方。
我不知道在<button /> 上 加个bindtap=“login” ,能否先在 bindgetphonenumber 重新生成 code,这样就不需要改很多地方。