小程序获取微信用户绑定的手机号

小程序API内提供getPhoneNumber借口来获取用户已经绑定到微信的手机号,但需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用;

基本流程如下:

使用方法

需要将 <button> 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合 session_key 以及 app_id 进行解密获取手机号。

html

<button class="weui-btn" type="primary" style='width:690rpx'  open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">微信绑定手机号登录</button>
Page({
    getPhoneNumber: function (e) {
        console.log(`是否成功调用${e.detail.errMsg}`);
        console.log(`加密算法的初始向量:${e.detail.iv}`);
        console.log(`包括敏感数据在内的完整用户信息的加密数据:${e.detail.encryptedData}`);
    } 
});

截图

如果用户点击允许getPhoneNumber为ok,且成功返回encryptedData和iv

如果用户点击拒绝getPhoneNumber为fail user deny,返回encryptedData和iv为undefined

返回参数说明

encryptedData 解密后为以下 json 结构,详见加密数据解密算法

{
    "phoneNumber": "13880006666",  
    "purePhoneNumber": "13580006666", 
    "countryCode": "86",
    "watermark":
    {
        "appid":"APPID",
        "timestamp":TIMESTAMP
    }
}

解密后参数说明

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

使用swingbench实现oracle数据库压力测试

    即将上线的数据库如何来评估其性能呢,swingbench是除了Benchmark Factory for Databases的不二之选,可以用短小精悍来...

642
来自专栏工科狗和生物喵

搭建你自己的网站--LAMP架构(Ubuntu 16.04)

笔者目前算是一个WEB方向的踽踽前行的小菜鸟,但是也是现在手上有两台云服务器在手的人了,网站也做了两个了,所以,今天接着昨天的话题,我们来搭建一个自己网站,这样...

4015
来自专栏Brian

Mac 配置终端环境

Mac 配置终端开发环境 ---- 概述 作为一个服务端开发人员基本上都是通过终端和服务器打交道,所以一个好个开发人员那么他的终端配置也是高效的。“工欲善事必先...

35111
来自专栏北京马哥教育

Python大法之告别脚本小子---信息资产收集类脚本编写

在采集到URL之后,要做的就是对目标进行信息资产收集了,收集的越好,你挖到洞也就越多了............当然这一切的前提,就是要有耐心了!!!由于要写工具...

600
来自专栏cs

oracle12c,各种问题解决方案

近来重装了计算机(双系统windows10+ubuntu16),顺带着也把software升级一下,结果安装最新的oracle12c,出现了一系列问题,我不喜...

2794
来自专栏青玉伏案

iOS开发之使用XMPPFramework实现即时通信(二)

上篇的博客iOS开发之使用XMPPFramework实现即时通信(一)只是本篇的引子,本篇博客就给之前的微信加上即时通讯的功能,主要是对XMPPFramewor...

1786
来自专栏容器云生态

当go get遇到墙时

作为一名从py转向go语言的新手,在使用第三方包的时候我们需要比较熟悉该包或者模块的构建与安装,好比在使用pip或者easy_install之类的工具安装模块时...

6299
来自专栏云计算

使用ThingsBoard查看物联网数据

ThingsBoard是一个开源平台,用于收集和可视化物联网设备的数据。可以将来自任意数量设备的数据发送到云服务器,在云服务器中可以通过可自定义的仪表板查看或共...

181
来自专栏农夫安全

从零开始内网安全渗透学习

0x00 win2008(域控) 1、修改计算机名: ? 2、配置固定ip: 其中网关设置错误,应该为192.168.206.2,开始默认的网管 ? 3、服...

40910
来自专栏轻扬小栈

ubuntu debian 百度网盘的Python客户端 bypy

2724

扫描关注云+社区