文章目录

  • 一、前言
  • 二、前端代码wxml
  • 三、前端代码js
  • 四、云函数
  • 五、程序流程

一、前言

微信小程序开发笔记——导读

  • 大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机号码
  • 但是,因为小程序用户的手机号码属于重要信息,为了安全,所以需要如下一系列较为复杂的方法和步骤。
  • 我前期主要通过小程序云的方法获取用户手机号码,后面因为微信政策变更,小程序云不再提供免费版本,最低每月也要收费19元
  • 所以,我才转用方法二和方法三。否则方法一小程序云的方法是最简单的。

微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)
微信小程序开发笔记 进阶篇⑤——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之前)
微信小程序开发笔记 进阶篇⑥——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之后)

二、前端代码wxml

<button type="default" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber" class="weui-vcode-btn" wx:else>获取手机号</button>

微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)

三、前端代码js

onLaunch: function (opts) {
  const accountInfo = wx.getAccountInfoSync();
  this.globalData.appId = accountInfo.miniProgram.appId
  console.log('App Launch', opts, accountInfo)
  if (!wx.cloud) {
    console.error('请使用 2.2.3 或以上的基础库以使用云能力')
  } else {
    wx.cloud.init({
      env: config.envId,
      traceUser: true,
    })
  }
},
getPhoneNumber(e) {
	wx.cloud.callFunction({
	    name: 'getPhoneNumber',
	    data: {
	        cloudID: e.detail.cloudID
	    },
	    success: function (res) {
	        console.log("getPhoneNumber", res.result)
	        _this.setData({
	            mobile: res.result.list[0].data.phoneNumber
	        })
	    },
	    fail: console.error
	})
},

四、云函数

微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
  console.log("cloudID: ",event.cloudID)
  return await cloud.getOpenData({
    list:[event.cloudID],
  })
}
{
  "name": "wxContext",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "wx-server-sdk": "latest"
  }
}

五、程序流程

注册界面

云函数

onShow函数, wx.cloud.init 云函数初始化

按钮点击,getPhoneNumber获取cloudID

调用云函数,传入cloudID

cloud.getOpenData,返回phoneNumber

注册界面

云函数

觉得好,就一键三连呗(点赞+收藏+关注)

发表回复