• 下载
  • 社区

获取会员手机号

产品介绍

产品概述


获取会员手机号旨在帮助开发者便捷获取联系方式,在获得用户充分授权和认可,且充分保护用户隐私的前提下快速创建开发者的会员体系或开展其他业务。


获取会员手机号功能提供了一套基于国际标准的 OAuth2.0 授权机制的 JSAPI,在用户授权的情况下,得到用于换取用户信息的令牌,通过调用获取会员手机号接口并获取相关信息。避免了开发者需要对接支付宝网关的成本。


应用案例


  1. 在用户进行需要手机号的场景操作时(如外卖下单、快递送货)使用该能力获取手机号
  2. 用户点击行动按钮,系统唤起手机号授权弹框
  3. 用户同意授权后,即可通过接口获取用户绑定的手机号


注意:

通过用户信息授权方式获取用户手机号是只一种快捷的填写方式,需要对用户拒绝的情况做充分的兜底措施(如引导用户手动填写)。


image.png


准入条件


目前,获取会员手机号功能仅对企业开发者开放。

  1. 开发者需充分尊重用户个人隐私,妥善使用手机号码的使用范围,不得随意打扰用户。若发现信息存在超出约定范围使用或者不合理使用等情况,平台有权永久收回接口权限。
  2. 为进一步规约和确认安全资质,开发者需加入 “蚂蚁数据安全与隐私保障联盟”,并严格遵守《支付宝开放平台用户信息处理规范》、《开放平台第三方应用安全开发指南》。


计费模式


不收费。


接入指引

第一步:创建小程序


要在您的小程序内使用 获取会员手机号,您需要首先完成 开发者入驻 并 创建小程序

第二步:添加功能

小程序创建完成后,开发者在 功能列表 部分可以点击 添加功能 来添加 获取会员手机号 功能。勾选相应功能后,点击 确定 即可添加功能。


第三步:申请信息


开发者在添加完成功能后,需要进行用户信息申请。点击 用户信息申请,按照指引进行相应的申请操作。


注意:

请确认当前登陆的账号需为主账号,否则在功能列表中无法显示用户申请信息入口。


image.png


API 列表


接口名称接口描述
my.getPhoneNumber获取会员手机号码


常见问题


Q: 调用 my.getPhoneNumber,报错“无效的授权关系”,如何处理?

A: 用户主动触发才能发起获取手机号请求,不能由 API 直接获取用户手机号,需使用 button 组件 的“点击”动作来触发操作。


操作流程:

1. 将 button 组件 open-type 的值设置为 getAuthorize。

示例代码:


<button a:if="{{canIUseAuthButton}}" open-type="getAuthorize"
        onGetAuthorize="onGetAuthorize" onError="onAuthError" scope='phoneNumber'>
    授权手机号
</button>

Button属性说明:

属性说明
open-type此处设置为 getAuthorize ,用于授权。
scope此处设置为 phoneNumber ,手机号码。
onGetAuthorize授权成功回调(在回调里可以调用获取信息的接口)。
onError授权失败回调(包括用户拒绝和系统异常)。


2. 用户点击并同意授权后,可以通过 my.getPhoneNumber 获取到支付宝服务器返回的加密数据, 然后在第三方服务端结合签名算法和AES密钥进行解密获取手机号,方法详见 敏感信息加解密方法


my.getPhoneNumber({
    success: (res) => {
        let encryptedData = res.response;
        my.httpRequest({
            url: '你的后端服务端',
            data: encryptedData,
        });
    },
    fail: (res) => {
        console.log(res);
        console.log('getPhoneNumber_fail');
    },
});


Q: 调用 my.getPhoneNumber,报错“ISV权限不足”,如何处理? 

A: 报错“ISV权限不足”是由于未添加“获取会员手机号”功能包。请至小程序管理后台添加功能包。

1. 在 小程序开发管理后台 的 功能列表 中,点击 添加功能

2. 添加 获取会员手机号 功能包。


3. 点击 用户信息申请

4.  在 申请权限 中申请用户手机号。

5. 填写申请原因、使用场景等信息,提交申请,等待审核。



Q: 返回错误码 20000/40001/40002/40003,如何处理?

A: 常见错误码如下表

错误码

错误详情

解决方案

20000

系统繁忙

稍后再试。

40001

应用未设置默认签名类型

在 小程序开发管理后台 > 设置 > 开发设置 中,设置 支付宝公钥 和 应用网关

40002

加密异常

在 小程序开发管理后台 > 设置 > 开发设置 中,设置 aes 秘钥,aes 相关信息可参见 内容加密接入指引

40003

无效的授权关系

用户未同意授权,或授权已失效,可稍后再试。


Q: 返回的数据是密钥和签名,并没有获取到手机号,怎么回事?

A: my.getPhoneNumber 获取的是支付宝服务器返回的加密数据。

在第三方服务端结合签名算法和 AES 密钥进行解密可获取手机号,方法详见 敏感信息加解密方法

服务端解密后的明文示例如下:

{
  "code": "10000",
  "msg": "Success",
  "mobile": "18818181818"
}


Q: 申请“获取会员手机号”功能包总是被驳回,怎么回事?

A: 因为企业提交的资料不合格,或者没说清业务场景。


Q: 调用接口时报错“Missing Required Arguments”

开发者需要配置 AES 密钥进行解密,方法详见 敏感信息加解密方法