【微信小程序】纯前端获取用户手机号码

这篇具有很好参考价值的文章主要介绍了【微信小程序】纯前端获取用户手机号码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2024.02.04更新

作者最近做了一个小程序项目,证明了纯前端获取手机号是不可以发布的,首先审核时会因为appsecret明文而不通过,就算你使用某种加密方法绕过审核,正式发布后在真机环境还是不可以使用的,所以本方法仅供练习使用,在第二步拿到code之后传给后端就可以了,后端的做法就和文中接下来的步骤差不多,拿token然后请求手机号。

------------------------------------------------------------------------------正文--------------------------------------------------------------------------------------
需求场景:
作者之前做了一个适配手机端的网页项目,由于项目要的急,当时产品并没有要求登录等权限控制模块,给客户演示时也是使用浏览器切换到手机端直接查看网址,现在演示完毕后,要求增加权限控制模块。

由于整个项目除了小程序端还有完整的网页端系统,所以小程序这边只需要做一个获取用户手机号传输给后端进行权限校验即可。

作者作为前端小萌新,此前没有实际的小程序开发经验,在网上查资料也大部分是通过后端协助完成的这件事情,由于作者这边暂时没有后端支持(并且很闲 ),所以自己通过啃文档和查资料完成了小程序前端获取用户手机号。

实现步骤:
首先第一步肯定是下载微信开发者工具,并且创建一个空白项目,这个步骤作者就不多说了,不会的朋友可以百度一下,有很多教程,难度不大。

第二步,使用微信小程序手机号快速验证组件,具体使用方法小程序官网说的非常详细(如图)。
网页获取手机号,微信小程序,前端,小程序

但是这里要注意的一点是,有可能会出现getPhoneNumber回调函数的默认参数中不存在code的情况,这是由于微信开发者工具创建的项目默认的调试基础库版本较低的原因,可以在右上角详情-本地设置中修改调试基础库版本。
网页获取手机号,微信小程序,前端,小程序
网页获取手机号,微信小程序,前端,小程序

<view class="container">
 <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>
</view>

在项目默认目录的index.wxml中使用组件。而后在index.js中写getPhoneNumber回调函数,这个code就是我们需要的动态令牌了。

getPhoneNumber (e) {
      let token = ''
	  let code = e.detail.code
}

第三步,获取token,这一步获取token主要是获取手机号的接口需要传递token才能使用,一般情况下这步是由后端进行,但如前文所说,暂时没有后端支持,所以测试程序就用前端进行该接口的调用,具体代码如下。

async getPhoneNumber (e) {
      let token = ''
      let code = e.detail.code
      let that = this
      wx.request({
        url: 'https://api.weixin.qq.com/cgi-bin/token',
        data:{
            grant_type:'client_credential',
            appid:'wx483fa89af0dceeb0',
            secret:'c70dc2d3515abf59b054ca60cc1656c5'
        },
        success(res){
            token = res.data.access_token
            that.getRealPhone(token,code)
        }
      })
  },

其中,gengRealPhone是真正获取手机号的函数,token接口的几个参数分别如下图方式获取:
网页获取手机号,微信小程序,前端,小程序
appid与appsecret都是很好获取到的,这里要注意的是grant_type参数的值就是’client_credential‘,还有就是要将详情中不校验合法域名选项勾选,这个在正式开发时应该可以在开发设置中将域名加入白名单的,这里我就不多做演示。
网页获取手机号,微信小程序,前端,小程序

第三步,调用getuserphonenumber接口,获取用户手机号,代码如下。

getRealPhone(access_token,code){
    wx.request({
        url: `https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=${access_token}`,
        data:{
            code
        },
        method:'POST',
        success(res){
           console.log(res.data.phone_info.phoneNumber);
        }
      })
  },

这步没什么好讲的,code与token都已经获取,只要将函数放在token接口的成功回调中调用就可以了。
网页获取手机号,微信小程序,前端,小程序
网页获取手机号,微信小程序,前端,小程序
完整代码:

// index.js

// 获取应用实例
const app = getApp()

