手机号授权

优质
小牛编辑
135浏览
2023-12-01

手机号授权

产品简介

为方便开发者通过用户手机号关联自身用户体系或开展业务,同时也为了方便用户使用小程序进一步提升用户体验,小程序平台对外开放用户手机号授权能力。该能力会在获得用户授权后,且在充分保护用户隐私的前提下,帮助开发者便捷获取用户手机号。

手机号授权功能基于国际标准的 OAuth2.0 授权机制,在得到用户授权的情况下,获取用于换取用户信息的令牌,通过调用宙斯开放平台上的用户手机号接口获取相关信息。

用户手机号获取流程图

开放标准

1、对所有入驻小程序的企业开放,但需经过平台审核通过后使用。

2、用户信息属于用户个人隐私,请开发者妥善使用,如若发现违规情节平台保留收回接口使用权限的权利。

接入流程

准备

1、通过京东小程序平台主体审核。

2、开发者在小程序平台创建京东小程序,创建成功后可获得appKey、appSecret。

3、申请开通调用获取手机号授权能力,请移步到控制台-能力中心申请。

填写申请单提交审核,会在2-3个工作日审批完成。

注意:开发者需保证手机号在约定范围使用,同时要尊重用户个人隐私,不可随意打扰用户。若发现小程序开发者在约定范围外使用用户信息或其他不合理的情况,小程序平台保留永久收回接口的权限。

第一步:授权码获取流程

详细流程:

1、开发者调用 jd.getAuthCode(),唤起授权框,请求用户授权,用户点击同意后,在成功回调方法中,获取授权 code;

2、通过 code 换取 access_token;

3、通过 access_token,即可获取对应的业务数据。

注意:

1、必须要填写“设置-开发设置”中的服务器域名;

2、code有效期为5分钟,并且只能消费一次;

3、换取 access_token 等更多说明,https://jos.jd.com/commondoc?listId=164

jd.getAuthCode(OBJECT)

获取授权码。

OBJECT 参数说明:

参数名类型必填说明
successFunction成功则返回授权码
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

调用示例:

jd.getAuthCode({
    success(res) {
        console.log("获取授权码成功:(getAuthCode)" + JSON.stringify(res));
    },
    fail(res){
        console.log("获取授权码失败(getAuthCode  ):" + JSON.stringify(res));
       },
    complete(res){
        console.log("获取授权码compolete(getAuthCode  ):" + JSON.stringify(res));
    }
});

注意:

1、用户拒绝后,会调用 fail 回调方法。

2、业务方可根据具体业务需求,在fail回调中选择是否使用jd.openSetting()打开授权列表,用户可手动开启授权。

授权常见错误及说明:

第二步:手机号获取流程

流程介绍:

1、开发者代码中通过button按钮来触发手机号授权操作,示例如下:


 <button class="button-reset" bindgetphonenumber="getPhoneNumber" open-type="getPhoneNumber" >getPhoneNumber</button>
 getPhoneNumber(e) {
     console.log("getPhoneNumber结果如下:");
     console.log(e);
 }

如果 e.detail.errMsg的值是getPhoneNumber:ok,说明用户同意授权,可进行下一步操作

2、前置调用jd.getAuthCode API,唤起授权框,用户点击同意后,获得 code;通过 code 换取 access_token,更多说明,前置调用是指,在用户点击手机号授权按钮之前,例如页面的onLoad事件中,提前拿到code,换取token;

3、获取到 access_token 后,可请求宙斯平台的api:jingdong.jda.getMobileByToken,请求成功后获得加密数据,解密后,可得到用户手机号; 宙斯平台API的[调用详解] (https://jos.jd.com/commondoc?listId=33); jingdong.jda.getMobileByToken接口文档

4、手机号属于用户敏感信息,因此是通过数据加密的方式进行传递与存储,必须按照宙斯平台数据加解密对接文档指南进行开发,如若发现违规情节平台保留收回接口使用权限的权利,详细开发说明 (主要关注第二部分和第四部分 )