微信小程序获取用户手机号授权怎么弄

开发微信小程序会有些场景是需要授权用户手机号的,微信小程序授权用户手机号是通过getPhone接口授权的,因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。另外,新版本接口不再需要提前调用wx.login进行登录。从基础库 2.21.2 (微信版本8.0.16)开始,对获取手机号的接口进行了安全升级,也就是说基础库 2.21.2 以前的版本是旧版本,新版本和旧版本的区别是多了code参数,以后旧版本接口可能会摒弃,建议大家使用新版本的手机号授权。

小程序授权手机号获取的参数

首先先讲一下旧版本如何授权用户手机号,旧版本授权手机号点击授权时,会出现第一次授权不成功的现象,什么原因呢?code过期了,有人会问我获取的code是点击授权手机号时一起获取的,怎么会过期呢?这个就是这么神奇,可能是微信的bug问题吧,反正一直没决解,但也不是没有解决的方法,解决方法就是在onLoad页面加载时就wx.login获取code值;

微信小程序手机号操作流程

用户同意授权,我们可以根据wx.login时获取到的code来通过后台以及微信处理拿到session_key,最后通过app_id,session_key,iv,encryptedData(用户同意授权errMsg返回‘getPhoneNumber:ok')

传给后台的参数:code参数传到后台需要换取session_key;encryptedData包括敏感数据在内的完整用户信息的加密数据,iv加密算法的初始向量,这两个参数后台需要解密的,解密的方法可以去微信官方开发文档查看,有很详细说明,这里就不讲述了。

第一种反馈:{"errcode":47001,"errmsg":"data format error hint: [AgoBsDOre-c6ouia] rid: 626b7164-1d9c3b08-076fdbdb"},这个错误是因为没有用请求头 Content-Type为application/json,所以我改成了json数据post请求,这个报错解决了。

第二种反馈:{"errcode":41001,"errmsg":"access_token missing rid: 626b7285-31e3f8d7-3556ca83"},这个错误是因为access_token参数,我没写在url上,是和code一起写在数组中传值的,这样是不对,应该写到url上的,这个报错解决了。

旧版本的后台逻辑没有写出来,是因为微信以后要摒弃旧版本的写法,这里就没必要写了,如果有不会的,可以网上搜索一下,建议大家还是用新版本获取用户手机号的写法!小程序js文件中request请求,我用的是封装后的写法传参的,你可以微信小程序原生的wx.request传参写法。以上就是微信小程序新版本与旧版本授权用户手机号的教程了,仅供参考!

宝宝起名 公司起名,添加 微信:2296682980  备注:起名

企业管理 网络创业,添加 微信:2296682980  备注:企业管理或网络创业

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 Cyyfzgxxkjyxgs@163.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://yjdsqm.com/3904.html