Page({
  data: {
   
  },

  onLoad() {
  },
  getRealPhone(access_token,code){
    wx.request({
        url: `https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=${access_token}`,
        data:{
            code
        },
        method:'POST',
        success(res){
           console.log(res.data.phone_info.phoneNumber);
        }
      })
  },
  async getPhoneNumber (e) {
      let token = ''
      let code = e.detail.code
      let that = this
      wx.request({
        url: 'https://api.weixin.qq.com/cgi-bin/token',
        data:{
            grant_type:'client_credential',
            appid:'wx483fa89af0dceeb0',
            secret:'c70dc2d3515abf59b054ca60cc1656c5'
        },
        success(res){
            token = res.data.access_token
            that.getRealPhone(token,code)
        }
      })
  },


})
<!--index.wxml-->
<view class="container">
 <button open-type="getPhoneNumber" style="width: 200px;height: 50px;" bindgetphonenumber="getPhoneNumber">获取手机号</button>
</view>

由于之前没有接触过小程序开发,所以不太清楚纯前端获取手机号在实际开发中究竟有多大意义,因为我在网上基本没有找到纯前端获取手机号的文章,所以才写了这篇,只是作为一个学习的例子的话应该问题不大。

另附微信小程序官方开发文档,文中大多数内容都来源于此。文章来源地址https://www.toymoban.com/news/detail-770084.html

到了这里,关于【微信小程序】纯前端获取用户手机号码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序登录及获取手机号码

    前端:微信先授权登录后再授权获取手机号码 后端:先微信登录获取openid返回前端,前端再传递手机号码code给后端获取手机号码并在本地数据量注册用户信息,需提供2个接口 第一步:先通过code微信授权登录获取openid 第二步:根据app_id和app_secret获取access_token 第三步:根据

    2024年02月12日
    浏览(68)
  • 微信小程序获取手机号码 phonenumber.getPhoneNumber 提示47001错误

    微信小程序获取手机号码 phonenumber.getPhoneNumber 提示47001错误 经过测试, 文档说的是body 类型 实际却是json类型 正确代码如下:

    2024年02月06日
    浏览(52)
  • 微信小程序:获取用户手机号(前端)

    获取手机号的开发过程可以分为三部分:微信前端设置,微信js文件编写,服务器端程序开发. 其中微信前端最为简单,在获取手机号的过程中我们必须经过用户授权,在wxml文件中加入如下代码: 然后我们需要编写js文件,当用户允许获取手机号后调用相关逻辑,将手机号加密信息发

    2024年02月06日
    浏览(65)
  • 【微信小程序】新版获取手机号码实现一键登录(uniapp语法)(完整版附源码)

    需求 如图,点击按钮,获取用户手机号实现一键登录,当然,用户也可以自行输入其他手机号进行登录 问题 要想获取用户手机号并不复杂,但由于近几年微信小程序获取手机号的api进行了更新,当前很多帖子使用的仍是旧的方式,先调wx.login()获取code,iv,等等加密数据, 给到

    2024年02月05日
    浏览(53)
  • 微信小程序开发笔记 进阶篇⑥——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之后)

    微信小程序开发笔记——导读 大部分微信小程序开发者都会有这样的需求: 获取小程序用户的手机号码 。 但是,因为小程序用户的手机号码属于重要信息,为了安全,所以需要如下一系列较为复杂的方法和步骤。 我前期主要通过小程序云的方法获取用户手机号码,后面 因

    2024年02月03日
    浏览(49)
  • 微信小程序开发笔记 进阶篇⑤——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之前)

    微信小程序开发笔记——导读 大部分微信小程序开发者都会有这样的需求: 获取小程序用户的手机号码 。 但是,因为小程序用户的手机号码属于重要信息,为了安全,所以需要如下一系列较为复杂的方法和步骤。 我前期主要通过小程序云的方法获取用户手机号码,后面 因

    2024年02月09日
    浏览(49)
  • 微信小程序授权手机号码登录

    因公司项目需要做微信小程序相关项目,故记录一下相关开发要点。 使用的是binarywang工具包,版本为4.1.0。 后端框架使用springboot 更多其他功能使用推荐查看https://github.com/binarywang/binarywang 3.1 微信小程序开发的相关配置 在application.yml文件中配置 3.2创建配置文件 代码如下(示

    2024年02月09日
    浏览(58)
  • 微信小程序-授权登录(手机号码)

    template     view class=\\\"work-container\\\"         view class=\\\"login\\\"             view class=\\\"content\\\"                 button class=\\\"button_wx\\\" open-type=\\\"getPhoneNumber\\\" @getphonenumber=\\\"getPhoneNumber\\\"                     u-icon name=\\\"weixin-fill\\\" color=\\\"#FFFFFF\\\" size=\\\"50\\\"/u-icon                     

    2024年02月06日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包