打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
利用微搭获取用户手机号

前言


我们的会员小程序最重要的采集信息就是会员的手机号,首先手机号唯一,可以用来唯一标识会员的身份。其次在日常的业务操作中,如会员的充值、消费等,需要根据会员的手机号来进行操作。

采集会员的手机号作为了必备需求,本文就介绍如何利用微搭低代码来快速的收集会员的手机号,相信对你的业务会很有帮助。

实现思路


手机号作为用户的敏感信息,不允许直接通过API来调用,必须要求用户主动点击按钮来发起授权。

用户触发后会触发相应的事件,然后我们在事件的对象里获取返回的手机号。

要想实现该功能,首先需要了解一下微信小程序获取手机号的相关说明文档

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

我们需要几个步骤:

一、创建自定义应用

二、创建一个按钮

三、定义低代码方法

创建自定义应用


因为是需要调用微信的接口,那我们创建应用的时候需要选择小程序

添加按钮


在创建的应用的首页上添加一个按钮,将标题修改为获取手机号

将微信开发能力选择为获取手机号

创建自定义方法


按钮属性设置好之后,我们要设置按钮的行为,我们创建一个自定义方法来进行响应。点击导航条的菜单栏,点击低代码编辑器

在页面的handler旁边点击+号创建自定义方法,getphone

我们并不知道这个按钮点击之后会返回啥信息,最好的办法是将event对象打印一下看看,输入如下代码

/** *  * 可通过 $page 获取或修改当前页面的 变量 状态 handler lifecyle 等信息 * 可通过 app 获取或修改全局应用的 变量 状态 等信息 * 具体可以console.info 在编辑器Console面板查看更多信息 * 注意:该方法仅在所属的页面有效 * 如果需要 async-await,请修改成 export default async function() {} **/

/** * @param {Object} event - 事件对象. * @param {string} event.name - 事件名. * @param {string} event.target - 事件的目标节点(触发该事件的节点). * @param {string} event.currentTarget - 当前处理该事件的节点。包括冒泡和捕获事件。. * * @param {Object} data * @param {any} data.target - 获取事件传参的数据 **/ export default function({event, data}) { console.log(event)}

按钮上设置行为


自定义方法创建好之后,就需要将自定义方法和按钮进行绑定,点击组件的行为

选择自定义方法,设置我们刚刚创建的getphone

设置好了之后就可以发布小程序,在控制台里查看打印的信息

个人号不允许调用这个接口,返回了报错信息

如果是企业号,可以查看一下控制台里有没有cloudID这个属性,如果这个属性里有值就表示调用成功了。

这个cloudID很重要,如果返回成功就可以通过它进行解密,来获得用户的手机号。解密的话需要调用云函数,我们用自定义连接器来创建云函数

创建自定义连接器


在控制台找到自定义连接器,点击新建自定义连接器

输入名称和标识

点击立即新建,创建方法

输入方法的名称和标识

点击查看详情,输入如下代码

const cloud = require('wx-server-sdk'); // 引用wx-server-sdk依赖文件cloud.init({  env: cloud.DYNAMIC_CURRENT_ENV,       //进行云能力初始化})module.exports = async function (params, context) {    const { cloudId } = params;     //得到前端通过手机号按钮获取到的clouid                        const result = await cloud.getOpenData({                    //通过clouid调用getOpenData方法,获取解密后的手机号数据            "list": [cloudId]        })        return result;        }

点击添加入参,输入clouId,增加一个参数

如果此时点方法测试,会发现报错,报错就无法进行出参映射,需要我们手动添加出参

点击添加出参,输入result,添加出参即可

自定义连接器创建好之后,在列表上点击更多,将连接器发布

低码中调用自定义连接器


连接器创建好之后,我们就可以在低码中调用了,找到上边定义好的低码方法,输入如下代码:

/** *  * 可通过 $page 获取或修改当前页面的 变量 状态 handler lifecyle 等信息 * 可通过 app 获取或修改全局应用的 变量 状态 等信息 * 具体可以console.info 在编辑器Console面板查看更多信息 * 注意:该方法仅在所属的页面有效 * 如果需要 async-await,请修改成 export default async function() {} **/
/** * @param {Object} event - 事件对象. * @param {string} event.name - 事件名. * @param {string} event.target - 事件的目标节点(触发该事件的节点). * @param {string} event.currentTarget - 当前处理该事件的节点。包括冒泡和捕获事件。. * * @param {Object} data * @param {any} data.target - 获取事件传参的数据 **/ export default async function({event, data}) { console.log(event.detail)
const result = await app.cloud.callConnector({ name: 'getphone_04w5sfi', methodName: 'getphone', params: {cloudId:event.detail.cloudID}, // 方法入参 });
}

这里的name就是自定义连接器的标识,methodName是方法的标识

自定义方法修改后,点击导航条的发布按钮,发布成小程序在手机上查看获取到的手机号

将手机号显示在页面上


获取到手机号后,如果希望显示在页面上,可以先创建一个变量

在低代码中将获取到的手机号赋值给变量即可

/** *  * 可通过 $page 获取或修改当前页面的 变量 状态 handler lifecyle 等信息 * 可通过 app 获取或修改全局应用的 变量 状态 等信息 * 具体可以console.info 在编辑器Console面板查看更多信息 * 注意:该方法仅在所属的页面有效 * 如果需要 async-await,请修改成 export default async function() {} **/
/** * @param {Object} event - 事件对象. * @param {string} event.name - 事件名. * @param {string} event.target - 事件的目标节点(触发该事件的节点). * @param {string} event.currentTarget - 当前处理该事件的节点。包括冒泡和捕获事件。. * * @param {Object} data * @param {any} data.target - 获取事件传参的数据 **/ export default async function({event, data}) { console.log(event.detail)
const result = await app.cloud.callConnector({ name: 'getphone_04w5sfi', methodName: 'getphone', params: {cloudId:event.detail.cloudID}, // 方法入参 });
$page.dataset.state.phone = result.list[0].data.phoneNumber}

在页面上添加一个文本组件,将变量绑定即可

最终效果


点击按钮获取手机号,会弹出授权窗口,如果手机安装了多张卡,会让选择手机号,点击授权,就可以将手机号显示到对应的位置上。

当然了你也可以将手机号存入自己的数据源中,方便后续业务调用。

总结


我们今天带着大家探索了一下获取手机号这个功能,有些功能做的时候查查官方的文档,如果有文档直接照着做就可以,可以节省不少时间。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
axios发送请求,一篇搞定
Ajax原理与封装
node.js面试题大全-侧重后端应用与对Node核心的理解
前后分离模型之封装 Api 调用
结合 AOP 轻松处理事件发布处理日志
【实战】小程序云开发之云函数开发
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服