小程序
小游戏
企业微信
微信支付
扫描小程序码分享
获取手机号按钮点击后参数,解密后有几率会解密失败返回null是怎么回事
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
要先login,再获取加密数据。
如果先获取到iv和encryptedData,此时获取的数据是需要之前的session_key才能解密,但是由于你是之后才用code换取的session_key的话,新的session_key就解不了了,所以返回一个null。code好像只有5分钟的失效,也对应session_key。这时如果你再获取一次,因为相差不到5分钟,所以session_key没变,就正常返回了。
所以要实现login拿到code换取session_key,存储在服务端,再获取iv和encryptedData
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
现在你这个流程还好使不
最近一段时间没开发小程序了,不清楚是否调整了,之前确实是这个样子
建议在app.js里面写好 // 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 保持微信5分钟内login长登录,避免在获取手机号码的时候做登录失效检查
setInterval(() => {
}, 280000)
不一定要先login吧, 今天测试了下,小程序不登陆,就一个静态页。然后放一个按钮获取手机号,拿到iv和
encryptedData后, 在通过wx.login 拿 code, 将 code,iv, encryptedData一并发送后台进行解密。 大部分情况可以,偶尔会解密失败。有点奇怪
感谢!
上面有几个错别字,应该不影响阅读。我也是上周才做的这个功能,有问题多交流
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
要先login,再获取加密数据。
如果先获取到iv和encryptedData,此时获取的数据是需要之前的session_key才能解密,但是由于你是之后才用code换取的session_key的话,新的session_key就解不了了,所以返回一个null。code好像只有5分钟的失效,也对应session_key。这时如果你再获取一次,因为相差不到5分钟,所以session_key没变,就正常返回了。
所以要实现login拿到code换取session_key,存储在服务端,再获取iv和encryptedData
现在你这个流程还好使不
最近一段时间没开发小程序了,不清楚是否调整了,之前确实是这个样子
建议在app.js里面写好 // 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 保持微信5分钟内login长登录,避免在获取手机号码的时候做登录失效检查
setInterval(() => {
wx.login({
success: res => {
}
})
}, 280000)
不一定要先login吧, 今天测试了下,小程序不登陆,就一个静态页。然后放一个按钮获取手机号,拿到iv和
encryptedData后, 在通过wx.login 拿 code, 将 code,iv, encryptedData一并发送后台进行解密。 大部分情况可以,偶尔会解密失败。有点奇怪
感谢!
上面有几个错别字,应该不影响阅读。我也是上周才做的这个功能,有问题多交流