本篇文章给大家谈谈微信小程序获取手机号失败什么原因,以及微信小程序获取手机号失败怎么办对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、微信小程序(抖音小程序):手机号码解析失败解决方案
- 2、小程序获取手机号码,提示 getPhoneNumber :fail:access denied
- 3、微信小程序获取用户信息失败
- 4、国务院客户端微信获取手机号失败?
- 5、企业微信获取本机号码失败
- 6、微信小程序获取手机号失败怎么办
微信小程序(抖音小程序):手机号码解析失败解决方案
本文以抖音小程序(微信小程序获取流程和接口一模一样)为例,最近博主在做一个抖音小程序的小项目,前端在获取用户手机号的时候,需要调用 tt.login 接口进行登录,登录后返回一个code,这个code有3分钟的失效时间,根据这个code可以获取到sessionKey,这个sessionKey类似于对称加密的密钥,会对用户信息进行加密。在获取用户信息的时候,前端
需要将 button 组件 open-type 的值设置为 getPhoneNumber。用户点击后会弹出一个授权弹窗让用户确认(若该用户账户未绑定手机号码会执行一次绑定手机号码的流程;授权弹窗每次使用都会弹出)。 用户同意后,开发者可以通过 bindgetphonenumber 事件回调获取到一个加密数据,开发者可以把该数据传回到自己的服务端进行解密获取手机号。
获取到的加密数据需要使用sessionKey进行解密,因此在获取用户信息前,需要登录一次,获取到code,然后根据code获取到sessionKey,再根据sessionKey进行加密数据的解密,解析出手机号。
根据博主猜测,抖音在登录后会生成一个code,和一个对应的sessionKey,在会话期间(session未过期)的时候获取用户信息,会将用户信息使用sessionKey进行数据的加密,进行数据的解密也需要使用到sessionKey。code和sessionKey是对应的,但是它们的失效期是不一样的,code的失效期是3分钟,sessionKey的失效时间是不定的,只要用户活跃在页面上都不会失效。在获取到code的3分钟内调用 code-2-session 接口,会获取到sessionKey,如果3分钟后根据code获取sessionKey将会获取失败,因此解密也会失败。
因为无法判断用户什么时候开始获取用户信息,所以用户一进入页面,前端就会调用 tt.login 接口进行登录,然后放到localstorage缓存中,在用户点击按钮时,弹出授权框用户确认后获取到用户信息的加密数据,然后前端将缓存的code和加密数据一并传给后端。后端用code先去调用 code-2-session 接口获取到sessionKey,然后以sessionKey为密钥进行AES解密,获取到手机号返回给前台。整个流程看起来没什么问题,但是一旦用户在页面停留时间超过3分钟,然后再去获取用户信息会失败,主要是因为code已经失效,获取sessionKey会失败。
目前的问题就是过了code的有效期后,根据code获取sessionKey失败。那么在前端login获取到code后,先缓存到本地,然后立即调用后台接口去获取sessionKey然后缓存到redis里面,key为code,value为sessionKey。失效时间根据自己的业务设置(小程序页面用户不会停留太久,因此缓存失效时间设置为30分钟),用户退出小程序后,会重新login,然后也会存一份新的code和sessionKey的对应值。
用户在授权到用户信息后,前端直接将缓存的code和加密后的用户信息上传到服务到进行解密。服务端根据code从缓存中先获取到sessionKey,然后再用sessionKey进行解密,解析出手机号进行返回。
以上解决办法每次基本都可以获取手机号成功,但是也会存在一些问题
UserInfoController主要提供两个接口,一个是解密手机号和code2seesion操作
TiktokEncryptedParam 主要是前端传过来的code和加密后的数据
TiktokUserInfoSPI 主要是对接口的封装
TiktokUserInfoSPIAdapter 实现接口
使用AES对称加密

小程序获取手机号码,提示 getPhoneNumber :fail:access denied
小程序获取手机号码,提示 getPhoneNumber :fail:access denied,是设置错误造成的,解决方法如下:
1、首先附上一张小程序获取用户手机号码的流程图。
2、按照上图所示,需要先获取用户的登陆凭证,下面这个代码是使用小程序登录接口以后在获取的,其中wx.request()是微信官方的API,它的作用是发送网络请求到后端,然后在后端用code换区session_key和openid。
3、现在前端已经将获取的openid和session_key所需的参数传递给后端了,在后端写入相关代码。
4、这时前端success就可以取到openid和session_key了,那么就需要在后端用session_key和openid来获取解密手机号码了;相关代码。
5、最后在小程序的wxml文件中写一个button按钮来获取用户手机号码,就完成了。
微信小程序获取用户信息失败
那是你没受权小程序应用权限导致的,系统无法检测你的登录信息,请重新受权即可。
需要将 button 组件 open-type 的值设置为 getPhoneNumber。用户点击后会弹出一个授权弹窗让用户确认(若该用户账户未绑定手机号码会执行一次绑定手机号码的流程;授权弹窗每次使用都会弹出)。
用户同意后,开发者可以通过 bindgetphonenumber 事件回调获取到一个加密数据,开发者可以把该数据传回到自己的服务端进行解密获取手机号。
安全管理:
2018年12月27日,腾讯公司发布《腾讯隐私保护白皮书》,倡导“科技向善,数据有度”的隐私保护理念。在微信小程序的《服务条款》、《运营规范》中,分别设有“用户个人信息保护”和“用户隐私及数据规范”专章介绍。
微信小程序在产品功能设计上给用户更多控制力。在微信小程序的设置页,为用户提供了数据权限开关,一旦用户授权之后又关闭,微信小程序再次使用该用户数据时需要重新获得授权,为用户提供更方便的数据控制权。用户在微信小程序的资料页还可以看到隐私数据保护的提示以及投诉入口。
国务院客户端微信获取手机号失败?
网络不好,或者没点授权。
国务院客户端微信获取手机号失败可能是网络不好,退出小程序刷新一下就可以了。还有一种是你忘记点授权了。
小程序里的授权,具体表现是,弹窗请求允许使用某些功能,比如授权获取用户信息、授权获取手机号等,标题会显示“微信授权”,如果你选择拒绝,那应用程序就什么都拿不到。
企业微信获取本机号码失败
在企业微信时小程序获取手机号会失败,原因为 “该方法不能运行在webview中”。
可以退出软件重新进入或者卸载重装尝试重新获得本机号码。如果都不成功建议等待更新后再重新尝试。
企业微信是腾讯微信团队打造的企业通讯与办公工具,具有与微信一致的沟通体验,丰富的OA应用,和连接微信生态的能力,可帮助企业连接内部、连接生态伙伴、连接消费者,高效协同、专业管理、人即服务。
微信小程序获取手机号失败怎么办
这种情况我也遇到过,一般都是这种小程序不稳定导致的获取手机号失败,另外可以尝试验证码获取。
关于微信小程序获取手机号失败什么原因和微信小程序获取手机号失败怎么办的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » 微信小程序获取手机号失败什么原因(微信小程序获取手机号失败怎么办)
1 评论