小程序
小游戏
企业微信
微信支付
扫描小程序码分享
界面
问题:每次‘点击获取‘’第一次总是失败重试,第二次就OK了。
小程序端传入encryptedData, iv 到后端PHP
php 处理代理
如果代码有问题应该没有成功的解密号码的可能性。接口是这样返回的。
请问有没高手是啥问题啊。。。。百思不得姐啊
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
这问题搞了我2天,来挖个坟
我和楼主的思路原本是一样的,触发getPhoneNumber后,再调用wx.login及wx.request(到我的后台解密),问题就出在这。
我个人猜测,调用getPhoneNumber后,微信后台生成一个session,再调用wx.login,又再生成一个session,这时候通过getPhoneNumber得到的iv、encryptedData等信息就失效,再用这些参数去解密得到的session_key自然就失败了。这也解析了为何第一次失败,第二次就成功。因为在login的code仍生效时,再调用wx.login,微信后台不会再产生新的session_key。
所以解决方法是先调用wx.login,保存好code。调用getPhoneNumber后就直接调用wx.request去后台解密,亲测有效
但这个方法还是有坑,如果调用wx.login后,没有在5分钟内调用getPhoneNumber,那code就是会失效,拿不到session_key。这个就只能重新执行一次wx.login了.....谁设计的.......
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
楼主解决了吗 ,跟你碰到的问题一样。求指导!!
把官方返回的错误看看 不要用自己的错误返回
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
这问题搞了我2天,来挖个坟
我和楼主的思路原本是一样的,触发getPhoneNumber后,再调用wx.login及wx.request(到我的后台解密),问题就出在这。
我个人猜测,调用getPhoneNumber后,微信后台生成一个session,再调用wx.login,又再生成一个session,这时候通过getPhoneNumber得到的iv、encryptedData等信息就失效,再用这些参数去解密得到的session_key自然就失败了。这也解析了为何第一次失败,第二次就成功。因为在login的code仍生效时,再调用wx.login,微信后台不会再产生新的session_key。
所以解决方法是先调用wx.login,保存好code。调用getPhoneNumber后就直接调用wx.request去后台解密,亲测有效
但这个方法还是有坑,如果调用wx.login后,没有在5分钟内调用getPhoneNumber,那code就是会失效,拿不到session_key。这个就只能重新执行一次wx.login了.....谁设计的.......
楼主解决了吗 ,跟你碰到的问题一样。求指导!!
把官方返回的错误看看 不要用自己的错误返回